You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2005/08/09 07:18:33 UTC
svn commit: r230970 - in
/webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager:
JMXAdmin.java JMXManager.java JMXManagerM.java JMXManagerR.java
Author: deepal
Date: Mon Aug 8 22:18:09 2005
New Revision: 230970
URL: http://svn.apache.org/viewcvs?rev=230970&view=rev
Log:
commiting Chathurs source codes (JMX)
Added:
webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java
webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerM.java
webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerR.java
Modified:
webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java
Added: webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java?rev=230970&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java (added)
+++ webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java Mon Aug 8 22:18:09 2005
@@ -0,0 +1,34 @@
+package org.apache.axis2.management.manager;
+
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.engine.AxisFault;
+import org.apache.axis2.management.mbeans.Axis2Manager;
+
+public class JMXAdmin{
+
+ /**
+ * This method is used to initailize and register MBeans.
+ *
+ * @param configContext
+ * @throws AxisFault
+ */
+ public static void initMBeans(ConfigurationContext configContext) throws AxisFault{
+
+ try{
+
+ // Create MBeans
+ String axis2ManagerName = "Axis2:type=management.Manager,index=1";
+ Axis2Manager axis2Manager = new Axis2Manager(configContext.getAxisConfiguration());
+
+ // Register MBeans using JMXManager
+ JMXManagerR jmxManager = JMXManagerR.getJMXManagerR();
+ jmxManager.registerMBean(axis2Manager, axis2ManagerName);
+
+
+ }catch(Exception e){
+ throw AxisFault.makeFault(e);
+ }
+
+ }
+
+}
\ No newline at end of file
Modified: webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java?rev=230970&r1=230969&r2=230970&view=diff
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java (original)
+++ webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java Mon Aug 8 22:18:09 2005
@@ -1,28 +1,44 @@
package org.apache.axis2.management.manager;
-import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.engine.AxisFault;
-import org.apache.axis2.management.mbeans.Axis2Manager;
-
-import java.io.PrintWriter;
-import java.io.FileOutputStream;
import java.rmi.registry.LocateRegistry;
-import java.rmi.registry.Registry;
+import org.apache.commons.modeler.Registry;
-import javax.management.*;
-import javax.management.remote.*;
-import java.util.*;
-import java.net.*;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
public class JMXManager{
- private ConfigurationContext configContext;
+ private Registry registry;
+ private static JMXManager jmxManager = null;
+ private MBeanServer mbs = null;
JMXConnectorServer cs;
- public JMXManager(ConfigurationContext configContext){
- this.configContext = configContext;
+ public static JMXManager getJMXManager(){
+
+ if(jmxManager != null){
+ return jmxManager;
+ }
+ else{
+ jmxManager = new JMXManager();
+ return jmxManager;
+ }
+
+ }
+
+ private JMXManager(){
+
+ try{
+ initMBeanServer();
+ publishRMI();
+ }catch(Exception e){
+ }
}
@@ -30,7 +46,7 @@
try{
- initMBeans();
+ //initMBeans();
}catch(Exception e){
throw new AxisFault(e.getMessage());
}
@@ -38,40 +54,55 @@
}
- public void initMBeans() throws Exception{
- Registry reg=null;
- String domain = "Axis2";
+ public void initModeler() throws Exception{
+
+ Registry registry = Registry.getRegistry(null, null);
+ mbs = registry.getMBeanServer();
+
+ }
+
+
+ public void registerModelerMBeans(Object mbean, String mbeanName) throws Exception{
+ registry.registerComponent(mbean, mbeanName, "Axis2Manager");
+ }
- try {
- if( reg==null )
- reg=LocateRegistry.createRegistry(9995);
- } catch(Exception e) {
- throw new AxisFault(e.getMessage());
- }
+ private void initMBeanServer() throws Exception{
// try to find existing MBeanServers. If there are no MBeanServers create a new one for Axis2
- MBeanServer mbs = null;
if (MBeanServerFactory.findMBeanServer(null).size() > 0) {
mbs = (MBeanServer) MBeanServerFactory.findMBeanServer(null).get(0);
} else {
mbs = MBeanServerFactory.createMBeanServer();
}
+ }
- String axis2ManagerNameStr = domain+":type=management.Manager,index=1";
- ObjectName axis2ManagerName = ObjectName.getInstance(axis2ManagerNameStr);
- Axis2Manager axis2Manager = new Axis2Manager(configContext.getAxisConfiguration());
- mbs.registerMBean(axis2Manager, axis2ManagerName);
+ public void registerMBean(Object mbean, String mbeanName) throws Exception{
+ ObjectName mbeanObjectName = ObjectName.getInstance(mbeanName);
+ mbs.registerMBean(mbean, mbeanObjectName);
+ }
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9995/axis2");
- cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
- cs.start();
+ public void publishRMI() throws Exception{
+
+ // RMI registry
+ java.rmi.registry.Registry reg=null;
+
+ try {
+ if( reg==null )
+ reg=LocateRegistry.createRegistry(9995);
+ } catch(Exception e) {
+ throw new AxisFault(e.getMessage());
+ }
+
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9995/axis2");
+ cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
+ cs.start();
}
}
Added: webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerM.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerM.java?rev=230970&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerM.java (added)
+++ webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerM.java Mon Aug 8 22:18:09 2005
@@ -0,0 +1,75 @@
+package org.apache.axis2.management.manager;
+
+import org.apache.axis2.engine.AxisFault;
+
+import java.rmi.registry.LocateRegistry;
+import org.apache.commons.modeler.Registry;
+
+import javax.management.MBeanServer;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
+
+public class JMXManagerM{
+
+ private Registry registry;
+ private static JMXManagerM jmxManager = null;
+
+ JMXConnectorServer cs;
+
+ public static JMXManagerM getJMXManager(){
+
+ if(jmxManager != null){
+ return jmxManager;
+ }
+ else{
+ jmxManager = new JMXManagerM();
+ return jmxManager;
+ }
+
+ }
+
+ private JMXManagerM(){
+
+ try{
+ initModeler();
+ publishRMI();
+ }catch(Exception e){
+ }
+ }
+
+
+
+ public void initModeler() throws Exception{
+
+ Registry registry = Registry.getRegistry(null, null);
+
+ }
+
+
+ public void registerMBeans(Object mbean, String mbeanName) throws Exception{
+
+ registry.registerComponent(mbean, mbeanName, "Axis2Manager");
+ }
+
+
+
+ public void publishRMI() throws Exception{
+
+ // RMI registry
+ java.rmi.registry.Registry reg=null;
+
+ try {
+ if( reg==null )
+ reg=LocateRegistry.createRegistry(9995);
+ } catch(Exception e) {
+ throw new AxisFault(e.getMessage());
+ }
+
+ MBeanServer mbs = registry.getMBeanServer();
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9995/axis2");
+ cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
+ cs.start();
+ }
+
+}
\ No newline at end of file
Added: webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerR.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerR.java?rev=230970&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerR.java (added)
+++ webservices/axis/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManagerR.java Mon Aug 8 22:18:09 2005
@@ -0,0 +1,127 @@
+package org.apache.axis2.management.manager;
+
+import org.apache.axis2.engine.AxisFault;
+
+import java.rmi.registry.LocateRegistry;
+
+import javax.management.MBeanServer;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
+
+public class JMXManagerR{
+
+ private static JMXManagerR jmxManager = null;
+
+ private Class registryClass = null;
+ private Object registry = null;
+ private Method registerComponent = null;
+
+ public static JMXManagerR getJMXManagerR() throws AxisFault{
+
+ if(jmxManager != null){
+ return jmxManager;
+ }
+ else{
+ jmxManager = new JMXManagerR();
+ return jmxManager;
+ }
+
+ }
+
+
+ private JMXManagerR() throws AxisFault{
+
+ try{
+ initModeler();
+ publishRMI();
+ }catch(Exception e){
+ throw AxisFault.makeFault(e);
+ }
+
+ }
+
+
+ public boolean initModeler() throws Exception{
+
+ try {
+ registryClass = Class.forName("org.apache.commons.modeler.Registry");
+ } catch (ClassNotFoundException e) {
+ registry = null;
+ return false;
+ }
+
+ try {
+ Class[] getRegistryArgs = new Class[]{Object.class, Object.class,};
+ Method getRegistry = registryClass.getMethod("getRegistry", getRegistryArgs);
+ Object[] getRegistryOptions = new Object[]{null, null};
+ registry = getRegistry.invoke(null, getRegistryOptions);
+
+ Class[] registerComponentArgs = new Class[]{Object.class, String.class, String.class};
+ registerComponent = registryClass.getMethod("registerComponent", registerComponentArgs);
+
+ } catch (IllegalAccessException e) {
+ throw e;
+ } catch (IllegalArgumentException e) {
+ throw e;
+ } catch (InvocationTargetException e) {
+ throw e;
+ } catch (NoSuchMethodException e) {
+ throw e;
+ }
+
+ return true;
+ }
+
+
+ public boolean registerMBean(Object mbean, String mbeanName) throws Exception{
+
+ String context = "Axis2";
+
+ if (registry != null) {
+ Object args[] = new Object[]{mbean, mbeanName, context};
+ try {
+ registerComponent.invoke(registry, args);
+ } catch (IllegalAccessException e) {
+ return false;
+ } catch (IllegalArgumentException e) {
+ return false;
+ } catch (InvocationTargetException e) {
+ return false;
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+
+ public void publishRMI() throws Exception{
+
+ java.rmi.registry.Registry reg=null; // RMI registry
+ JMXConnectorServer cs = null;
+
+ // create RMI registry on port 9995
+ try {
+ if( reg==null )
+ reg=LocateRegistry.createRegistry(9995);
+ } catch(Exception e) {
+ throw new AxisFault(e.getMessage());
+ }
+
+ // publish MBeanServer in RMI registry
+ Method getMBeanServer = registryClass.getMethod("getMBeanServer", null);
+ MBeanServer mbs = (MBeanServer)getMBeanServer.invoke(registry, null);
+
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9995/axis2");
+ cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
+ cs.start();
+
+ }
+
+
+}
\ No newline at end of file