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 pr...@apache.org on 2007/06/17 14:11:57 UTC

svn commit: r548033 [7/11] - in /webservices/axis2/branches/java/jaxws21: ./ etc/ modules/adb-codegen/ modules/adb-codegen/src/org/apache/axis2/schema/ modules/adb-codegen/src/org/apache/axis2/schema/template/ modules/adb-codegen/src/org/apache/axis2/s...

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/EndpointController.java Sun Jun 17 05:11:16 2007
@@ -109,7 +109,9 @@
          * Since we're on the server, and there apparently is no Binding object
          * anywhere to be found...
          */
-        ic.setHandlers(new HandlerResolverImpl(endpointDesc).getHandlerChain(endpointDesc.getPortInfo()));
+        if (ic.getHandlers() == null) {
+            ic.setHandlers(new HandlerResolverImpl(endpointDesc).getHandlerChain(endpointDesc.getPortInfo()));
+        }
         
         if (!bindingTypesMatch(requestMsgCtx, endpointDesc.getServiceDescription())) {
             Protocol protocol = requestMsgCtx.getMessage().getProtocol();

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/endpoint/lifecycle/impl/EndpointLifecycleManagerImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/endpoint/lifecycle/impl/EndpointLifecycleManagerImpl.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/endpoint/lifecycle/impl/EndpointLifecycleManagerImpl.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/endpoint/lifecycle/impl/EndpointLifecycleManagerImpl.java Sun Jun 17 05:11:16 2007
@@ -35,6 +35,10 @@
 import org.apache.axis2.jaxws.server.endpoint.injection.impl.ResourceInjectionException;
 import org.apache.axis2.jaxws.server.endpoint.lifecycle.EndpointLifecycleException;
 import org.apache.axis2.jaxws.server.endpoint.lifecycle.EndpointLifecycleManager;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.Constants;
+import org.apache.axis2.util.Loader;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -109,7 +113,7 @@
             return serviceimpl;
         } else {
             // create a new service impl class for that service
-            serviceimpl = createServiceInstance(serviceImplClass);
+            serviceimpl = createServiceInstance(msgContext.getAxisService(), serviceImplClass);
             this.endpointInstance = serviceimpl;
             this.endpointClazz = serviceImplClass;
             if (log.isDebugEnabled()) {
@@ -249,7 +253,7 @@
         return false;
     }
 
-    private Object createServiceInstance(Class serviceImplClass) {
+    private Object createServiceInstance(AxisService service, Class serviceImplClass) {
         if (log.isDebugEnabled()) {
             log.debug("Creating new instance of service endpoint");
         }
@@ -261,11 +265,31 @@
 
         Object instance = null;
         try {
+            // allow alternative definition of makeNewServiceObject
+            if (service != null && service.getParameter(Constants.SERVICE_OBJECT_SUPPLIER) != null) {
+                ClassLoader classLoader = service.getClassLoader();
+
+                Parameter serviceObjectParam =
+                        service.getParameter(Constants.SERVICE_OBJECT_SUPPLIER);
+                Class serviceObjectMaker = Loader.loadClass(classLoader, ((String)
+                        serviceObjectParam.getValue()).trim());
+
+                // Find static getServiceObject() method, call it if there
+                Method method = serviceObjectMaker.
+                        getMethod("getServiceObject",
+                                new Class[]{AxisService.class});
+                if (method != null) {
+                    return method.invoke(serviceObjectMaker.newInstance(), new Object[]{service});
+                }
+            }
             instance = serviceImplClass.newInstance();
         } catch (IllegalAccessException e) {
             throw ExceptionFactory.makeWebServiceException(Messages.getMessage(
                     "EndpointControllerErr6", serviceImplClass.getName()));
         } catch (InstantiationException e) {
+            throw ExceptionFactory.makeWebServiceException(Messages.getMessage(
+                    "EndpointControllerErr6", serviceImplClass.getName()));
+        } catch (Exception e) {
             throw ExceptionFactory.makeWebServiceException(Messages.getMessage(
                     "EndpointControllerErr6", serviceImplClass.getName()));
         }

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java Sun Jun 17 05:11:16 2007
@@ -416,10 +416,29 @@
                     "Unable to getPort for port QName " + portName);
         }
 
-        JAXWSProxyHandler proxyHandler = new JAXWSProxyHandler(this, sei, endpointDesc, features);
-
-        Class[] seiClazz = new Class[] { sei, org.apache.axis2.jaxws.spi.BindingProvider.class };
-        Object proxyClass = Proxy.newProxyInstance(getClassLoader(sei), seiClazz, proxyHandler);
+        String[] interfacesNames = 
+            new String [] {sei.getName(), org.apache.axis2.jaxws.spi.BindingProvider.class.getName()};
+        
+        // As required by java.lang.reflect.Proxy, ensure that the interfaces
+        // for the proxy are loadable by the same class loader. 
+        Class[] interfaces = null;
+        // First, let's try loading the interfaces with the SEI classLoader
+        ClassLoader classLoader = getClassLoader(sei);
+        try {
+            interfaces = loadClasses(classLoader, interfacesNames);
+        } catch (ClassNotFoundException e1) {
+            // Let's try with context classLoader now
+            classLoader = getContextClassLoader();
+            try {
+                interfaces = loadClasses(classLoader, interfacesNames);
+            } catch (ClassNotFoundException e2) {
+                // TODO: NLS
+                throw ExceptionFactory.makeWebServiceException("Unable to load proxy classes", e2);
+            }
+        }
+        
+        JAXWSProxyHandler proxyHandler = new JAXWSProxyHandler(this, interfaces[0], endpointDesc, features);
+        Object proxyClass = Proxy.newProxyInstance(classLoader, interfaces, proxyHandler);
         return sei.cast(proxyClass);
     }
 
@@ -517,10 +536,29 @@
                     "Unable to getPort for epr " + axis2EPR);
         }
 
-        JAXWSProxyHandler proxyHandler = new JAXWSProxyHandler(this, sei, endpointDesc, axis2EPR, addressingNamespace, features);
+        String[] interfacesNames = 
+            new String [] {sei.getName(), org.apache.axis2.jaxws.spi.BindingProvider.class.getName()};
+        
+        // As required by java.lang.reflect.Proxy, ensure that the interfaces
+        // for the proxy are loadable by the same class loader. 
+        Class[] interfaces = null;
+        // First, let's try loading the interfaces with the SEI classLoader
+        ClassLoader classLoader = getClassLoader(sei);
+        try {
+            interfaces = loadClasses(classLoader, interfacesNames);
+        } catch (ClassNotFoundException e1) {
+            // Let's try with context classLoader now
+            classLoader = getContextClassLoader();
+            try {
+                interfaces = loadClasses(classLoader, interfacesNames);
+            } catch (ClassNotFoundException e2) {
+                // TODO: NLS
+                throw ExceptionFactory.makeWebServiceException("Unable to load proxy classes", e2);
+            }
+        }
 
-        Class[] seiClazz = new Class[] { sei, org.apache.axis2.jaxws.spi.BindingProvider.class };
-        Object proxyClass = Proxy.newProxyInstance(getClassLoader(sei), seiClazz, proxyHandler);
+        JAXWSProxyHandler proxyHandler = new JAXWSProxyHandler(this, interfaces[0], endpointDesc, axis2EPR, addressingNamespace, features);
+        Object proxyClass = Proxy.newProxyInstance(classLoader, interfaces, proxyHandler);
         return sei.cast(proxyClass);        
     }
 
@@ -601,6 +639,65 @@
 
         return cl;
     }
+    
+    /** @return ClassLoader */
+    private static ClassLoader getContextClassLoader() {
+        // NOTE: This method must remain private because it uses AccessController
+        ClassLoader cl = null;
+        try {
+            cl = (ClassLoader)AccessController.doPrivileged(
+                    new PrivilegedExceptionAction() {
+                        public Object run() throws ClassNotFoundException {
+                            return Thread.currentThread().getContextClassLoader();
+                        }
+                    }
+            );
+        } catch (PrivilegedActionException e) {
+            if (log.isDebugEnabled()) {
+                log.debug("Exception thrown from AccessController: " + e);
+            }
+            throw ExceptionFactory.makeWebServiceException(e.getException());
+        }
+
+        return cl;
+    }
+    
+    /**
+     * Return the class for this name
+     *
+     * @return Class
+     */
+    private static Class forName(final String className, final boolean initialize,
+                                 final ClassLoader classLoader) throws ClassNotFoundException {
+        // NOTE: This method must remain protected because it uses AccessController
+        Class cl = null;
+        try {
+            cl = (Class)AccessController.doPrivileged(
+                    new PrivilegedExceptionAction() {
+                        public Object run() throws ClassNotFoundException {
+                            return Class.forName(className, initialize, classLoader);
+                        }
+                    }
+            );
+        } catch (PrivilegedActionException e) {
+            if (log.isDebugEnabled()) {
+                log.debug("Exception thrown from AccessController: " + e);
+            }
+            throw (ClassNotFoundException)e.getException();
+        }
+
+        return cl;
+    }
+    
+    private static Class[] loadClasses(ClassLoader classLoader, String[] classNames)
+        throws ClassNotFoundException {
+        Class[] classes = new Class[classNames.length];
+        for (int i = 0; i < classNames.length; i++) {
+            classes[i] = forName(classNames[i], true, classLoader);
+        }
+        return classes;
+    }
+    
 }
 
 /**

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/test/org/apache/axis2/jaxws/provider/StringProviderTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/test/org/apache/axis2/jaxws/provider/StringProviderTests.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/test/org/apache/axis2/jaxws/provider/StringProviderTests.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/test/org/apache/axis2/jaxws/provider/StringProviderTests.java Sun Jun 17 05:11:16 2007
@@ -22,7 +22,6 @@
 import javax.xml.soap.SOAPFault;
 import javax.xml.ws.BindingProvider;
 import javax.xml.ws.Dispatch;
-import javax.xml.ws.ProtocolException;
 import javax.xml.ws.Service;
 import javax.xml.ws.soap.SOAPFaultException;
 

Modified: webservices/axis2/branches/java/jaxws21/modules/jibx/src/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jibx/src/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jibx/src/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jibx/src/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl Sun Jun 17 05:11:16 2007
@@ -822,12 +822,12 @@
     
     <!-- shouldn't be needed when no actual binding, but called by fault conversion code so must be left in for now -->
     private static Object fromOM(org.apache.axiom.om.OMElement param, Class type,
-        java.util.Map extraNamespaces) {
+        java.util.Map extraNamespaces) throws org.apache.axis2.AxisFault{
         try {
             org.jibx.runtime.impl.UnmarshallingContext ctx = getNewUnmarshalContext(param);
             return ctx.unmarshalElement(type);
         } catch (Exception e) {
-             throw new RuntimeException(e);
+             throw new org.apache.axis2.AxisFault(e.getMessage());
         }
     }
   </xsl:template>

Propchange: webservices/axis2/branches/java/jaxws21/modules/jws-api/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Jun 17 05:11:16 2007
@@ -0,0 +1,2 @@
+target
+*.iml

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/conf/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/conf/axis2.xml?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/conf/axis2.xml (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/conf/axis2.xml Sun Jun 17 05:11:16 2007
@@ -47,6 +47,12 @@
     <parameter name="password">axis2</parameter>
 
     <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
+    <!--ServicesDirectory only works on the following cases-->
+    <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
+    <!---When creating URL Based configurator with URL “file://”  -->
+    <!--- War based configurator with expanded case , -->
+
+    <!--All the other scenarios it will be ignored.-->
     <!--<parameter name="ServicesDirectory">service</parameter>-->
     <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
     <!--<parameter name="ModulesDirectory">modules</parameter>-->
@@ -66,6 +72,9 @@
     <!-- Following parameter will completely disable REST handling in Axis2-->
     <parameter name="disableREST" locked="true">false</parameter>
 
+    <!-- Following parameter will set the host name for the epr-->
+    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
     <!-- If you have a front end host which exposes this webservice using a different public URL  -->
     <!-- use this parameter to override autodetected url -->
     <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
@@ -222,8 +231,8 @@
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
-    <transportSender name="jms"
-                     class="org.apache.axis2.transport.jms.JMSSender"/>
+    <!--<transportSender name="jms"-->
+                     <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
 
     <!-- ================================================= -->
     <!-- Mail Transport Sender  -->

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/AxisFault.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/AxisFault.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/AxisFault.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/AxisFault.java Sun Jun 17 05:11:16 2007
@@ -26,7 +26,6 @@
 import org.apache.axiom.soap.SOAPFaultRole;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.soap.SOAPFaultSubCode;
-import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axis2.context.MessageContext;
 
 import javax.xml.namespace.QName;
@@ -67,6 +66,8 @@
  *                                                             role                 (discarded)
  *                                                             </pre>
  */
+
+
 public class AxisFault extends RemoteException {
     private static final long serialVersionUID = -374933082062124907L;
 
@@ -91,7 +92,7 @@
     private SOAPFaultDetail soapFaultDetail;
 
     /**
-     * If not null, the messageContext represents the fault as it
+     * If not null, this MessageContext represents the fault as it
      * should be returned.  This is used by higher-level layers
      * that want to generate the message themselves so that
      * processing may take place before they return control (e.g. JAX-WS.)
@@ -114,7 +115,9 @@
 
 
     /**
-     * @param message
+     * Constructor.
+     *
+     * @param message the human-readable text describing the fault
      */
     public AxisFault(String message) {
         this.message = message;
@@ -122,17 +125,26 @@
     }
 
     /**
-     * These are the absolute minimum to construct a meaningful SOAPFault from user's information
+     * Constructor
      *
      * @param faultCode   - fault code of the message as a QName
      * @param faultReason - the reason for the fault. The language will be defaulted to 'en'
-     * @param cause
+     * @param cause embedded fault which caused this one
      */
     public AxisFault(QName faultCode, String faultReason, Throwable cause) {
         this(faultReason, cause);
         setFaultCode(faultCode);
     }
 
+    /**
+     * Constructor
+     *
+     * @param faultCode a QName for the fault code
+     * @param faultReason the reason for the fault. The language will be defaulted to 'en'
+     * @param faultNode a URL identifying the SOAP node generating this fault, or null
+     * @param faultRole a URL identifying the SOAP role active when generating this fault, or null
+     * @param faultDetail arbitrary XML containing application-specific fault data
+     */
     public AxisFault(QName faultCode, String faultReason, String faultNode, String faultRole,
                      OMElement faultDetail) {
         this(faultReason, faultCode);
@@ -146,10 +158,11 @@
      * in this class to get and set things.
      * Any of the parameters can be null
      *
-     * @param soapFaultCode
-     * @param soapFaultReason
-     * @param soapFaultNode
-     * @param soapFaultRole
+     * @param soapFaultCode the fault code
+     * @param soapFaultReason the fault reason
+     * @param soapFaultNode the SOAPFaultNode representing the source node for this fault
+     * @param soapFaultRole the SOAPFaultRole representing the source role for this fault
+     * @param soapFaultDetail the SOAPFaultDetail containing any application-specific info
      */
     public AxisFault(SOAPFaultCode soapFaultCode, SOAPFaultReason soapFaultReason,
                      SOAPFaultNode soapFaultNode, SOAPFaultRole soapFaultRole,
@@ -192,6 +205,8 @@
 //                cause = new Exception(exceptionElement.getText());
 //            }
 
+            // TODO - Wha? Details can have multiple elements, why take the first child here?
+            // TODO - Review the API for details
             // setting the first child element of the fault detail as this.detail
             this.detail = soapFaultDetail.getFirstElement();
 
@@ -230,6 +245,8 @@
     }
 
     /**
+     * Constructor.
+     *
      * @param messageText - this will appear as the Text in the Reason information item of SOAP Fault
      * @param faultCode   - this will appear as the Value in the Code information item of SOAP Fault
      */
@@ -239,8 +256,10 @@
     }
 
     /**
-     * @param messageText - this will appear as the Text in the Reason information item of SOAP Fault
-     * @param faultCode   - this will appear as the Value in the Code information item of SOAP Fault
+     * Constructor
+     *
+     * @param messageText this will appear as the Text in the Reason information item of SOAP Fault
+     * @param faultCode this will appear as the Value in the Code information item of SOAP Fault
      */
     public AxisFault(String messageText, QName faultCode) {
         this(messageText);
@@ -248,8 +267,10 @@
     }
 
     /**
-     * @param message
-     * @param cause
+     * Constructor
+     *
+     * @param message this will appear as the Text in the Reason information item of SOAP Fault
+     * @param cause the embedded Throwable that caused this fault
      */
     public AxisFault(String message, Throwable cause) {
         super(message, cause);
@@ -285,7 +306,7 @@
      * that contains the actual fault representation.
      *
      * @param message             A string that's really only useful for logging.
-     * @param faultMessageContext
+     * @param faultMessageContext A MessageContext which must contain SOAP fault info
      */
     public AxisFault(String message, MessageContext faultMessageContext) {
         this(message);
@@ -328,6 +349,8 @@
     public String getReason() {
         if (faultReasonList.size() >= 1) {
             return ((FaultReason) faultReasonList.get(0)).getText();
+        } else if (soapFaultReason != null) {
+            return soapFaultReason.getText();
         }
 
         return null;
@@ -443,7 +466,7 @@
     /**
      * Set the entire detail element of the fault
      *
-     * @param detail
+     * @param detail an OMElement which MUST be 
      */
     public void setDetail(OMElement detail) {
         this.detail = detail;
@@ -460,7 +483,9 @@
     }
 
     /**
-     * Set the faulting node uri. SOAP1.2
+     * Set the faulting node uri. (SOAP1.2)
+     *
+     * @param nodeURI a String containing a URI indicating which SOAP Node faulted
      */
     public void setNodeURI(String nodeURI) {
         this.nodeURI = nodeURI;
@@ -540,8 +565,9 @@
 	}
 
 	/**
-	 * Set the (OPTIONAL) action value for the fault message 
-	 * @param faultAction
+	 * Set the (OPTIONAL) action value for the fault message
+     *
+	 * @param faultAction a String containing an action URI for the fault
 	 */
 	public void setFaultAction(String faultAction) {
 		this.faultAction = faultAction;

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/Constants.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/Constants.java Sun Jun 17 05:11:16 2007
@@ -194,7 +194,7 @@
     public static final String TESTING_REPOSITORY = TESTING_PATH + "samples";
     public static final char SERVICE_NAME_SPLIT_CHAR = ':';
     public static final String SERVICE_GROUP_ID = "ServiceGroupId";
-    public static final String RESPONSE_WRITTEN = "CONTENT_WRITTEN";
+    public static final String RESPONSE_WRITTEN = "RESPONSE_WRITTEN";
     //To have a floag if the replyTo is not annon one
     public static final String DIFFERENT_EPR = "DIFFERENT_EPR";
 
@@ -269,7 +269,6 @@
         public static final String HTTP_METHOD_POST = "POST";
 
         public static final String CONTENT_TYPE = "ContentType";
-        public static final String CONTENT_TYPE_OF_FAULT = "ContentTypeOfFault";
 
         public static final String CONFIG_CONTEXT_TIMOUT_INTERVAL = "ConfigContextTimeoutInterval";
 

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java Sun Jun 17 05:11:16 2007
@@ -58,7 +58,7 @@
      * spec.
      *
      * @param messageContext
-     * @see isReplyRedirected
+     * @see #isReplyRedirected(org.apache.axis2.context.MessageContext)
      */
     public static boolean isFaultRedirected(MessageContext messageContext) {
         EndpointReference faultTo = messageContext.getFaultTo();
@@ -88,6 +88,7 @@
         // fault informatio to send the error. Try to send using replyTo, leave it to transport
         boolean doNotSendFaultUsingFaultTo = false;
         if (faultInfoForHeaders != null) {
+            // TODO: This should probably store a QName instead of a String.. currently we rely on prefix string matching!!
             String problemHeaderName = (String) ((Map) faultInfoForHeaders)
                     .get(AddressingConstants.Final.FAULT_HEADER_PROB_HEADER_QNAME);
             doNotSendFaultUsingFaultTo = (problemHeaderName != null && (AddressingConstants

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/OperationClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/OperationClient.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/OperationClient.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/OperationClient.java Sun Jun 17 05:11:16 2007
@@ -247,17 +247,28 @@
         }
     }
 
-    protected void prepareMessageContext(ConfigurationContext cc, MessageContext mc)
+    /**
+     * prepareMessageContext gets a fresh new MessageContext ready to be sent.
+     * It sets up the necessary properties, transport information, etc.
+     *
+     * @param configurationContext the active ConfigurationContext
+     * @param mc the MessageContext to be configured
+     * @throws AxisFault if there is a problem
+     */
+    protected void prepareMessageContext(ConfigurationContext configurationContext,
+                                         MessageContext mc)
             throws AxisFault {
         // set options on the message context
         if (mc.getSoapAction() == null || "".equals(mc.getSoapAction())) {
             mc.setSoapAction(options.getAction());
         }
-        mc.setOptions(options);
+
+        mc.setOptions(new Options(options));
         mc.setAxisMessage(axisOp.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
 
         // do Target Resolution
-        TargetResolver targetResolver = cc.getAxisConfiguration().getTargetResolverChain();
+        TargetResolver targetResolver =
+                configurationContext.getAxisConfiguration().getTargetResolverChain();
         if (targetResolver != null) {
             targetResolver.resolveTarget(mc);
         }
@@ -267,7 +278,7 @@
         if (senderTransport == null) {
             EndpointReference toEPR = (options.getTo() != null) ? options
                     .getTo() : mc.getTo();
-            senderTransport = ClientUtils.inferOutTransport(cc
+            senderTransport = ClientUtils.inferOutTransport(configurationContext
                     .getAxisConfiguration(), toEPR, mc);
         }
         mc.setTransportOut(senderTransport);

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/ServiceClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/ServiceClient.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/ServiceClient.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/ServiceClient.java Sun Jun 17 05:11:16 2007
@@ -733,9 +733,13 @@
     }
 
     public void cleanupTransport() throws AxisFault{
-        MessageContext outMessageContext =
-                getLastOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-        outMessageContext.getTransportOut().getSender().cleanup(outMessageContext);
+        if(getLastOperationContext()!=null){
+            MessageContext outMessageContext =
+                    getLastOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+            if (outMessageContext!=null) {
+                outMessageContext.getTransportOut().getSender().cleanup(outMessageContext);
+            }
+        }
     }
 
     /**

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/async/Callback.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/async/Callback.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/async/Callback.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/client/async/Callback.java Sun Jun 17 05:11:16 2007
@@ -70,7 +70,8 @@
      *
      * @param complete
      */
-    public synchronized void setComplete(boolean complete) {
+    public final synchronized void setComplete(boolean complete) {
         this.complete = complete;
+        notify();
     }
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java Sun Jun 17 05:11:16 2007
@@ -51,9 +51,8 @@
     /**
      * @param context
      * @return True - if the provided {@link AbstractContext}  is clusterable
-     * @throws ClusteringFault
      */
-    boolean isContextClusterable(AbstractContext context) throws ClusteringFault;
+    boolean isContextClusterable(AbstractContext context);
 
     /**
      * Indicates whether a particular message has been ACKed by all members of a cluster

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/AbstractContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/AbstractContext.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/AbstractContext.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/AbstractContext.java Sun Jun 17 05:11:16 2007
@@ -19,9 +19,7 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.clustering.ClusterManager;
-import org.apache.axis2.clustering.context.ContextManager;
-import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.clustering.context.Replicator;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -274,24 +272,7 @@
     }
 
     public void flush() throws AxisFault {
-
-        ConfigurationContext configContext = getRootContext();
-        if (configContext == null) {
-            throw new AxisFault(Messages.getMessage("cannotFlushRootNull"));
-        }
-
-        AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
-        ClusterManager clusterManager = axisConfiguration.getClusterManager();
-
-        //Calling the ClusterManager probably to replicate the updated state of the context.
-        if (clusterManager != null) {
-            ContextManager contextManager = clusterManager.getContextManager();
-            if (contextManager != null && contextManager.isContextClusterable(this)) {
-                contextManager.updateContext(this);
-            }
-        }
-
-        //Other logic needed for flushing the contexts
+        Replicator.replicate(this);
     }
 
     public abstract ConfigurationContext getRootContext();

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/ConfigurationContext.java Sun Jun 17 05:11:16 2007
@@ -40,7 +40,18 @@
 import java.util.*;
 
 /**
- * This contains all the configuration information for Axis2.
+ * <p>Axis2 states are held in two information models, called description hierarchy 
+ * and context hierarchy. Description hierarchy hold deployment configuration 
+ * and it's values does not change unless deployment configuration change occurs 
+ * where Context hierarchy hold run time information. Both hierarchies consists 
+ * four levels, Global, Service Group, Operation and Message. Please look at 
+ * "Information Model" section  of "Axis2 Architecture Guide" for more information.</p>
+ * 
+ * <p>Configuration Context hold Global level run-time information. This allows
+ * same configurations to be used by two Axis2 instances and most Axis2 wide 
+ * configurations can changed by setting name value pairs of the configurationContext. 
+ * This hold all OperationContexts, ServiceGroups, Sessions, and ListenerManager.</p> 
+
  */
 public class ConfigurationContext extends AbstractContext {
 
@@ -529,8 +540,32 @@
         if (listenerManager != null) {
             listenerManager.stop();
         }
+        cleanupTemp();
     }
 
+    /**
+     * This include all the major changes we have done from 1.2
+     * release to 1.3 release. This will include API changes , class
+     * deprecating etc etc.
+     */
+    private void cleanupTemp(){
+        File tempFile =  (File)axisConfiguration.getParameterValue(
+                Constants.Configuration.ARTIFACTS_TEMP_DIR);
+        if(tempFile==null){
+            tempFile = new File(System.getProperty("java.io.tmpdir"), "_axis2");
+        }
+        deleteTempFiles(tempFile);
+    }
+
+    private void deleteTempFiles(File dir) {
+        if (dir.isDirectory()) {
+            String[] children = dir.list();
+            for (int i=0; i<children.length; i++) {
+                deleteTempFiles(new File(dir, children[i]));
+            }
+        }
+        dir.delete();
+    }
 
     public String getServiceContextPath() {
         if (cachedServicePath == null) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/MessageContext.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/MessageContext.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/MessageContext.java Sun Jun 17 05:11:16 2007
@@ -44,6 +44,7 @@
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.Handler;
 import org.apache.axis2.engine.Phase;
+import org.apache.axis2.engine.AxisError;
 import org.apache.axis2.util.LoggingControl;
 import org.apache.axis2.util.MetaDataEntry;
 import org.apache.axis2.util.ObjectStateUtils;
@@ -71,7 +72,23 @@
 import java.util.Map;
 
 /**
- * MessageContext holds service specific state information.
+ * <p>Axis2 states are held in two information models, called description hierarchy
+ *  and context hierarchy. Description hierarchy hold deployment configuration 
+ *  and it's values does not change unless deployment configuration change 
+ *  occurs where Context hierarchy hold run time information. Both hierarchies 
+ *  consists four levels, Global, Service Group, Operation and Message. Please 
+ *  look at "Information Model" section  of "Axis2 Architecture Guide" for more 
+ *  information.</p>
+ *  <p>MessageContext hold run time information about one Message invocation. It 
+ *  hold reference to OperationContext, ServiceGroupContext, and Configuration 
+ *  Context tied with current message. For an example if you need accesses to other 
+ *  messages of the current invocation, you can get to them via OperationContext. 
+ *  Addition to class attributes define in Message context, message context stores 
+ *  the information as name value pairs. Those name value pairs,and class attributes 
+ *  tweak the execution behavior of message context and some of them can be find in 
+ *  org.apache.axis2.Constants class. (TODO we should provide list of supported 
+ *  options). You may set them at any level of context hierarchy and they will 
+ *  affect invocations related to their child elements. </p>
  */
 public class MessageContext extends AbstractContext implements Externalizable {
 
@@ -249,14 +266,9 @@
     private ArrayList executionChain;
 
     /**
-     * @serial The chain of executed Handlers/Phases from inbound processing
+     * @serial The chain of executed Handlers/Phases from processing
      */
-    private LinkedList inboundExecutedPhases;
-
-    /**
-     * @serial The chain of executed Handlers/Phases from outbound processing
-     */
-    private LinkedList outboundExecutedPhases;
+    private LinkedList executedPhases;
 
     /**
      * @serial Flag to indicate if we are doing REST
@@ -413,16 +425,10 @@
     private transient ArrayList metaExecutionChain = null;
 
     /**
-     * The ordered list of metadata for inbound executed phases
-     * used during re-constitution of the message context
-     */
-    private transient LinkedList metaInboundExecuted = null;
-
-    /**
-     * The ordered list of metadata for outbound executed phases
+     * The ordered list of metadata for executed phases
      * used during re-constitution of the message context
      */
-    private transient LinkedList metaOutboundExecuted = null;
+    private transient LinkedList metaExecuted = null;
 
     /**
      * Index into the executuion chain of the currently executing handler
@@ -478,16 +484,10 @@
     private transient boolean reconcileAxisMessage = false;
 
     /**
-     * Indicates whether the inbound executed phase list
-     * was reset before the restored list has been reconciled
-     */
-    private transient boolean inboundReset = false;
-
-    /**
-     * Indicates whether the outbound executed phase list
+     * Indicates whether the executed phase list
      * was reset before the restored list has been reconciled
      */
-    private transient boolean outboundReset = false;
+    private transient boolean executedPhasesReset = false;
 
     //----------------------------------------------------------------
     // end MetaData section
@@ -610,101 +610,51 @@
     }
 
     /**
-     * Add a Phase to the collection of executed phases for the inbound path.
-     * Phases will be inserted in a LIFO data structure.
-     *
-     * @param phase The phase to add to the list.
-     */
-    public void addInboundExecutedPhase(Handler phase) {
-        if (inboundExecutedPhases == null) {
-            inboundExecutedPhases = new LinkedList();
-        }
-        inboundExecutedPhases.addFirst(phase);
-    }
-
-    /**
-     * Remove the first Phase in the collection of executed phases for the
-     * inbound path.
-     */
-    public void removeFirstInboundExecutedPhase() {
-        if (inboundExecutedPhases != null) {
-            inboundExecutedPhases.removeFirst();
-        }
-    }
-
-    /**
-     * Get an iterator over the inbound executed phase list.
-     *
-     * @return An Iterator over the LIFO data structure.
-     */
-    public Iterator getInboundExecutedPhases() {
-        if (LoggingControl.debugLoggingAllowed) {
-            checkActivateWarning("getInboundExecutedPhases");
-        }
-        if (inboundExecutedPhases == null) {
-            inboundExecutedPhases = new LinkedList();
-        }
-        return inboundExecutedPhases.iterator();
-    }
-
-    /**
-     * Reset the list of executed inbound phases.
-     * This is needed because the OutInAxisOperation currently invokes
-     * receive() even when a fault occurs, and we will have already executed
-     * the flowComplete on those before receiveFault() is called.
-     */
-    public void resetInboundExecutedPhases() {
-        inboundReset = true;
-        inboundExecutedPhases = new LinkedList();
-    }
-
-    /**
-     * Add a Phase to the collection of executed phases for the outbound path.
+     * Add a Phase to the collection of executed phases for the path.
      * Phases will be inserted in a LIFO data structure.
      *
      * @param phase The phase to add to the list.
      */
-    public void addOutboundExecutedPhase(Handler phase) {
-        if (outboundExecutedPhases == null) {
-            outboundExecutedPhases = new LinkedList();
+    public void addExecutedPhase(Handler phase) {
+        if (executedPhases == null) {
+            executedPhases = new LinkedList();
         }
-        outboundExecutedPhases.addFirst(phase);
+        executedPhases.addFirst(phase);
     }
 
     /**
-     * Remove the first Phase in the collection of executed phases for the
-     * outbound path.
+     * Remove the first Phase in the collection of executed phases
      */
-    public void removeFirstOutboundExecutedPhase() {
-        if (outboundExecutedPhases != null) {
-            outboundExecutedPhases.removeFirst();
+    public void removeFirstExecutedPhase() {
+        if (executedPhases != null) {
+            executedPhases.removeFirst();
         }
     }
 
     /**
-     * Get an iterator over the outbound executed phase list.
+     * Get an iterator over the executed phase list.
      *
      * @return An Iterator over the LIFO data structure.
      */
-    public Iterator getOutboundExecutedPhases() {
+    public Iterator getExecutedPhases() {
         if (LoggingControl.debugLoggingAllowed) {
-            checkActivateWarning("getOutboundExecutedPhases");
+            checkActivateWarning("getExecutedPhases");
         }
-        if (outboundExecutedPhases == null) {
-            outboundExecutedPhases = new LinkedList();
+        if (executedPhases == null) {
+            executedPhases = new LinkedList();
         }
-        return outboundExecutedPhases.iterator();
+        return executedPhases.iterator();
     }
 
     /**
-     * Reset the list of executed outbound phases.
+     * Reset the list of executed phases.
      * This is needed because the OutInAxisOperation currently invokes
      * receive() even when a fault occurs, and we will have already executed
      * the flowComplete on those before receiveFault() is called.
      */
-    public void resetOutboundExecutedPhases() {
-        outboundReset = true;
-        outboundExecutedPhases = new LinkedList();
+    public void resetExecutedPhases() {
+        executedPhasesReset = true;
+        executedPhases = new LinkedList();
     }
 
     /**
@@ -874,7 +824,7 @@
      * AxisConfiguration </li>
      * </ol>
      *
-     * @param key
+     * @param key name of desired parameter
      * @return Parameter <code>Parameter</code>
      */
     public Parameter getParameter(String key) {
@@ -1016,6 +966,10 @@
     }
 
     /**
+     * Get any RelatesTos of a particular type associated with this MessageContext
+     * TODO: Shouldn't this return a List?
+     *
+     * @param type the relationship type
      * @return Returns RelatesTo.
      */
     public RelatesTo getRelatesTo(String type) {
@@ -1334,8 +1288,12 @@
         this.setParent(operationContext);
 
         if (operationContext != null) {
-            if ((serviceContext != null) && (operationContext.getParent() == null)) {
-                operationContext.setParent(serviceContext);
+            if (serviceContext == null) {
+                setServiceContext(operationContext.getServiceContext());
+            } else {
+                if (operationContext.getParent() != serviceContext) {
+                    throw new AxisError("ServiceContext in OperationContext does not match !");
+                }
             }
 
             this.setAxisOperation(operationContext.getAxisOperation());
@@ -1401,8 +1359,8 @@
 
         if (serviceContext != null) {
             if ((operationContext != null)
-                    && (operationContext.getParent() != null)) {
-                operationContext.setParent(context);
+                    && (operationContext.getParent() != context)) {
+                throw new AxisError("ServiceContext and OperationContext.parent do not match!");
             }
             // setting configcontext using configuration context in service context
             if (configurationContext == null) {
@@ -2399,7 +2357,7 @@
         }
 
         //---------------------------------------------------------
-        // LinkedList inboundExecutedPhases
+        // LinkedList executedPhases
         //---------------------------------------------------------
         // The strategy is to save some metadata about each
         // member of the list and the order of the list.
@@ -2421,217 +2379,98 @@
         //    UTF          - description string
         //    boolean      - empty flag
         //---------------------------------------------------------
-        String inExecListDesc = logCorrelationIDString + ".inboundExecutedPhases";
+        String execListDesc = logCorrelationIDString + ".executedPhases";
 
-        int inExecListSize = 0;
+        int execListSize = 0;
 
-        if (inboundExecutedPhases != null) {
-            inExecListSize = inboundExecutedPhases.size();
+        if (executedPhases != null) {
+            execListSize = executedPhases.size();
         }
 
-        if (inExecListSize > 0) {
+        if (execListSize > 0) {
             // start writing data to the output stream
-            out.writeUTF(inExecListDesc);
+            out.writeUTF(execListDesc);
             out.writeBoolean(ObjectStateUtils.ACTIVE_OBJECT);
-            out.writeInt(inExecListSize);
+            out.writeInt(execListSize);
 
             // put the metadata on each member of the list into a buffer
 
-            int inExecNextIndex = 0;
+            int execNextIndex = 0;
 
-            Iterator inIterator = inboundExecutedPhases.iterator();
+            Iterator iterator = executedPhases.iterator();
 
-            while (inIterator.hasNext()) {
-                Object inObj = inIterator.next();
-                String inObjClass = inObj.getClass().getName();
+            while (iterator.hasNext()) {
+                Object obj = iterator.next();
+                String objClass = obj.getClass().getName();
                 // start the meta data entry for this object
-                MetaDataEntry inMdEntry = new MetaDataEntry();
-                inMdEntry.setClassName(inObjClass);
+                MetaDataEntry mdEntry = new MetaDataEntry();
+                mdEntry.setClassName(objClass);
 
                 // get the correct object-specific name
-                String inQnameAsString;
+                String qnameAsString;
 
-                if (inObj instanceof Phase) {
-                    Phase inPhaseObj = (Phase) inObj;
-                    inQnameAsString = inPhaseObj.getName();
+                if (obj instanceof Phase) {
+                    Phase inPhaseObj = (Phase) obj;
+                    qnameAsString = inPhaseObj.getName();
 
                     // add the list of handlers to the meta data
-                    setupPhaseList(inPhaseObj, inMdEntry);
-                } else if (inObj instanceof Handler) {
-                    Handler inHandlerObj = (Handler) inObj;
-                    inQnameAsString = inHandlerObj.getName();
+                    setupPhaseList(inPhaseObj, mdEntry);
+                } else if (obj instanceof Handler) {
+                    Handler inHandlerObj = (Handler) obj;
+                    qnameAsString = inHandlerObj.getName();
                 } else {
                     // TODO: will there be any other kinds of objects in the list
-                    inQnameAsString = "NULL";
+                    qnameAsString = "NULL";
                 }
 
-                inMdEntry.setQName(inQnameAsString);
-
+                mdEntry.setQName(qnameAsString);
 
                 if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                     log.trace(logCorrelationIDString +
-                            ":writeExternal(): ***BEFORE Inbound Executed List OBJ WRITE*** inboundExecutedPhases entry class [" +
-                            inObjClass + "] qname [" + inQnameAsString + "]");
+                            ":writeExternal(): ***BEFORE Executed List OBJ WRITE*** executedPhases entry class [" +
+                            objClass + "] qname [" + qnameAsString + "]");
                 }
 
-                ObjectStateUtils.writeObject(out, inMdEntry, logCorrelationIDString +
-                        ".inboundExecutedPhases:entry class [" + inObjClass + "] qname [" +
-                        inQnameAsString + "]");
+                ObjectStateUtils.writeObject(out, mdEntry, logCorrelationIDString +
+                        ".executedPhases:entry class [" + objClass + "] qname [" +
+                        qnameAsString + "]");
 
                 // update the index so that the index
                 // now indicates the next entry that
                 // will be attempted
-                inExecNextIndex++;
+                execNextIndex++;
 
                 if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                     log.trace(logCorrelationIDString + ":writeExternal(): " +
-                            "***AFTER Inbound Executed List OBJ WRITE*** " +
-                            "inboundExecutedPhases entry class [" + inObjClass + "] " +
-                            "qname [" + inQnameAsString + "]");
+                            "***AFTER Executed List OBJ WRITE*** " +
+                            "executedPhases entry class [" + objClass + "] " +
+                            "qname [" + qnameAsString + "]");
                 }
             } // end while entries in execution chain
 
             // done with the entries in the execution chain
             // add the end-of-list marker
-            MetaDataEntry inLastEntry = new MetaDataEntry();
-            inLastEntry.setClassName(MetaDataEntry.END_OF_LIST);
+            MetaDataEntry lastEntry = new MetaDataEntry();
+            lastEntry.setClassName(MetaDataEntry.END_OF_LIST);
 
-            ObjectStateUtils.writeObject(out, inLastEntry, logCorrelationIDString +
-                    ".inboundExecutedPhases:  last entry ");
-            inExecNextIndex++;
+            ObjectStateUtils.writeObject(out, lastEntry, logCorrelationIDString +
+                    ".executedPhases:  last entry ");
+            execNextIndex++;
 
-            // inExecNextIndex also gives us the number of entries
+            // execNextIndex also gives us the number of entries
             // that were actually saved as opposed to the
-            // number of entries in the inboundExecutedPhases
-            out.writeInt(inExecNextIndex);
+            // number of entries in the executedPhases
+            out.writeInt(execNextIndex);
 
         } else {
             // general case: handle "null" or "empty"
 
-            out.writeUTF(inExecListDesc);
+            out.writeUTF(execListDesc);
             out.writeBoolean(ObjectStateUtils.EMPTY_OBJECT);
 
             if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                 log.trace(
-                        logCorrelationIDString + ":writeExternal(): inboundExecutedPhases is NULL");
-            }
-        }
-
-        //---------------------------------------------------------
-        // LinkedList outboundExecutedPhases
-        //---------------------------------------------------------
-        // The strategy is to save some metadata about each
-        // member of the list and the order of the list.
-        // Then when the message context is re-constituted,
-        // try to match up with phases and handlers on the
-        // engine.
-        //
-        // Non-null list:
-        //    UTF          - description string
-        //    boolean      - active flag
-        //    int          - expected number of entries in the list
-        //    objects      - MetaDataEntry object per list entry
-        //                        last entry will be empty MetaDataEntry
-        //                        with MetaDataEntry.LAST_ENTRY marker
-        //    int          - adjusted number of entries in the list
-        //                        includes the last empty entry
-        //
-        // Empty list:
-        //    UTF          - description string
-        //    boolean      - empty flag
-        //---------------------------------------------------------
-        String outExecListDesc = logCorrelationIDString + ".outboundExecutedPhases";
-
-        int outExecListSize = 0;
-
-        if (outboundExecutedPhases != null) {
-            outExecListSize = outboundExecutedPhases.size();
-        }
-
-        if (outExecListSize > 0) {
-            // start writing data to the output stream
-            out.writeUTF(outExecListDesc);
-            out.writeBoolean(ObjectStateUtils.ACTIVE_OBJECT);
-            out.writeInt(outExecListSize);
-
-            // put the metadata on each member of the list into a buffer
-
-            int outExecNextIndex = 0;
-
-            Iterator outIterator = outboundExecutedPhases.iterator();
-
-            while (outIterator.hasNext()) {
-                Object outObj = outIterator.next();
-                String outObjClass = outObj.getClass().getName();
-                // start the meta data entry for this object
-                MetaDataEntry outMdEntry = new MetaDataEntry();
-                outMdEntry.setClassName(outObjClass);
-
-                // get the correct object-specific name
-                String outQnameAsString;
-
-                if (outObj instanceof Phase) {
-                    Phase outPhaseObj = (Phase) outObj;
-                    outQnameAsString = outPhaseObj.getName();
-
-                    // add the list of handlers to the meta data
-                    setupPhaseList(outPhaseObj, outMdEntry);
-                } else if (outObj instanceof Handler) {
-                    Handler outHandlerObj = (Handler) outObj;
-                    outQnameAsString = outHandlerObj.getName();
-                } else {
-                    // TODO: will there be any other kinds of objects in the list
-                    outQnameAsString = "NULL";
-                }
-
-                outMdEntry.setQName(outQnameAsString);
-
-                if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                    log.trace(logCorrelationIDString +
-                            ":writeExternal(): ***BEFORE Outbound Executed List OBJ WRITE*** outboundExecutedPhases entry class [" +
-                            outObjClass + "] qname [" + outQnameAsString + "]");
-                }
-
-                ObjectStateUtils.writeObject(out, outMdEntry, logCorrelationIDString +
-                        ".outboundExecutedPhases:entry class [" + outObjClass + "] qname [" +
-                        outQnameAsString + "]");
-
-                // update the index so that the index
-                // now indicates the next entry that
-                // will be attempted
-                outExecNextIndex++;
-
-                if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                    log.trace(logCorrelationIDString +
-                            ":writeExternal(): ***AFTER Outbound Executed List OBJ WRITE*** outboundExecutedPhases entry class [" +
-                            outObjClass + "] qname [" + outQnameAsString + "]");
-                }
-
-            } // end while entries
-
-            // done with the entries
-            // add the end-of-list marker
-            MetaDataEntry outLastEntry = new MetaDataEntry();
-            outLastEntry.setClassName(MetaDataEntry.END_OF_LIST);
-
-            ObjectStateUtils.writeObject(out, outLastEntry, logCorrelationIDString +
-                    ".outboundExecutedPhases:  last entry ");
-            outExecNextIndex++;
-
-            // outExecNextIndex also gives us the number of entries
-            // that were actually saved as opposed to the
-            // number of entries in the outboundExecutedPhases
-            out.writeInt(outExecNextIndex);
-
-        } else {
-            // general case: handle "null" or "empty"
-
-            out.writeUTF(outExecListDesc);
-            out.writeBoolean(ObjectStateUtils.EMPTY_OBJECT);
-
-            if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                log.trace(logCorrelationIDString +
-                        ":writeExternal(): outboundExecutedPhases is NULL");
+                        logCorrelationIDString + ":writeExternal(): executedPhases is NULL");
             }
         }
 
@@ -3242,7 +3081,7 @@
         }
 
         //---------------------------------------------------------
-        // LinkedList inboundExecutedPhases
+        // LinkedList executedPhases
         //---------------------------------------------------------
         // Restore the metadata about each member of the list
         // and the order of the list.
@@ -3267,8 +3106,8 @@
 
         // the local chain is not enabled until the
         // list has been reconstituted
-        inboundExecutedPhases = null;
-        metaInboundExecuted = null;
+        executedPhases = null;
+        metaExecuted = null;
 
         in.readUTF();
         boolean gotInExecList = in.readBoolean();
@@ -3278,12 +3117,12 @@
 
             if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                 log.trace(logCorrelationIDString +
-                        ":readExternal(): inbound executed phases:  expected number of entries [" +
+                        ":readExternal(): executed phases:  expected number of entries [" +
                         expectedNumberInExecList + "]");
             }
 
             // setup the list
-            metaInboundExecuted = new LinkedList();
+            metaExecuted = new LinkedList();
 
             // process the objects
             boolean keepGoing = true;
@@ -3294,7 +3133,7 @@
 
                 // get the object
                 Object tmpObj = ObjectStateUtils
-                        .readObject(in, "MessageContext.metaInboundExecuted MetaDataEntry");
+                        .readObject(in, "MessageContext.metaExecuted MetaDataEntry");
 
                 count++;
 
@@ -3313,7 +3152,7 @@
                         keepGoing = false;
                     } else {
                         // add the entry to the meta data list
-                        metaInboundExecuted.add(mdObj);
+                        metaExecuted.add(mdObj);
 
                         tmpQNameAsStr = mdObj.getQNameAsString();
 
@@ -3339,125 +3178,15 @@
 
             if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                 log.trace(logCorrelationIDString +
-                        ":readExternal(): adjusted number of entries InboundExecutedPhases [" +
+                        ":readExternal(): adjusted number of entries executedPhases [" +
                         adjustedNumberInExecList + "]    ");
             }
         }
 
-        if ((metaInboundExecuted == null) || (metaInboundExecuted.isEmpty())) {
-            if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                log.trace(logCorrelationIDString +
-                        ":readExternal(): meta data for InboundExecutedPhases list is NULL");
-            }
-        }
-
-        //---------------------------------------------------------
-        // LinkedList outboundExecutedPhases
-        //---------------------------------------------------------
-        // Restore the metadata about each member of the list
-        // and the order of the list.
-        // This metadata will be used to match up with phases
-        // and handlers on the engine.
-        //
-        // Non-null list:
-        //    UTF          - description string
-        //    boolean      - active flag
-        //    int          - expected number of entries in the list
-        //                        not including the last entry marker
-        //    objects      - MetaDataEntry object per list entry
-        //                        last entry will be empty MetaDataEntry
-        //                        with MetaDataEntry.LAST_ENTRY marker
-        //    int          - adjusted number of entries in the list
-        //                        includes the last empty entry
-        //
-        // Empty list:
-        //    UTF          - description string
-        //    boolean      - empty flag
-        //---------------------------------------------------------
-
-        // the local chain is not enabled until the
-        // list has been reconstituted
-        outboundExecutedPhases = null;
-        metaOutboundExecuted = null;
-
-        in.readUTF();
-        boolean gotOutExecList = in.readBoolean();
-
-        if (gotOutExecList == ObjectStateUtils.ACTIVE_OBJECT) {
-            int expectedNumberOutExecList = in.readInt();
-
-            if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                log.trace(logCorrelationIDString +
-                        ":readExternal(): outbound executed phases:  expected number of entries [" +
-                        expectedNumberOutExecList + "]");
-            }
-
-            // setup the list
-            metaOutboundExecuted = new LinkedList();
-
-            // process the objects
-            boolean keepGoing = true;
-            int count = 0;
-
-            while (keepGoing) {
-                // stop when we get to the end-of-list marker
-
-                // get the object
-                Object tmpObj = ObjectStateUtils
-                        .readObject(in, "MessageContext.metaOutboundExecuted MetaDataEntry");
-
-                count++;
-
-                MetaDataEntry mdObj = (MetaDataEntry) tmpObj;
-
-                // get the class name, then add it to the list
-                String tmpClassNameStr;
-                String tmpQNameAsStr;
-                String tmpHasList = "no list";
-
-                if (mdObj != null) {
-                    tmpClassNameStr = mdObj.getClassName();
-
-                    if (tmpClassNameStr.equalsIgnoreCase(MetaDataEntry.END_OF_LIST)) {
-                        // this is the last entry
-                        keepGoing = false;
-                    } else {
-                        // add the entry to the meta data list
-                        metaOutboundExecuted.add(mdObj);
-
-                        tmpQNameAsStr = mdObj.getQNameAsString();
-
-                        if (!mdObj.isListEmpty()) {
-                            tmpHasList = "has list";
-                        }
-
-                        if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                            log.trace(logCorrelationIDString +
-                                    ":readExternal(): OutboundExecutedPhases: meta data class [" +
-                                    tmpClassNameStr + "] qname [" + tmpQNameAsStr + "]  index [" +
-                                    count + "]   [" + tmpHasList + "]");
-                        }
-                    }
-                } else {
-                    // some error occurred
-                    keepGoing = false;
-                }
-
-            } // end while keep going
-
-            int adjustedNumberOutExecList = in.readInt();
-
-            if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                log.trace(logCorrelationIDString +
-                        ":readExternal(): adjusted number of entries OutboundExecutedPhases [" +
-                        adjustedNumberOutExecList + "]    ");
-            }
-        }
-
-        if ((metaOutboundExecuted == null) || (metaOutboundExecuted.isEmpty())) {
+        if ((metaExecuted == null) || (metaExecuted.isEmpty())) {
             if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                 log.trace(logCorrelationIDString +
-                        ":readExternal(): meta data for OutboundExecutedPhases list is NULL");
+                        ":readExternal(): meta data for executedPhases list is NULL");
             }
         }
 
@@ -3934,39 +3663,23 @@
         //-------------------------------------------------------
         // reconcile the lists for the executed phases
         //-------------------------------------------------------
-        if (metaInboundExecuted != null) {
+        if (metaExecuted != null) {
             if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                 log.trace(logCorrelationIDString +
-                        ":activate(): reconciling the inbound executed chain...");
+                        ":activate(): reconciling the executed chain...");
             }
 
-            if (!(inboundReset)) {
-                inboundExecutedPhases =
-                        restoreExecutedList(inboundExecutedPhases, metaInboundExecuted);
+            if (!(executedPhasesReset)) {
+                executedPhases =
+                        restoreExecutedList(executedPhases, metaExecuted);
             }
         }
 
-        if (inboundExecutedPhases == null) {
-            inboundExecutedPhases = new LinkedList();
+        if (executedPhases == null) {
+            executedPhases = new LinkedList();
         }
 
 
-        if (metaOutboundExecuted != null) {
-            if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                log.trace(logCorrelationIDString +
-                        ":activate(): reconciling the outbound executed chain...");
-            }
-
-            if (!(outboundReset)) {
-                outboundExecutedPhases =
-                        restoreExecutedList(outboundExecutedPhases, metaOutboundExecuted);
-            }
-        }
-
-        if (outboundExecutedPhases == null) {
-            outboundExecutedPhases = new LinkedList();
-        }
-
         //-------------------------------------------------------
         // finish up remaining links
         //-------------------------------------------------------
@@ -4178,37 +3891,20 @@
         //-------------------------------------------------------
         // reconcile the lists for the executed phases
         //-------------------------------------------------------
-        if (metaInboundExecuted != null) {
-            if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
-                log.trace(logCorrelationIDString +
-                        ":activateWithOperationContext(): reconciling the inbound executed chain...");
-            }
-
-            if (!(inboundReset)) {
-                inboundExecutedPhases =
-                        restoreExecutedList(inboundExecutedPhases, metaInboundExecuted);
-            }
-        }
-
-        if (inboundExecutedPhases == null) {
-            inboundExecutedPhases = new LinkedList();
-        }
-
-
-        if (metaOutboundExecuted != null) {
+        if (metaExecuted != null) {
             if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
                 log.trace(logCorrelationIDString +
-                        ":activateWithOperationContext(): reconciling the outbound executed chain...");
+                        ":activateWithOperationContext(): reconciling the executed chain...");
             }
 
-            if (!(outboundReset)) {
-                outboundExecutedPhases =
-                        restoreExecutedList(outboundExecutedPhases, metaOutboundExecuted);
+            if (!(executedPhasesReset)) {
+                executedPhases =
+                        restoreExecutedList(executedPhases, metaExecuted);
             }
         }
 
-        if (outboundExecutedPhases == null) {
-            outboundExecutedPhases = new LinkedList();
+        if (executedPhases == null) {
+            executedPhases = new LinkedList();
         }
 
         //-------------------------------------------------------
@@ -4448,14 +4144,9 @@
         copy.setCurrentPhaseIndex(currentPhaseIndex);
 
         //---------------------------------------------------------
-        // LinkedList inboundExecutedPhases
-        //---------------------------------------------------------
-        copy.setInboundExecutedPhasesExplicit(inboundExecutedPhases);
-
-        //---------------------------------------------------------
-        // LinkedList outboundExecutedPhases
+        // LinkedList executedPhases
         //---------------------------------------------------------
-        copy.setOutboundExecutedPhasesExplicit(outboundExecutedPhases);
+        copy.setExecutedPhasesExplicit(executedPhases);
 
         //---------------------------------------------------------
         // options
@@ -4550,13 +4241,8 @@
         isSOAP11 = t;
     }
 
-
-    public void setInboundExecutedPhasesExplicit(LinkedList inb) {
-        inboundExecutedPhases = inb;
-    }
-
-    public void setOutboundExecutedPhasesExplicit(LinkedList outb) {
-        outboundExecutedPhases = outb;
+    public void setExecutedPhasesExplicit(LinkedList inb) {
+        executedPhases = inb;
     }
 
     public void setSelfManagedDataMapExplicit(LinkedHashMap map) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/OperationContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/OperationContext.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/OperationContext.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/context/OperationContext.java Sun Jun 17 05:11:16 2007
@@ -171,7 +171,7 @@
     //----------------------------------------------------------------
 
     /**
-     * Simple constructor
+     * Simple constructor (needed for deserialization, shouldn't be used otherwise!)
      */
     public OperationContext() {
         super(null);

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java Sun Jun 17 05:11:16 2007
@@ -305,12 +305,11 @@
      * Update the list of modules that is required to be engaged globally.
      */
     protected void processModuleRefs(Iterator moduleRefs, AxisConfiguration config) {
-        List globalModules = config.getGlobalModules();
         while (moduleRefs.hasNext()) {
             OMElement moduleref = (OMElement) moduleRefs.next();
             OMAttribute moduleRefAttribute = moduleref.getAttribute(new QName(TAG_REFERENCE));
             String refName = moduleRefAttribute.getAttributeValue();
-            globalModules.add(refName);
+            axisConfig.addGlobalModuleRef(refName);
         }
     }
 
@@ -467,7 +466,7 @@
                                 (TransportListener) receiverClass.newInstance();
                         transportIN.setReceiver(receiver);
                     } catch (NoClassDefFoundError e) {
-                        log.info(Messages.getMessage("classnotfound", trsClas.getAttributeValue()));
+                        throw new DeploymentException(e);
                     } catch (ClassNotFoundException e) {
                         throw new DeploymentException(e);
                     } catch (IllegalAccessException e) {
@@ -529,6 +528,7 @@
                     axisConfig.addTransportOut(transportout);
                 } catch (NoClassDefFoundError e) {
                     log.debug(Messages.getMessage("errorinloadingts", clasName), e);
+                    throw new DeploymentException(e);
                 } catch (ClassNotFoundException e) {
                     log.debug(Messages.getMessage("errorinloadingts", clasName), e);
                     throw new DeploymentException(e);

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java Sun Jun 17 05:11:16 2007
@@ -247,7 +247,10 @@
     }
 
     public InputStream getResourceAsStream(String name) {
-        URL url =findResource(name);
+        URL url = findResource(name);
+        if(url == null) {
+            url = getResource(name);
+        }
         if(url!=null){
             try {
                 return url.openStream();

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Sun Jun 17 05:11:16 2007
@@ -82,6 +82,7 @@
     String TAG_HOT_UPDATE = "hotupdate";
     String TAG_ANTI_JAR_LOCKING = "antiJARLocking";
     String TAG_HOT_DEPLOYMENT = "hotdeployment";
+    String TAG_EXPOSE = "expose";
     String TAG_EXTRACT_SERVICE_ARCHIVE = "extractServiceArchive";
     String TAG_DISPATCH_ORDER = "dispatchOrder";
     String TAG_DISPATCHER = "dispatcher";

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Sun Jun 17 05:11:16 2007
@@ -285,10 +285,16 @@
                     if (line.length() > 0) {
                         line = metainf + "/" + line;
                         try {
-                            AxisService service = reader.getAxisServiceFromWsdl(
+                            List services = reader.getAxisServiceFromWsdl(
                                     serviceClassLoader.getResourceAsStream(line),
                                     serviceClassLoader, line);
-                            servicesMap.put(service.getName(), service);
+                            if(services!=null){
+                                for (int i = 0; i < services.size(); i++) {
+                                    AxisService axisService = (AxisService) services.get(i);
+                                    servicesMap.put(axisService.getName(), axisService);
+                                }
+                            }
+
                         } catch (Exception e) {
                             throw new DeploymentException(e);
                         }
@@ -548,10 +554,7 @@
      * @throws org.apache.axis2.AxisFault : If smt goes wrong
      */
     public void engageModules() throws AxisFault {
-        for (Iterator iterator = axisConfig.getGlobalModules().iterator(); iterator.hasNext();) {
-            String name = (String) iterator.next();
-            axisConfig.engageModule(name);
-        }
+        axisConfig.engageGlobalModules();
     }
 
     /**

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java Sun Jun 17 05:11:16 2007
@@ -503,7 +503,8 @@
      * @param parent           <code>ParameterInclude</code>
      */
     protected void processParameters(Iterator parameters,
-                                     ParameterInclude parameterInclude, ParameterInclude parent)
+                                     ParameterInclude parameterInclude,
+                                     ParameterInclude parent)
             throws DeploymentException {
         while (parameters.hasNext()) {
             // this is to check whether some one has locked the parmeter at the
@@ -513,8 +514,7 @@
             // setting parameterElement
             parameter.setParameterElement(parameterElement);
             // setting parameter Name
-            OMAttribute paramName = parameterElement.getAttribute(new QName(
-                    ATTRIBUTE_NAME));
+            OMAttribute paramName = parameterElement.getAttribute(new QName(ATTRIBUTE_NAME));
             if (paramName == null) {
                 throw new DeploymentException(Messages.getMessage(
                         DeploymentErrorMsgs.BAD_PARAMETER_ARGUMENT,

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java Sun Jun 17 05:11:16 2007
@@ -120,6 +120,7 @@
                                 messageReciverMap.put(
                                         WSDL2Constants.MEP_URI_IN_ONLY,
                                         messageReceiver);
+                                messageReciverMap.put(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY,messageReceiver);
                                 Class inoutMessageReceiver = Loader.loadClass(
                                         "org.apache.axis2.rpc.receivers.RPCMessageReceiver");
                                 MessageReceiver inOutmessageReceiver =

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java Sun Jun 17 05:11:16 2007
@@ -29,10 +29,8 @@
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.net.URLDecoder;
-import java.net.URI;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Enumeration;
 
 public class RepositoryListener implements DeploymentConstants {
     protected static final Log log = LogFactory.getLog(RepositoryListener.class);
@@ -250,7 +248,6 @@
                         if (isSourceControlDir(file)) {
                             continue;
                         }
-                        // TODO: Should this allow expanded directories like services/modules do?
                         if (!file.isDirectory() && extension.equals(
                                 DeploymentFileData.getFileExtension(file.getName()))) {
                             addFileToDeploy(file,

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml?view=diff&rev=548033&r1=548032&r2=548033
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml Sun Jun 17 05:11:16 2007
@@ -21,7 +21,13 @@
     <parameter name="password" locked="false">axis2</parameter>
 
     <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
-    <!--<parameter name="ServicesDirectory" locked="false">service</parameter>-->
+    <!--ServicesDirectory only works on the following cases-->
+    <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
+    <!---When creating URL Based configurator with URL “file://”  -->
+    <!--- War based configurator with expanded case , -->
+
+    <!--All the other scenarios it will be ignored.-->
+    <!--<parameter name="ServicesDirectory">service</parameter>-->
     <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
     <!--<parameter name="ModulesDirectory" locked="false">modules</parameter>-->
 
@@ -36,6 +42,9 @@
     <!-- Following parameter will completely disable REST handling in Axis2-->
     <parameter name="disableREST" locked="true">false</parameter>
 
+    <!-- Following parameter will set the host name for the epr-->
+    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
     <!-- ================================================= -->
     <!-- Message Receivers -->
     <!-- ================================================= -->
@@ -118,8 +127,8 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-    <transportSender name="jms"
-                     class="org.apache.axis2.transport.jms.JMSSender"/>
+    <!--<transportSender name="jms"-->
+                     <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
     <transportSender name="tcp"
                      class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
     <transportSender name="local"



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org