You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ch...@apache.org on 2005/09/14 18:22:35 UTC

svn commit: r280880 - in /webservices/axis2/trunk/java/modules: core/src/org/apache/axis2/ core/src/org/apache/axis2/clientapi/ core/src/org/apache/axis2/context/ core/src/org/apache/axis2/engine/ integration/test/org/apache/axis2/engine/ integration/t...

Author: chinthaka
Date: Wed Sep 14 09:21:59 2005
New Revision: 280880

URL: http://svn.apache.org/viewcvs?rev=280880&view=rev
Log:
Fixing more test cases (some more to come ...)

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/InOutMEPClient.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/DispatchingChecker.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/CommonsHTTPEchoRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/UtilServer.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java Wed Sep 14 09:21:59 2005
@@ -39,6 +39,10 @@
      */
     public void invoke(MessageContext msgContext) throws AxisFault {
 
+        if(msgContext.getOperationContext() != null && msgContext.getServiceContext() != null){
+            return;
+        }
+
         OperationDescription operationDesc = msgContext.getOperationDescription();
 
         //  1. look up opCtxt using mc.addressingHeaders.relatesTo[0]

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/InOutMEPClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/InOutMEPClient.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/InOutMEPClient.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/clientapi/InOutMEPClient.java Wed Sep 14 09:21:59 2005
@@ -242,6 +242,7 @@
                         + "/"
                         + axisop.getName().getLocalPart(),
                         listenerTransport.getName().getLocalPart()));
+                msgctx.setTo(this.to);
                 //create and set the Operation context
                 msgctx.setOperationContext(axisop.findOperationContext(msgctx, serviceContext));
                 msgctx.setServiceContext(serviceContext);

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java Wed Sep 14 09:21:59 2005
@@ -27,11 +27,7 @@
 
 import javax.xml.namespace.QName;
 import java.io.File;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -46,28 +42,44 @@
 
     private Map sessionContextMap;
     private Map moduleContextMap;
-    
+
     private transient ThreadPool threadPool;
-    
+
     private File rootDir;
 
     /**
      * Map containing <code>MessageID</code> to
      * <code>OperationContext</code> mapping.
      */
-    private final Map operationContextMap = new HashMap();
+    private static final Map operationContextMap = new HashMap();
 
     private final Map serviceContextMap = new HashMap ();
 
     private final Map serviceGroupContextMap = new HashMap();
 
+    public ConfigurationContext(AxisConfiguration axisConfiguration) {
+        super(null);
+        this.axisConfiguration = axisConfiguration;
+    }
+
     /**
      * The method is used to do the intialization of the EngineContext
+     *
      * @throws AxisFault
      */
+
+    public void init() throws AxisFault {
+
+    }
+
+    public synchronized void removeService(QName name) {
+        serviceContextMap.remove(name);
+    }
+
+    /**
     public void init(AxisConfiguration axisConfiguration) throws AxisFault {
     	this.axisConfiguration = axisConfiguration;
-    	
+
     	Iterator operationContextIt = operationContextMap.keySet().iterator();
     	while (operationContextIt.hasNext()) {
     		Object key = operationContextIt.next();
@@ -75,7 +87,7 @@
     		if (operationContext!=null)
     			operationContext.init(axisConfiguration);
     	}
-    	
+
     	Iterator serviceContextIt = serviceContextMap.keySet().iterator();
     	while (serviceContextIt.hasNext()) {
     		Object key = serviceContextIt.next();
@@ -83,7 +95,7 @@
     		if (serviceContext!=null)
     			serviceContext.init(axisConfiguration);
     	}
-    	
+
     	Iterator serviceGroupContextIt = serviceGroupContextMap.keySet().iterator();
     	while (serviceGroupContextIt.hasNext()) {
     		Object key = serviceGroupContextIt.next();
@@ -92,7 +104,7 @@
     			serviceGroupContext.init(axisConfiguration);
     	}
     }
-    
+
     private void writeObject(ObjectOutputStream out) throws IOException {
     	out.defaultWriteObject();
     }
@@ -101,13 +113,14 @@
     	in.defaultReadObject();
     	threadPool = new ThreadPool ();
     }
-    
+
     public ConfigurationContext(AxisConfiguration registry) {
         super(null);
         this.axisConfiguration = registry;
         //serviceContextMap = new HashMap();
         moduleContextMap = new HashMap();
         sessionContextMap = new HashMap();
+
     }
 
     public synchronized void removeService(QName name) {
@@ -115,7 +128,6 @@
     }
 
     /**
-     * @return
      */
     public AxisConfiguration getAxisConfiguration() {
         return axisConfiguration;
@@ -167,7 +179,6 @@
      * get the ServiceContext given a id
      *
      * @param serviceInstanceID
-     * @return
      */
     public ServiceContext getServiceContext(String serviceInstanceID) {
         return (ServiceContext) this.serviceContextMap.get(serviceInstanceID);
@@ -198,7 +209,6 @@
      * root diretory
      *
      * @param path
-     * @return
      */
     public File getRealPath(String path) {
         if (rootDir == null) {
@@ -226,7 +236,6 @@
      * create a new service context for the service
      *
      * @param messageContext
-     * @return
      */
     public ServiceGroupContext fillServiceContextAndServiceGroupContext(MessageContext messageContext) throws AxisFault {
         String serviceGroupContextId = messageContext.getServiceGroupContextId();
@@ -285,5 +294,9 @@
 
     private boolean isNull(String string) {
         return "".equals(string) || string == null;
+    }
+
+    public void init(AxisConfiguration axisConfiguration) throws AxisFault {
+        this.axisConfiguration = axisConfiguration;
     }
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java Wed Sep 14 09:21:59 2005
@@ -18,6 +18,8 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.description.HandlerDescription;
 import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ServiceDescription;
@@ -28,7 +30,7 @@
 /**
  * This the base class for all dispatchers, it is a Handler which has a one
  * traget, that is to find the Service a given SOAP message is targeted to.
- *
+ * <p/>
  * Axis2 service dispatching is model via a Chain of diapatchers, each trying to
  * Diaptach but let go without throwing a execption in case they fail.
  */
@@ -60,8 +62,24 @@
      */
     public final void invoke(MessageContext msgctx) throws AxisFault {
 
+        // first check we can dispatch using the relates to
+        if (msgctx.getRelatesTo() != null) {
+            String relatesTo = msgctx.getRelatesTo().getValue();
+            if (relatesTo != null || "".equals(relatesTo)) {
+                OperationContext operationContext = msgctx.getSystemContext().getOperationContext(relatesTo);
+                if (operationContext != null) {
+                    msgctx.setOperationDescription(operationContext.getAxisOperation());
+                    msgctx.setOperationContext(operationContext);
+                    msgctx.setServiceContext((ServiceContext) operationContext.getParent());
+                    msgctx.setServiceDescription(((ServiceContext) operationContext.getParent()).getServiceConfig());
+                }
+            }
+            return;
+        }
+
+
         ServiceDescription serviceDescription = msgctx.getServiceDescription();
-        if(serviceDescription == null){
+        if (serviceDescription == null) {
             serviceDescription = findService(msgctx);
             if (serviceDescription != null) {
                 msgctx.setServiceDescription(serviceDescription);
@@ -69,9 +87,9 @@
             }
         }
 
-        if(msgctx.getServiceDescription() != null && msgctx.getOperationDescription() == null){
+        if (msgctx.getServiceDescription() != null && msgctx.getOperationDescription() == null) {
             OperationDescription operationDescription = findOperation(serviceDescription, msgctx);
-            if(operationDescription != null){
+            if (operationDescription != null) {
                 msgctx.setOperationDescription(operationDescription);
             }
         }
@@ -99,6 +117,7 @@
 
     /**
      * Give the diaptacher turn to find the Service
+     *
      * @param messageContext
      * @return
      * @throws AxisFault
@@ -108,6 +127,7 @@
 
     /**
      * Give the diaptacher turn to find the Operation
+     *
      * @param service
      * @param messageContext
      * @return

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java Wed Sep 14 09:21:59 2005
@@ -16,6 +16,7 @@
 package org.apache.axis2.engine;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.HandlerDescription;
@@ -28,7 +29,7 @@
 /**
  * Dispatcher based on the WS-Addressing properties
  */
-public class AddressingBasedDispatcher extends AbstractDispatcher {
+public class AddressingBasedDispatcher extends AbstractDispatcher implements AddressingConstants {
     /**
      * Field NAME
      */
@@ -62,17 +63,23 @@
     public ServiceDescription findService(MessageContext messageContext) throws AxisFault {
         EndpointReference toEPR = messageContext.getTo();
         ServiceDescription service = null;
-        QName serviceName = new QName(toEPR.getAddress());
-
-        String filePart = toEPR.getAddress();
-        String[] values = Utils.parseRequestURLForServiceAndOperation(
-                filePart);
-        if (values[0] != null) {
-            serviceName = new QName(values[0]);
-            AxisConfiguration registry =
-                    messageContext.getSystemContext().getAxisConfiguration();
-            return registry.getService(serviceName.getLocalPart());
+        if (toEPR != null) {
+            String address = toEPR.getAddress();
+            if (Final.WSA_ANONYMOUS_URL.equals(address) || Submission.WSA_ANONYMOUS_URL.equals(address)) {
+                return null;
+            }
+            QName serviceName = new QName(address);
+
+            String filePart = toEPR.getAddress();
+            String[] values = Utils.parseRequestURLForServiceAndOperation(
+                    filePart);
+            if (values[0] != null) {
+                serviceName = new QName(values[0]);
+                AxisConfiguration registry =
+                        messageContext.getSystemContext().getAxisConfiguration();
+                return registry.getService(serviceName.getLocalPart());
 
+            }
         }
         return service;
     }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/DispatchingChecker.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/DispatchingChecker.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/DispatchingChecker.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/DispatchingChecker.java Wed Sep 14 09:21:59 2005
@@ -52,6 +52,14 @@
      * @throws AxisFault
      */
     public final void invoke(MessageContext msgctx) throws AxisFault {
+        if(msgctx.getOperationDescription() == null && msgctx.getOperationContext() != null ){
+            msgctx.setOperationDescription(msgctx.getOperationContext().getAxisOperation());
+        }
+
+        if(msgctx.getServiceDescription() == null && msgctx.getServiceContext() != null){
+            msgctx.setServiceDescription(msgctx.getServiceContext().getServiceConfig());
+        }
+        
         EndpointReference toEPR = msgctx.getTo();
         if (msgctx.getServiceDescription() == null) {
             throw new AxisFault(

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/CommonsHTTPEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/CommonsHTTPEchoRawXMLTest.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/CommonsHTTPEchoRawXMLTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/CommonsHTTPEchoRawXMLTest.java Wed Sep 14 09:21:59 2005
@@ -24,6 +24,7 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.clientapi.AsyncResult;
 import org.apache.axis2.clientapi.Callback;
+import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.description.ServiceDescription;
@@ -66,12 +67,14 @@
     }
 
     protected void setUp() throws Exception {
-        UtilServer.start();
+        ConfigurationContext configurationContext = UtilServer.start();
         service =
                 Utils.createSimpleService(serviceName,
                         Echo.class.getName(),
                         operationName);
         UtilServer.deployService(service);
+        service.getParent().getServiceGroupContext(configurationContext).fillServiceContexts();
+        ServiceContext serviceContext = service.getParent().getServiceGroupContext(configurationContext).getServiceContext(serviceName.getLocalPart());
 
     }
 
@@ -86,7 +89,9 @@
         org.apache.axis2.clientapi.Call call = new org.apache.axis2.clientapi.Call(
                 Constants.TESTING_PATH + "commons-http-enabledRepository");
 
+
         call.setTo(targetEPR);
+//        call.setWsaAction(operationName.getLocalPart());
         call.setTransportInfo(Constants.TRANSPORT_HTTP,
                 Constants.TRANSPORT_HTTP,
                 false);

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java Wed Sep 14 09:21:59 2005
@@ -25,9 +25,9 @@
 import org.apache.axis2.clientapi.AsyncResult;
 import org.apache.axis2.clientapi.Call;
 import org.apache.axis2.clientapi.Callback;
+import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.ServiceDescription;
 import org.apache.axis2.integration.TestingUtils;
 import org.apache.axis2.integration.UtilServer;
@@ -126,7 +126,7 @@
         call.close();
 
 
-        log.info("send the reqest");
+        log.info("send the request");
     }
 
     public void testEchoXMLSync() throws Exception {

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/UtilServer.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/UtilServer.java?rev=280880&r1=280879&r2=280880&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/UtilServer.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/UtilServer.java Wed Sep 14 09:21:59 2005
@@ -21,6 +21,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
 import org.apache.axis2.deployment.DeploymentEngine;
 import org.apache.axis2.description.ModuleDescription;
 import org.apache.axis2.description.ServiceDescription;
@@ -41,6 +42,8 @@
         receiver.getSystemContext().getAxisConfiguration().addService(service);
         Utils.resolvePhases(receiver.getSystemContext().getAxisConfiguration(),
                 service);
+        ServiceGroupContext serviceGroupContext = service.getParent().getServiceGroupContext(receiver.getSystemContext());
+        serviceGroupContext.fillServiceContexts();
     }
 
     public static synchronized void unDeployService(QName service) throws AxisFault {