[jboss-svn-commits] JBoss Common SVN: r4663 - in arquillian/trunk: protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jul 2 05:13:11 EDT 2010
Author: thomas.diesler at jboss.com
Date: 2010-07-02 05:13:11 -0400 (Fri, 02 Jul 2010)
New Revision: 4663
Modified:
arquillian/trunk/.gitignore
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java
Log:
Fix client side issue when the MBeanServer is not available
Modified: arquillian/trunk/.gitignore
===================================================================
--- arquillian/trunk/.gitignore 2010-07-01 17:56:27 UTC (rev 4662)
+++ arquillian/trunk/.gitignore 2010-07-02 09:13:11 UTC (rev 4663)
@@ -1,68 +1,70 @@
.project
-.settings/
+.settings
api/.classpath
api/.project
-api/.settings/
+api/.settings
api/target
build/.project
-build/.settings/
+build/.settings
bundle/.classpath
bundle/target
-containers/glassfish-embedded-30/target
-containers/jbossas-embedded-60/target
-containers/jbossas-local-51/target
-containers/jbossas-local-60/target
-containers/jbossas-remote-50/target
-containers/jbossas-remote-51/target
-containers/jbossas-remote-60/.classpath
-containers/jbossas-remote-60/.project
-containers/jbossas-remote-60/.settings/
-containers/jbossas-remote-60/target
-containers/openejb/target
-containers/openwebbeans-embedded/target
-containers/osgi-embedded/target/
-containers/reloaded/target
-containers/weld-ee-embedded/target
-containers/weld-embedded/.classpath
-containers/weld-embedded/target
+containers/glassfish-embedded-3/target
+containers/glassfish-remote-3/target
+containers/jbossas-embedded-6/target
+containers/jbossas-managed-5.1/target
+containers/jbossas-managed-6/target
+containers/jbossas-remote-5.1/target
+containers/jbossas-remote-5/target
+containers/jbossas-remote-6/target
+containers/jetty-embedded-6.1/target
+containers/jsr88-remote-1.2/target
+containers/openejb-embedded-3.1/target
+containers/openwebbeans-embedded-1/target
+containers/osgi-embedded-4.2/.classpath
+containers/osgi-embedded-4.2/target
+containers/reloaded-embedded-1/target
+containers/tomcat-embedded-6/target
+containers/weld-ee-embedded-1.1/target
+containers/weld-se-embedded-1/target
doc/reference/target
examples/.project
-examples/.settings/
+examples/.settings
examples/domain/.classpath
examples/domain/.project
-examples/domain/.settings/
+examples/domain/.settings
examples/domain/target
examples/junit/.classpath
examples/junit/.project
-examples/junit/.settings/
+examples/junit/.settings
examples/junit/target
examples/testng/target
frameworks/jsfunit/target
impl-base/.classpath
impl-base/.project
-impl-base/.settings/
+impl-base/.settings
impl-base/target
junit/.classpath
junit/.project
-junit/.settings/
+junit/.settings
junit/target
packagers/applicationarchive/.classpath
packagers/applicationarchive/target
packagers/javaee/.classpath
packagers/javaee/.project
-packagers/javaee/.settings/
+packagers/javaee/.settings
packagers/javaee/target
protocols/jmx/.classpath
protocols/jmx/target
protocols/local/.classpath
protocols/local/target
-packagers/osgi/target/
+packagers/osgi/.classpath
+packagers/osgi/target
protocols/servlet-ee5/target
protocols/servlet-ee6/.classpath
protocols/servlet-ee6/target
spi/.classpath
spi/.project
-spi/.settings/
+spi/.settings
spi/target
testenrichers/cdi/.classpath
testenrichers/cdi/target
@@ -73,3 +75,4 @@
testenrichers/resource/.classpath
testenrichers/resource/target
testng/target
+
Modified: arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java
===================================================================
--- arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java 2010-07-01 17:56:27 UTC (rev 4662)
+++ arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java 2010-07-02 09:13:11 UTC (rev 4663)
@@ -29,6 +29,7 @@
import org.jboss.arquillian.spi.TestMethodExecutor;
import org.jboss.arquillian.spi.TestResult;
import org.jboss.arquillian.spi.TestResult.Status;
+import org.jboss.logging.Logger;
/**
* JMXMethodExecutor
@@ -38,7 +39,8 @@
*/
public class JMXMethodExecutor implements ContainerMethodExecutor
{
- private MBeanServer cachedMBeanServer;
+ // Provide logging
+ private static Logger log = Logger.getLogger(JMXMethodExecutor.class);
@Override
public TestResult invoke(TestMethodExecutor testMethodExecutor)
@@ -52,7 +54,7 @@
TestResult result = null;
try
{
- MBeanServer mbeanServer = getMBeanServer();
+ MBeanServer mbeanServer = findOrCreateMBeanServer();
ObjectName objectName = new ObjectName(JMXTestRunnerMBean.OBJECT_NAME);
JMXTestRunnerMBean testRunner = getMBeanProxy(mbeanServer, objectName, JMXTestRunnerMBean.class);
@@ -75,21 +77,31 @@
return result;
}
- private MBeanServer getMBeanServer()
+ private <T> T getMBeanProxy(MBeanServer mbeanServer, ObjectName name, Class<T> interf)
{
- if (cachedMBeanServer == null)
+ return (T)MBeanServerInvocationHandler.newProxyInstance(mbeanServer, name, interf, false);
+ }
+
+ private MBeanServer findOrCreateMBeanServer()
+ {
+ MBeanServer mbeanServer = null;
+
+ ArrayList<MBeanServer> serverArr = MBeanServerFactory.findMBeanServer(null);
+ if (serverArr.size() > 1)
+ log.warn("Multiple MBeanServer instances: " + serverArr);
+
+ if (serverArr.size() > 0)
{
- ArrayList<MBeanServer> mbeanServers = MBeanServerFactory.findMBeanServer(null);
- if (mbeanServers.size() < 1)
- throw new IllegalStateException("No MBeanServer available");
-
- cachedMBeanServer = mbeanServers.get(0);
+ mbeanServer = serverArr.get(0);
+ log.debug("Found MBeanServer: " + mbeanServer.getDefaultDomain());
}
- return cachedMBeanServer;
- }
- private <T> T getMBeanProxy(MBeanServer mbeanServer, ObjectName name, Class<T> interf)
- {
- return (T)MBeanServerInvocationHandler.newProxyInstance(mbeanServer, name, interf, false);
+ if (mbeanServer == null)
+ {
+ log.debug("No MBeanServer, create one ...");
+ mbeanServer = MBeanServerFactory.createMBeanServer();
+ }
+
+ return mbeanServer;
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list