00001 00025 package org.objectweb.cjdbc.controller.jmx; 00026 00027 import org.objectweb.cjdbc.common.jmx.JmxConstants; 00028 import org.objectweb.cjdbc.common.jmx.JmxException; 00029 import org.objectweb.cjdbc.controller.core.Controller; 00030 import org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector; 00031 import org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase; 00032 00042 public class CjdbcJmxAgent extends JmxAgent 00043 { 00049 public CjdbcJmxAgent() throws Exception 00050 { 00051 super(); 00052 this.addInterceptor(new VirtualDatabaseAdminAuthenticator()); 00053 setDomainName(JmxConstants.CJDBC_DOMAIN_NAME); 00054 } 00055 00063 public CjdbcJmxAgent(String hostname) throws Exception 00064 { 00065 super(hostname); 00066 this.addInterceptor(new VirtualDatabaseAdminAuthenticator()); 00067 setDomainName(JmxConstants.CJDBC_DOMAIN_NAME); 00068 } 00069 00077 public void registerMBean(Object object) throws JmxException 00078 { 00079 if (object instanceof Controller) 00080 { 00081 Controller pcontroller = (Controller) object; 00082 register(pcontroller, JmxConstants.CJDBC_TYPE_CONTROLLER, 00083 JmxConstants.CJDBC_TYPE_CONTROLLER); 00084 } 00085 else if (object instanceof VirtualDatabase) 00086 { 00087 VirtualDatabase virtualDB = (VirtualDatabase) object; 00088 register(virtualDB, virtualDB.getName(), 00089 JmxConstants.CJDBC_TYPE_VIRTUALDATABASE); 00090 } 00091 else if (object instanceof DataCollector) 00092 { 00093 DataCollector collector = (DataCollector) object; 00094 register(collector, JmxConstants.CJDBC_TYPE_DATACOLLECTOR, 00095 JmxConstants.CJDBC_TYPE_DATACOLLECTOR); 00096 } 00097 else 00098 { 00099 super.registerMBean(object); 00100 } 00101 } 00102 00109 public void unregisterMBean(Object object) throws JmxException 00110 { 00111 if (object instanceof Controller) 00112 { 00113 Controller pcontroller = (Controller) object; 00114 unregister(pcontroller, JmxConstants.CJDBC_TYPE_CONTROLLER, 00115 JmxConstants.CJDBC_TYPE_CONTROLLER); 00116 } 00117 else if (object instanceof VirtualDatabase) 00118 { 00119 VirtualDatabase virtualDB = (VirtualDatabase) object; 00120 unregister(virtualDB, virtualDB.getName(), 00121 JmxConstants.CJDBC_TYPE_VIRTUALDATABASE); 00122 } 00123 else if (object instanceof DataCollector) 00124 { 00125 DataCollector collector = (DataCollector) object; 00126 unregister(collector, JmxConstants.CJDBC_TYPE_DATACOLLECTOR, 00127 JmxConstants.CJDBC_TYPE_DATACOLLECTOR); 00128 } 00129 } 00130 }