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