[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