1 package org.objectweb.celtix.bus.busimpl; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 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 INSTRUMENTED_NAME = "Bus"; 21 private String objectName; 22 private CeltixBus bus; 23 private String [] transportFactories; 24 private String [] 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 getComponent() { 36 return bus; 37 } 38 39 40 public String getInstrumentationName() { 41 return INSTRUMENTED_NAME; 42 } 43 44 public final String [] getFactoriesInfor(String cfgName) { 45 List <String > factoriesList = new ArrayList <String >(); 46 Object obj = bus.getConfiguration().getObject(cfgName); 47 assert obj != null; 48 List <ClassNamespaceMappingType> factoryMappings = ((ClassNamespaceMappingListType)obj).getMap(); 49 for (ClassNamespaceMappingType mapping : factoryMappings) { 50 String classname = mapping.getClassname(); 51 List <String > namespaceList = mapping.getNamespace(); 52 for (String namespace : namespaceList) { 53 String temp = "NameSpace: " + namespace 54 + "\n FactoryClass: " + classname; 55 factoriesList.add(temp); 56 } 57 } 58 String [] factories = new String [factoriesList.size()]; 59 return factoriesList.toArray(factories); 60 } 61 62 @ManagedAttribute(description = "The celtix bus Transport factories information", 63 persistPolicy = "OnUpdate") 64 public String [] getTransportFactories() { 65 return transportFactories; 66 } 67 68 @ManagedAttribute(description = "The celtix bus binging factories information", 69 persistPolicy = "OnUpdate") 70 public String [] getBindingFactories() { 71 return bindingFactories; 72 } 73 74 @ManagedAttribute(description = "The celtix bus Serivce monitors counters", 75 persistPolicy = "OnUpdate") 76 public Boolean isServicesMonitoring() { 77 return bus.getConfiguration().getBoolean("servicesMonitoring"); 78 } 79 80 public void setServicesMonitoring(Boolean value) { 81 if (value != bus.getConfiguration().getBoolean("servicesMonitoring")) { 82 bus.getConfiguration().setObject("servicesMonitoring", value); 83 } 84 } 85 86 public String getUniqueInstrumentationName() { 87 return objectName; 88 } 89 } 90 | Popular Tags |