1
2
3
4
5 package net.java.truecommons.jmx.sl;
6
7 import javax.annotation.concurrent.Immutable;
8 import javax.management.MBeanServer;
9 import net.java.truecommons.jmx.spi.MBeanServerDecorator;
10 import net.java.truecommons.jmx.spi.MBeanServerProvider;
11 import net.java.truecommons.services.Container;
12 import net.java.truecommons.services.ServiceLocator;
13
14
15
16
17
18
19
20
21
22
23
24
25 @Immutable
26 public final class MBeanServerLocator implements Container<MBeanServer> {
27
28
29 public static final MBeanServerLocator SINGLETON = new MBeanServerLocator();
30
31 private MBeanServerLocator() { }
32
33 @Override
34 public MBeanServer get() { return Lazy.mbs; }
35
36
37 private static final class Lazy {
38 static final MBeanServer mbs
39 = new ServiceLocator(MBeanServerLocator.class)
40 .container(MBeanServerProvider.class, MBeanServerDecorator.class)
41 .get();
42 }
43 }