You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/04/04 00:29:25 UTC

svn commit: r1584433 - in /tomee/tomee/trunk/server/openejb-cxf-transport: pom.xml src/main/java/org/apache/openejb/server/cxf/transport/util/CxfUtil.java

Author: rmannibucau
Date: Thu Apr  3 22:29:24 2014
New Revision: 1584433

URL: http://svn.apache.org/r1584433
Log:
TOMEE-1166 for 65k and 5lines of code  we can control cxf endpoint through JMX

Modified:
    tomee/tomee/trunk/server/openejb-cxf-transport/pom.xml
    tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfUtil.java

Modified: tomee/tomee/trunk/server/openejb-cxf-transport/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-transport/pom.xml?rev=1584433&r1=1584432&r2=1584433&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-transport/pom.xml (original)
+++ tomee/tomee/trunk/server/openejb-cxf-transport/pom.xml Thu Apr  3 22:29:24 2014
@@ -37,5 +37,10 @@
       <artifactId>cxf-rt-transports-http</artifactId>
       <version>${cxf.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.cxf</groupId>
+      <artifactId>cxf-rt-management</artifactId>
+      <version>${cxf.version}</version>
+    </dependency>
   </dependencies>
 </project>

Modified: tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfUtil.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfUtil.java?rev=1584433&r1=1584432&r2=1584433&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfUtil.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfUtil.java Thu Apr  3 22:29:24 2014
@@ -29,6 +29,8 @@ import org.apache.cxf.endpoint.AbstractE
 import org.apache.cxf.feature.AbstractFeature;
 import org.apache.cxf.interceptor.AbstractBasicInterceptorProvider;
 import org.apache.cxf.interceptor.Interceptor;
+import org.apache.cxf.management.InstrumentationManager;
+import org.apache.cxf.management.jmx.InstrumentationManagerImpl;
 import org.apache.cxf.message.Message;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
@@ -36,8 +38,10 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
 import org.apache.openejb.assembler.classic.util.ServiceInfos;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.monitoring.LocalMBeanServer;
 import org.apache.openejb.util.PropertiesHelper;
 
+import javax.management.MBeanServer;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
@@ -233,6 +237,19 @@ public final class CxfUtil {
         // ensure cxf classes are loaded from container to avoid conflicts with app
         bus.setExtension(new CxfContainerClassLoader(), ClassLoader.class);
 
+        // activate jmx, by default isEnabled() == false in InstrumentationManagerImpl
+        if ("true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.cxf.jmx", "true"))) {
+            final InstrumentationManager mgr = bus.getExtension(InstrumentationManager.class);
+            if (InstrumentationManagerImpl.class.isInstance(mgr)) {
+                bus.setExtension(LocalMBeanServer.get(), MBeanServer.class); // just to keep everything consistent
+
+                final InstrumentationManagerImpl manager = InstrumentationManagerImpl.class.cast(mgr);
+                manager.setEnabled(true);
+                manager.setServer(LocalMBeanServer.get());
+                manager.setDaemon(true);
+            }
+        }
+
         if (bus instanceof CXFBusImpl) {
             final ServiceConfiguration configuration = new ServiceConfiguration(SystemInstance.get().getProperties(),
                     SystemInstance.get().getComponent(OpenEjbConfiguration.class).facilities.services);
@@ -261,6 +278,8 @@ public final class CxfUtil {
             configureInterceptors(busImpl, BUS_PREFIX, serviceInfos, configuration.getProperties());
 
             SystemInstance.get().getProperties().setProperty(BUS_CONFIGURED_FLAG, "true");
+
+            busImpl.setId(SystemInstance.get().getProperty("openejb.cxf.bus.id", "openejb.cxf.bus"));
         }
     }