You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2013/10/02 21:18:00 UTC
svn commit: r1528602 -
/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
Author: jlmonteiro
Date: Wed Oct 2 19:18:00 2013
New Revision: 1528602
URL: http://svn.apache.org/r1528602
Log:
OPENEJB-2041 Publish JMX information for JAX-WS
Modified:
tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
Modified: tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java?rev=1528602&r1=1528601&r2=1528602&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java Wed Oct 2 19:18:00 2013
@@ -19,10 +19,24 @@ package org.apache.openejb.server.cxf.ej
import org.apache.cxf.Bus;
import org.apache.openejb.BeanContext;
+import org.apache.openejb.api.internal.Internal;
+import org.apache.openejb.api.jmx.Description;
+import org.apache.openejb.api.jmx.MBean;
+import org.apache.openejb.api.jmx.ManagedAttribute;
+import org.apache.openejb.api.jmx.ManagedOperation;
import org.apache.openejb.assembler.classic.util.ServiceConfiguration;
+import org.apache.openejb.core.webservices.HandlerChainData;
+import org.apache.openejb.core.webservices.HandlerData;
import org.apache.openejb.core.webservices.PortData;
+import org.apache.openejb.monitoring.LocalMBeanServer;
+import org.apache.openejb.monitoring.ObjectNameBuilder;
import org.apache.openejb.server.cxf.CxfWsContainer;
+import javax.management.ObjectName;
+import javax.management.openmbean.TabularData;
+import java.util.ArrayList;
+import java.util.List;
+
public class EjbWsContainer extends CxfWsContainer {
private final BeanContext beanContext;
@@ -33,6 +47,105 @@ public class EjbWsContainer extends CxfW
}
protected EjbEndpoint createEndpoint() {
- return new EjbEndpoint(bus, port, beanContext, httpTransportFactory, serviceConfiguration);
+ return new EjbEndpoint(bus, port, beanContext, httpTransportFactory, serviceConfiguration);
+ }
+
+ protected ObjectName registerMBean() {
+ final ObjectName name = new ObjectNameBuilder("openejb.management")
+ .set("j2eeType", "JAX-WS")
+ .set("J2EEServer", "openejb")
+ .set("J2EEApplication", null)
+ .set("EndpointType", "EJB")
+ .set("name", beanContext.getEjbName())
+ .build();
+
+ final WsServiceMBean mbean = new WsServiceMBean(beanContext, port);
+ LocalMBeanServer.registerDynamicWrapperSilently(mbean, name);
+ return name;
+ }
+
+ @MBean
+ @Description("JAX-WS Service information")
+ @Internal
+ public class WsServiceMBean {
+
+ private final BeanContext beanContext;
+ private final PortData port;
+
+ public WsServiceMBean(final BeanContext beanContext, final PortData port) {
+ this.beanContext = beanContext;
+ this.port = port;
+ }
+
+ @ManagedAttribute
+ @Description("The service endpoint interface")
+ public String getServiceEndpointInterface() {
+ return beanContext.getServiceEndpointInterface().getName();
+ }
+
+ @ManagedAttribute
+ @Description("The EJB endpoint type")
+ public String getComponentType() {
+ return beanContext.getComponentType().name();
+ }
+
+ @ManagedOperation
+ @Description("")
+ public String getWsdl() {
+ return null;
+ }
+
+ @ManagedAttribute
+ @Description("The service port QName")
+ public String getPort() {
+ return port.getPortName().toString();
+ }
+
+ @ManagedAttribute
+ @Description("The service QName")
+ public String getService() {
+ return port.getServiceName().toString();
+ }
+
+ @ManagedAttribute
+ @Description("The handler list")
+ public TabularData getHandlers() {
+ final List<String> names = new ArrayList<String>();
+ final List<String> values = new ArrayList<String>();
+
+ for (final HandlerChainData handlerChainData : port.getHandlerChains()) {
+ for (final HandlerData handlerData : handlerChainData.getHandlers()) {
+ names.add(handlerChainData.getServiceNamePattern().toString());
+ values.add(handlerData.getHandlerClass().getName());
+ }
+ }
+
+ return LocalMBeanServer.tabularData(
+ "handlers", "The list of handlers",
+ names.toArray(new String[names.size()]), values.toArray(new String[values.size()]));
+ }
+
+ @ManagedAttribute
+ @Description("Is the service secured?")
+ public boolean getSecured() {
+ return port.isSecure();
+ }
+
+ @ManagedAttribute
+ @Description("Is MTOM enabled?")
+ public boolean getMtomEnabled() {
+ return port.isMtomEnabled();
+ }
+
+ @ManagedAttribute
+ @Description("Service configuration properties")
+ public TabularData getProperties() {
+ return LocalMBeanServer.tabularData(
+ "properties",
+ "Service configuration properties",
+ "Service configuration properties",
+ port.getProperties()
+ );
+ }
}
}