[jboss-cvs] JBossAS SVN: r93704 - in projects/jboss-jca/trunk: fungal/src/main/java/org/jboss/jca/fungal/impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 18 08:48:43 EDT 2009


Author: jesper.pedersen
Date: 2009-09-18 08:48:43 -0400 (Fri, 18 Sep 2009)
New Revision: 93704

Modified:
   projects/jboss-jca/trunk/embedded/src/main/java/org/jboss/jca/embedded/EmbeddedJCA.java
   projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelConfiguration.java
   projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java
Log:
[JBJCA-166] Remote MBeanServer access

Modified: projects/jboss-jca/trunk/embedded/src/main/java/org/jboss/jca/embedded/EmbeddedJCA.java
===================================================================
--- projects/jboss-jca/trunk/embedded/src/main/java/org/jboss/jca/embedded/EmbeddedJCA.java	2009-09-18 12:38:53 UTC (rev 93703)
+++ projects/jboss-jca/trunk/embedded/src/main/java/org/jboss/jca/embedded/EmbeddedJCA.java	2009-09-18 12:48:43 UTC (rev 93704)
@@ -67,6 +67,8 @@
    public void startup() throws Throwable
    {
       KernelConfiguration kernelConfiguration = new KernelConfiguration();
+      kernelConfiguration = kernelConfiguration.remoteAccess(false);
+
       kernel = new KernelImpl(kernelConfiguration);
       kernel.startup();
 

Modified: projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelConfiguration.java
===================================================================
--- projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelConfiguration.java	2009-09-18 12:38:53 UTC (rev 93703)
+++ projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelConfiguration.java	2009-09-18 12:48:43 UTC (rev 93704)
@@ -39,11 +39,22 @@
    /** Thread group */
    private ThreadGroup threadGroup;
 
+   /** Remote access */
+   private boolean remoteAccess;
+
+   /** Remote port */
+   private int remotePort;
+
    /**
     * Constructor
     */
    public KernelConfiguration()
    {
+      home = null;
+      bindAddress = null;
+      threadGroup = null;
+      remoteAccess = true;
+      remotePort = 1202;
    }
 
    /**
@@ -108,4 +119,46 @@
    {
       return threadGroup;
    }
+
+   /**
+    * Set the remote access
+    * @param v The value
+    * @return The configuration
+    */
+   public KernelConfiguration remoteAccess(boolean v)
+   {
+      this.remoteAccess = v;
+
+      return this;
+   }
+
+   /**
+    * Is remote access enabled ?
+    * @return The value
+    */
+   public boolean isRemoteAccess()
+   {
+      return remoteAccess;
+   }
+
+   /**
+    * Set the port for remote access
+    * @param v The value
+    * @return The configuration
+    */
+   public KernelConfiguration remotePort(int v)
+   {
+      this.remotePort = v;
+
+      return this;
+   }
+
+   /**
+    * Get the remote port
+    * @return The value
+    */
+   public int getRemotePort()
+   {
+      return remotePort;
+   }
 }

Modified: projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java
===================================================================
--- projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java	2009-09-18 12:38:53 UTC (rev 93703)
+++ projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java	2009-09-18 12:48:43 UTC (rev 93704)
@@ -32,8 +32,10 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutorService;
@@ -43,6 +45,9 @@
 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;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
 
@@ -82,6 +87,9 @@
    /** MBeanServer */
    private MBeanServer mbeanServer;
 
+   /** JMXConnectorServer */
+   private JMXConnectorServer jmxConnectorServer;
+
    /** Temporary environment */
    private boolean temporaryEnvironment;
 
@@ -218,6 +226,21 @@
                }
             }
          }
+
+         // Remote MBeanServer access
+         if (kernelConfiguration.isRemoteAccess())
+         {
+            Map<String, Object> env = new HashMap<String, Object>();
+            env.put("jmx.remote.protocol.provider.class.loader", kernelClassLoader);
+
+            JMXServiceURL serviceURL = new JMXServiceURL("rmi", 
+                                                         kernelConfiguration.getBindAddress(),
+                                                         kernelConfiguration.getRemotePort());
+
+            jmxConnectorServer = JMXConnectorServerFactory.newJMXConnectorServer(serviceURL, env, mbeanServer);
+            jmxConnectorServer.start();
+         }
+
       }
 
       // Deploy all files in deploy/
@@ -248,6 +271,19 @@
    {
       SecurityActions.setThreadContextClassLoader(kernelClassLoader);
 
+      // Stop the JMX connector
+      if (jmxConnectorServer != null)
+      {
+         try
+         {
+            jmxConnectorServer.stop();
+         }
+         catch (IOException ioe)
+         {
+            // Nothing we can do
+         }
+      }
+
       // Shutdown thread pool
       executorService.shutdown();
 




More information about the jboss-cvs-commits mailing list