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"));
}
}