[jboss-cvs] JBossAS SVN: r58140 - branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Nov 5 17:55:05 EST 2006
Author: thomas.diesler at jboss.com
Date: 2006-11-05 17:55:00 -0500 (Sun, 05 Nov 2006)
New Revision: 58140
Modified:
branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/JMSTransportSupport.java
branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcher.java
branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcherFactory.java
Log:
Delegate jms transport handling to jbossws provided MBean
Modified: branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/JMSTransportSupport.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/JMSTransportSupport.java 2006-11-05 21:43:34 UTC (rev 58139)
+++ branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/JMSTransportSupport.java 2006-11-05 22:55:00 UTC (rev 58140)
@@ -131,8 +131,12 @@
protected SOAPMessage processSOAPMessage(String fromName, InputStream reqMessage) throws SOAPException, IOException, RemoteException
{
+ SOAPMessage resMessage = null;
+
MessageDispatcher msgDispatcher = MessageDispatcherFactory.createMessageDispatcher();
- SOAPMessage resMessage = msgDispatcher.dipatchMessage(fromName, this, reqMessage);
+ if (msgDispatcher != null)
+ resMessage = msgDispatcher.dipatchMessage(fromName, this, reqMessage);
+
return resMessage;
}
Modified: branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcher.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcher.java 2006-11-05 21:43:34 UTC (rev 58139)
+++ branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcher.java 2006-11-05 22:55:00 UTC (rev 58140)
@@ -24,8 +24,11 @@
import java.io.InputStream;
import java.rmi.RemoteException;
+import javax.management.ObjectName;
import javax.xml.soap.SOAPMessage;
+import org.jboss.mx.util.ObjectNameFactory;
+
/**
* A dispatcher for SOAPMessages
*
@@ -34,6 +37,8 @@
*/
public interface MessageDispatcher
{
+ public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.ws:service=JMSTransportSupport");
+
/** Dispatch the message to the underlying SOAP engine
*/
SOAPMessage dipatchMessage(String fromName, Object targetImplBean, InputStream reqMessage) throws RemoteException;
Modified: branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcherFactory.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcherFactory.java 2006-11-05 21:43:34 UTC (rev 58139)
+++ branches/Branch_4_2/server/src/main/org/jboss/webservice/transport/jms/MessageDispatcherFactory.java 2006-11-05 22:55:00 UTC (rev 58140)
@@ -21,8 +21,12 @@
*/
package org.jboss.webservice.transport.jms;
-import javax.xml.rpc.ServiceFactory;
+import javax.management.MBeanServer;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanServerLocator;
+
/**
* Create the SOAP message dispatcher for the installed SOAP stack
*
@@ -31,6 +35,9 @@
*/
public class MessageDispatcherFactory
{
+ // logging support
+ private static Logger log = Logger.getLogger(MessageDispatcherFactory.class);
+
// Hide constructor
private MessageDispatcherFactory()
{
@@ -43,24 +50,19 @@
MessageDispatcher msgDispatcher = null;
try
{
- ServiceFactory factory = ServiceFactory.newInstance();
- ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
- if ("org.jboss.webservice.client.ServiceFactoryImpl".equals(factory.getClass().getName()))
+ MBeanServer server = MBeanServerLocator.locateJBoss();
+ if (server.isRegistered(MessageDispatcher.OBJECT_NAME))
{
- // Load the jboss-ws4ee message dispatcher
- Class clazz= ctxLoader.loadClass("org.jboss.webservice.transport.jms.AxisMessageDispatcher");
- msgDispatcher = (MessageDispatcher)clazz.newInstance();
+ msgDispatcher = (MessageDispatcher)MBeanProxy.get(MessageDispatcher.class, MessageDispatcher.OBJECT_NAME, server);
}
- else if ("org.jboss.ws.jaxrpc.ServiceFactoryImpl".equals(factory.getClass().getName()))
+ else
{
- // Load the jbossws message dispatcher
- Class clazz= ctxLoader.loadClass("org.jboss.ws.transport.jms.JMSMessageDispatcher");
- msgDispatcher = (MessageDispatcher)clazz.newInstance();
+ log.error("MBean not registered: " + MessageDispatcher.OBJECT_NAME);
}
}
catch (Exception ex)
{
- // ignore
+ log.error("Cannot obtain MBean proxy", ex);
}
return msgDispatcher;
}
More information about the jboss-cvs-commits
mailing list