[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