Author: davidillsley
Date: Fri May 25 10:48:53 2007
New Revision: 541738

URL: http://svn.apache.org/viewvc?view=rev&rev=541738
Log:
Refactor to contain the dispatch logic in single class.
More of this to come.

Modified:
    
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/dispatchers/RequestURIBasedServiceDispatcher.java
    
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/RequestURIBasedDispatcher.java

Modified: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/dispatchers/RequestURIBasedServiceDispatcher.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/dispatchers/RequestURIBasedServiceDispatcher.java?view=diff&rev=541738&r1=541737&r2=541738
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/dispatchers/RequestURIBasedServiceDispatcher.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/dispatchers/RequestURIBasedServiceDispatcher.java
 Fri May 25 10:48:53 2007
@@ -14,11 +14,15 @@
 
 package org.apache.axis2.dispatchers;
 
+import java.util.Map;
+
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.HandlerDescription;
+import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.util.LoggingControl;
 import org.apache.axis2.util.Utils;
@@ -44,15 +48,36 @@
             }
             String filePart = toEPR.getAddress();
             //REVIEW: (nagy) Parsing the RequestURI will also give us the 
operationName if present, so we could conceivably store it in the 
MessageContext, but doing so and retrieving it is probably no faster than 
simply reparsing the URI
+            ConfigurationContext configurationContext = 
messageContext.getConfigurationContext();
             String[] values = 
Utils.parseRequestURLForServiceAndOperation(filePart,
                                                                           
messageContext
                                                                                
   .getConfigurationContext().getServiceContextPath());
 
             if ((values.length >= 1) && (values[0] != null)) {
-                AxisConfiguration registry =
-                        
messageContext.getConfigurationContext().getAxisConfiguration();
+               
+               AxisConfiguration registry =
+                       configurationContext.getAxisConfiguration();
+
+               AxisService axisService = registry.getService(values[0]);
+
+               // If the axisService is not null we get the binding that the 
request came to add
+               // add it as a property to the messageContext
+               if (axisService != null) {
+                       Map endpoints = axisService.getEndpoints();
+                       if (endpoints != null) {
+                               if (endpoints.size() == 1) {
+                                       
messageContext.setProperty(WSDL2Constants.ENDPOINT_LOCAL_NAME,
+                                                       endpoints.get(
+                                                                       
axisService.getEndpointName()));
+                               } else {
+                                       String endpointName = 
values[0].substring(values[0].indexOf(".") + 1);
+                                       
messageContext.setProperty(WSDL2Constants.ENDPOINT_LOCAL_NAME,
+                                                       
endpoints.get(endpointName));
+                               }
+                       }
+               }
 
-                return registry.getService(values[0]);
+               return axisService;
             } else {
                 if (LoggingControl.debugLoggingAllowed && 
log.isDebugEnabled()) {
                     log.debug(messageContext.getLogIDString() +

Modified: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/RequestURIBasedDispatcher.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/RequestURIBasedDispatcher.java?view=diff&rev=541738&r1=541737&r2=541738
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/RequestURIBasedDispatcher.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/RequestURIBasedDispatcher.java
 Fri May 25 10:48:53 2007
@@ -1,6 +1,4 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
@@ -13,24 +11,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-
-
 package org.apache.axis2.engine;
 
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.HandlerDescription;
-import org.apache.axis2.description.WSDL2Constants;
-import org.apache.axis2.util.LoggingControl;
-import org.apache.axis2.util.Utils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.util.Map;
+import org.apache.axis2.dispatchers.RequestURIBasedServiceDispatcher;
 
 /**
  * Dispatches the service based on the information from the target endpoint 
URL.
@@ -38,8 +26,8 @@
 public class RequestURIBasedDispatcher extends AbstractDispatcher {
 
     public static final String NAME = "RequestURIBasedDispatcher";
-    private static final Log log = 
LogFactory.getLog(RequestURIBasedDispatcher.class);
-
+    private RequestURIBasedServiceDispatcher rubsd = new 
RequestURIBasedServiceDispatcher();
+    
     /*
      *  (non-Javadoc)
      * @see 
org.apache.axis2.engine.AbstractDispatcher#findOperation(org.apache.axis2.description.AxisService,
 org.apache.axis2.context.MessageContext)
@@ -56,58 +44,7 @@
      * @see 
org.apache.axis2.engine.AbstractDispatcher#findService(org.apache.axis2.context.MessageContext)
      */
     public AxisService findService(MessageContext messageContext) throws 
AxisFault {
-        EndpointReference toEPR = messageContext.getTo();
-
-        if (toEPR != null) {
-            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-                log.debug(messageContext.getLogIDString() +
-                        " Checking for Service using target endpoint address : 
" +
-                        toEPR.getAddress());
-            }
-            String filePart = toEPR.getAddress();
-            //REVIEW: Parsing the RequestURI will also give us the 
operationName if present, so we could conceivably store it in the 
MessageContext, but doing so and retrieving it is probably no faster than 
simply reparsing the URI
-            ConfigurationContext configurationContext = 
messageContext.getConfigurationContext();
-            String[] values = 
Utils.parseRequestURLForServiceAndOperation(filePart,
-                                                                          
configurationContext.getServiceContextPath());
-
-            if ((values.length >= 1) && (values[0] != null)) {
-                AxisConfiguration registry =
-                        configurationContext.getAxisConfiguration();
-
-                AxisService axisService = registry.getService(values[0]);
-
-                // If the axisService is not null we get the binding that the 
request came to add
-                // add it as a property to the messageContext
-                if (axisService != null) {
-                    Map endpoints = axisService.getEndpoints();
-                    if (endpoints != null) {
-                        if (endpoints.size() == 1) {
-                            
messageContext.setProperty(WSDL2Constants.ENDPOINT_LOCAL_NAME,
-                                                       endpoints.get(
-                                                               
axisService.getEndpointName()));
-                        } else {
-                            String endpointName = 
values[0].substring(values[0].indexOf(".") + 1);
-                            
messageContext.setProperty(WSDL2Constants.ENDPOINT_LOCAL_NAME,
-                                                       
endpoints.get(endpointName));
-                        }
-                    }
-                }
-
-                return axisService;
-            } else {
-                if (LoggingControl.debugLoggingAllowed && 
log.isDebugEnabled()) {
-                    log.debug(messageContext.getLogIDString() +
-                            " Attempted to check for Service using target 
endpoint URI, but the service fragment was missing");
-                }
-                return null;
-            }
-        } else {
-            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-                log.debug(messageContext.getLogIDString() +
-                        " Attempted to check for Service using null target 
endpoint URI");
-            }
-            return null;
-        }
+       return rubsd.findService(messageContext);
     }
 
     public void initDispatcher() {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to