KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > busimpl > CeltixBusInstrumentation


1 package org.objectweb.celtix.bus.busimpl;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5
6
7 import org.objectweb.celtix.bus.management.jmx.export.annotation.ManagedAttribute;
8 import org.objectweb.celtix.bus.management.jmx.export.annotation.ManagedResource;
9 import org.objectweb.celtix.configuration.types.ClassNamespaceMappingListType;
10 import org.objectweb.celtix.configuration.types.ClassNamespaceMappingType;
11
12 import org.objectweb.celtix.management.Instrumentation;
13
14
15 @ManagedResource(componentName = "CeltixBus",
16                  description = "The Celtix bus managed component ",
17                  currencyTimeLimit = 15, persistPolicy = "OnUpdate")
18 public class CeltixBusInstrumentation implements Instrumentation {
19    
20     private static final String JavaDoc INSTRUMENTED_NAME = "Bus";
21     private String JavaDoc objectName;
22     private CeltixBus bus;
23     private String JavaDoc[] transportFactories;
24     private String JavaDoc[] bindingFactories;
25   
26
27     public CeltixBusInstrumentation(CeltixBus b) {
28         bus = b;
29         objectName = b.getBusID();
30         bindingFactories = getFactoriesInfor("bindingFactories");
31         transportFactories = getFactoriesInfor("transportFactories");
32     }
33         
34     
35     public Object JavaDoc getComponent() {
36         return bus;
37     }
38     
39      
40     public String JavaDoc getInstrumentationName() {
41         return INSTRUMENTED_NAME;
42     }
43     
44     public final String JavaDoc[] getFactoriesInfor(String JavaDoc cfgName) {
45         List JavaDoc<String JavaDoc> factoriesList = new ArrayList JavaDoc<String JavaDoc>();
46         Object JavaDoc obj = bus.getConfiguration().getObject(cfgName);
47         assert obj != null;
48         List JavaDoc<ClassNamespaceMappingType> factoryMappings = ((ClassNamespaceMappingListType)obj).getMap();
49         for (ClassNamespaceMappingType mapping : factoryMappings) {
50             String JavaDoc classname = mapping.getClassname();
51             List JavaDoc<String JavaDoc> namespaceList = mapping.getNamespace();
52             for (String JavaDoc namespace : namespaceList) {
53                 String JavaDoc temp = "NameSpace: " + namespace
54                         + "\n FactoryClass: " + classname;
55                 factoriesList.add(temp);
56             }
57         }
58         String JavaDoc[] factories = new String JavaDoc[factoriesList.size()];
59         return factoriesList.toArray(factories);
60     }
61       
62     @ManagedAttribute(description = "The celtix bus Transport factories information",
63                       persistPolicy = "OnUpdate")
64     public String JavaDoc[] getTransportFactories() {
65         return transportFactories;
66     }
67
68     @ManagedAttribute(description = "The celtix bus binging factories information",
69                       persistPolicy = "OnUpdate")
70     public String JavaDoc[] getBindingFactories() {
71         return bindingFactories;
72     }
73     
74     @ManagedAttribute(description = "The celtix bus Serivce monitors counters",
75                       persistPolicy = "OnUpdate")
76     public Boolean JavaDoc isServicesMonitoring() {
77         return bus.getConfiguration().getBoolean("servicesMonitoring");
78     }
79     
80     public void setServicesMonitoring(Boolean JavaDoc value) {
81         if (value != bus.getConfiguration().getBoolean("servicesMonitoring")) {
82             bus.getConfiguration().setObject("servicesMonitoring", value);
83         }
84     }
85     
86     public String JavaDoc getUniqueInstrumentationName() {
87         return objectName;
88     }
89 }
90
Popular Tags