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 2008/01/15 17:22:27 UTC

svn commit: r612147 [13/17] - in /webservices/axis2/branches/java/jaxws21: ./ 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/schem...

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL20ToAxisServiceBuilder.java Tue Jan 15 08:21:22 2008
@@ -43,6 +43,7 @@
 import org.apache.woden.internal.wsdl20.extensions.http.HTTPBindingExtensionsImpl;
 import org.apache.woden.internal.wsdl20.extensions.http.HTTPHeaderImpl;
 import org.apache.woden.internal.wsdl20.extensions.soap.SOAPBindingExtensionsImpl;
+import org.apache.woden.resolver.URIResolver;
 import org.apache.woden.schema.Schema;
 import org.apache.woden.types.NamespaceDeclaration;
 import org.apache.woden.wsdl20.Binding;
@@ -65,6 +66,8 @@
 import org.apache.woden.wsdl20.extensions.http.HTTPBindingOperationExtensions;
 import org.apache.woden.wsdl20.extensions.http.HTTPHeader;
 import org.apache.woden.wsdl20.extensions.http.HTTPLocation;
+import org.apache.woden.wsdl20.extensions.rpc.RPCInterfaceOperationExtensions;
+import org.apache.woden.wsdl20.extensions.rpc.Argument;
 import org.apache.woden.wsdl20.extensions.soap.SOAPBindingExtensions;
 import org.apache.woden.wsdl20.extensions.soap.SOAPBindingFaultExtensions;
 import org.apache.woden.wsdl20.extensions.soap.SOAPBindingFaultReferenceExtensions;
@@ -77,6 +80,7 @@
 import org.apache.woden.wsdl20.xml.DocumentableElement;
 import org.apache.woden.wsdl20.xml.DocumentationElement;
 import org.apache.woden.wsdl20.xml.TypesElement;
+import org.apache.woden.wsdl20.xml.InterfaceMessageReferenceElement;
 import org.apache.woden.xml.XMLAttr;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
@@ -91,10 +95,8 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -122,6 +124,8 @@
 
     private boolean isAllPorts;
 
+    private URIResolver customWSDLResolver;
+
 //    As bindings are processed add it to this array so that we dont process the same binding twice
     private Map processedBindings;
 
@@ -182,6 +186,15 @@
         isAllPorts = allPorts;
     }
 
+    /**
+     * sets a custom WSDL locator
+     *
+     * @param customResolver
+     */
+    public void setCustomWSDLResolver(URIResolver customResolver) {
+        this.customWSDLResolver = customResolver;
+    }
+
     public AxisService populateService() throws AxisFault {
 
         try {
@@ -433,6 +446,9 @@
                     Document document = documentBuilder.parse(in);
 
                     WSDLReader reader = DOMWSDLFactory.newInstance().newWSDLReader();
+                    if (customWSDLResolver != null) {
+                        reader.setURIResolver(customWSDLResolver);
+                    }
                     // This turns on WSDL validation which is set off by default.
                     reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
                     WSDLSource wsdlSource = reader.createWSDLSource();
@@ -985,6 +1001,26 @@
             axisOperation.addParameter(parameter);
         }
 
+        RPCInterfaceOperationExtensions rpcInterfaceOperationExtensions;
+        try {
+            rpcInterfaceOperationExtensions = (RPCInterfaceOperationExtensions) operation
+                    .getComponentExtensionsForNamespace(
+                            new URI(WSDL2Constants.URI_WSDL2_RPC));
+        } catch (URISyntaxException e) {
+            throw new AxisFault("WSDL2 extensions not defined for this operation");
+        }
+
+        if (rpcInterfaceOperationExtensions != null) {
+            String rpcsig = "";
+            Argument[] signatures = rpcInterfaceOperationExtensions.getRPCSignature();
+            for (int i = 0; i < signatures.length; i++) {
+                Argument sigArgument = signatures[i];
+                rpcsig = rpcsig + sigArgument.getName().getLocalPart() + " " + sigArgument.getDirection() + " ";
+            }
+            Parameter parameter = new Parameter(WSDL2Constants.ATTR_WRPC_SIGNATURE, rpcsig);
+            axisOperation.addParameter(parameter);
+        }
+
         InterfaceMessageReference[] interfaceMessageReferences = operation
                 .getInterfaceMessageReferences();
         for (int i = 0; i < interfaceMessageReferences.length; i++) {
@@ -1048,7 +1084,14 @@
         QName elementQName = null;
 
         if (WSDL2Constants.NMTOKEN_ELEMENT.equals(messageContentModelName)) {
-            elementQName = messageReference.getElementDeclaration().getName();
+            ElementDeclaration elementDeclaration = messageReference.getElementDeclaration();
+            if (elementDeclaration == null) {
+                InterfaceMessageReferenceElement messageReferenceElement =
+                        messageReference.toElement();
+                QName qName = messageReferenceElement.getElement().getQName();
+                throw new AxisFault("Unable to find element " + qName.toString() + " reffered to by operation " + axisOperation.getName().getLocalPart());
+            }
+            elementQName = elementDeclaration.getName();
         } else if (WSDL2Constants.NMTOKEN_ANY.equals(messageContentModelName)) {
             elementQName = Constants.XSD_ANY;
         } else
@@ -1097,8 +1140,11 @@
     private Description readInTheWSDLFile(String wsdlURI) throws WSDLException {
 
         WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+        if (customWSDLResolver != null) {
+            reader.setURIResolver(customWSDLResolver);
+        }
         // This turns on WSDL validation which is set off by default.
-//        reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
+        reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
         
 //      Log when and from where the WSDL is loaded.
         if (log.isDebugEnabled()) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java Tue Jan 15 08:21:22 2008
@@ -128,7 +128,7 @@
     String MESSAGE_LABEL_OUT = "Out";
 
     String RPC_IN = "#in";
-    String RPC_OUT = "#out";
+    String RPC_RETURN = "#return";
     String RPC_INOUT = "#inout";
 
     String HTTP_LOCATION_TABLE = "HTTPLocationTable";

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Tue Jan 15 08:21:22 2008
@@ -20,6 +20,7 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.deployment.util.Utils;
+import org.apache.axis2.deployment.util.BeanExcludeInfo;
 import org.apache.axis2.description.AxisMessage;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
@@ -34,7 +35,6 @@
 import org.codehaus.jam.*;
 
 import javax.xml.namespace.QName;
-import javax.activation.DataHandler;
 import java.util.*;
 
 public class DefaultSchemaGenerator implements Java2WSDLConstants, SchemaGenerator {
@@ -409,8 +409,8 @@
 
     /**
      * Generate schema construct for given type
-     *
-     * @param javaType
+     * @param javaType : Class to whcih need to generate Schema
+     * @return : Generated QName
      */
     private QName generateSchema(JClass javaType) throws Exception {
         String name = getQualifiedName(javaType);
@@ -441,7 +441,8 @@
             JClass sup = javaType.getSuperclass();
 
             if ((sup != null) && !("java.lang.Object".compareTo(sup.getQualifiedName()) == 0) &&
-                    !("org.apache.axis2".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)) {
+                    !("org.apache.axis2".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)
+                    &&!("java.util".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)) {
                 String superClassName = sup.getQualifiedName();
                 String superclassname = getSimpleName(sup);
                 String tgtNamespace;
@@ -502,8 +503,17 @@
             Set propertiesNames = new HashSet();
 
             JProperty[] tempProperties = javaType.getDeclaredProperties();
+            BeanExcludeInfo beanExcludeInfo = null;
+            if (service.getExcludeInfo() !=null) {
+                beanExcludeInfo = service.getExcludeInfo().getBeanExcludeInfoForClass(
+                        javaType.getQualifiedName());
+            }
             for (int i = 0; i < tempProperties.length; i++) {
-                propertiesSet.add(tempProperties[i]);
+                JProperty tempProperty = tempProperties[i];
+                String propertyName = getCorrectName(tempProperty.getSimpleName());
+                if ((beanExcludeInfo == null) || !beanExcludeInfo.isExcludedProperty(propertyName)){
+                    propertiesSet.add(tempProperty);
+                }
             }
 
             JProperty[] properties = (JProperty[]) propertiesSet.toArray(new JProperty[0]);
@@ -528,14 +538,20 @@
             for (int i = 0; i < tempFields.length; i++) {
                 // create a element for the field only if it is public
                 // and there is no property with the same name
-
                 if (tempFields[i].isPublic()) {
+                    if (tempFields[i].isStatic()){
+//                        We do not need to expose static fields
+                        continue;
+                    }
+                    String propertyName = getCorrectName(tempFields[i].getSimpleName());
+                    if ((beanExcludeInfo == null) || !beanExcludeInfo.isExcludedProperty(propertyName)) {
+                        // skip field with same name as a property
+                        if (!propertiesNames.contains(tempFields[i].getSimpleName())) {
 
-                    // skip field with same name as a property
-                    if (!propertiesNames.contains(tempFields[i].getSimpleName())) {
-
-                        FieldMap.put(tempFields[i].getSimpleName(), tempFields[i]);
+                            FieldMap.put(tempFields[i].getSimpleName(), tempFields[i]);
+                        }
                     }
+                    
                 }
 
             }
@@ -694,8 +710,12 @@
         if ("javax.activation.DataHandler".equals(classType)) {
             return true;
         } else {
-            JClass superClass = clazz.getSuperclass();
-            return superClass != null && isDataHandler(superClass);
+            JClass supuerClass = clazz.getSuperclass();
+            if (supuerClass != null) {
+                return isDataHandler(supuerClass);
+            } else {
+                return false;
+            }
         }
     }
 

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java Tue Jan 15 08:21:22 2008
@@ -20,6 +20,7 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.deployment.util.Utils;
+import org.apache.axis2.deployment.util.BeanExcludeInfo;
 import org.apache.axis2.description.AxisMessage;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
@@ -343,7 +344,8 @@
             JClass sup = javaType.getSuperclass();
 
             if ((sup != null) && !("java.lang.Object".compareTo(sup.getQualifiedName()) == 0) &&
-                    !("org.apache.axis2".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)) {
+                    !("org.apache.axis2".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)
+                    &&!("java.util".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)) {
                 String superClassName = sup.getQualifiedName();
                 String superclassname = getSimpleName(sup);
                 String tgtNamespace;
@@ -403,9 +405,18 @@
             Set propertiesSet = new HashSet();
             Set propertiesNames = new HashSet();
 
+            BeanExcludeInfo beanExcludeInfo = null;
+            if (service.getExcludeInfo() !=null) {
+                beanExcludeInfo = service.getExcludeInfo().getBeanExcludeInfoForClass(
+                        javaType.getQualifiedName());
+            }
             JProperty[] tempProperties = javaType.getDeclaredProperties();
             for (int i = 0; i < tempProperties.length; i++) {
-                propertiesSet.add(tempProperties[i]);
+                JProperty tempProperty = tempProperties[i];
+                String propertyName = getCorrectName(tempProperty.getSimpleName());
+                if ((beanExcludeInfo == null) || !beanExcludeInfo.isExcludedProperty(propertyName)){
+                    propertiesSet.add(tempProperty);
+                }
             }
 
             JProperty[] properties = (JProperty[]) propertiesSet.toArray(new JProperty[0]);
@@ -430,13 +441,19 @@
             for (int i = 0; i < tempFields.length; i++) {
                 // create a element for the field only if it is public
                 // and there is no property with the same name
-
                 if (tempFields[i].isPublic()) {
 
-                    // skip field with same name as a property
-                    if (!propertiesNames.contains(tempFields[i].getSimpleName())) {
+                    if (tempFields[i].isStatic()) {
+//                        We do not need to expose static fields
+                        continue;
+                    }
+                    String propertyName = getCorrectName(tempFields[i].getSimpleName());
+                    if ((beanExcludeInfo == null) || !beanExcludeInfo.isExcludedProperty(propertyName)) {
+                        // skip field with same name as a property
+                        if (!propertiesNames.contains(tempFields[i].getSimpleName())) {
 
-                        FieldMap.put(tempFields[i].getSimpleName(), tempFields[i]);
+                            FieldMap.put(tempFields[i].getSimpleName(), tempFields[i]);
+                        }
                     }
                 }
 

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java Tue Jan 15 08:21:22 2008
@@ -63,7 +63,7 @@
         simpleTypetoxsd.put("byte",
                 new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "byte", "xs"));
         simpleTypetoxsd.put("char",
-                ANY_TYPE);
+                new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "string", "xs"));
         simpleTypetoxsd.put("java.lang.Integer",
                 new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "int", "xs"));
         simpleTypetoxsd.put("java.lang.Double",

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Tue Jan 15 08:21:22 2008
@@ -32,6 +32,7 @@
 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.phaseresolver.PhaseResolver;
+import org.apache.axis2.phaseresolver.PhaseMetadata;
 import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.util.TargetResolver;
 import org.apache.axis2.util.Utils;
@@ -815,14 +816,14 @@
     /**
      * This method needs to remain for a few Axis2 releases to support
      * legacy apps still using it.
-     * 
+     *
      * @param qname
      * @deprecated Use {@link #isEngaged(String)}
      */
     public boolean isEngaged(QName qname) {
         return isEngaged(qname.getLocalPart());
     }
-    
+
     public boolean isEngaged(String moduleId) {
         AxisModule module = getModule(moduleId);
         if (module == null) {
@@ -1105,5 +1106,104 @@
         if (configurator != null) {
             configurator.cleanup();
         }
+    }
+
+    /**
+     * This method can be used to insert a phase at the runtime for a given location
+     * And the relative location can be specified by beforePhase and afterPhase. Parameters
+     * Either or both of them can be null , if both the parameters are null then the phase
+     * will be added some where in the global phase. If one of them are null then the phase
+     * will be added
+     *  - If the beforePhase is null then the phase will be added after the afterPhase
+     *  - If the after phase is null then the phase will be added before the beforePhase
+     * Type of the flow will be specified by the parameter flow.
+     *   1 - Inflow
+     *   2 - out flow
+     *   3 - fault in flow
+     *   4 - fault out flow
+     *
+     * @param d the Deployable representing the Phase to deploy
+     * @param flow the type of the flow
+     * @throws org.apache.axis2.AxisFault : If something went wrong
+     */
+    public void insertPhase(Deployable d, int flow) throws AxisFault {
+
+        switch (flow) {
+            case PhaseMetadata.IN_FLOW : {
+                List phaseList = phasesinfo.getINPhases();
+                phaseList = findAndInsertPhase(d, phaseList);
+                if (phaseList != null) {
+                    phasesinfo.setINPhases((ArrayList)phaseList);
+                }
+                break;
+            }
+            case PhaseMetadata.OUT_FLOW : {
+                List phaseList = phasesinfo.getOUTPhases();
+                phaseList = findAndInsertPhase(d, phaseList);
+                if (phaseList != null) {
+                    phasesinfo.setOUTPhases((ArrayList)phaseList);
+                }
+                break;
+            }
+            case PhaseMetadata.FAULT_OUT_FLOW : {
+                List phaseList = phasesinfo.getOutFaultPhaseList();
+                phaseList = findAndInsertPhase(d, phaseList);
+                if (phaseList != null) {
+                    phasesinfo.setOUT_FaultPhases((ArrayList)phaseList);
+                }
+                break;
+            }
+            case PhaseMetadata.FAULT_IN_FLOW : {
+                List phaseList = phasesinfo.getIN_FaultPhases();
+                phaseList = findAndInsertPhase(d, phaseList);
+                if (phaseList != null) {
+                    phasesinfo.setIN_FaultPhases((ArrayList)phaseList);
+                }
+                break;
+            }
+        }
+    }
+
+    /**
+     * Insert a Phase
+     * @param d
+     * @param phaseList
+     * @return
+     * @throws AxisFault
+     */
+    private List findAndInsertPhase(Deployable d, List phaseList) throws AxisFault {
+        DeployableChain ec = new DeployableChain();
+        String last = null;
+        for (Iterator i = phaseList.iterator(); i.hasNext();) {
+            Phase phase = (Phase)i.next();
+            String name = phase.getName();
+            Deployable existing = new Deployable(name);
+            existing.setTarget(phase);
+            if (last != null) {
+                // Set up explicit chain relationship for preexisting phases, for now.
+                ec.addRelationship(last, name);
+            }
+            last = name;
+            try {
+                ec.deploy(existing);
+            } catch (Exception e) {
+                // This should never happen when building a simple list like the above
+                throw AxisFault.makeFault(e);
+            }
+        }
+        Phase phase = new Phase();
+        phase.setName(d.getName());
+        d.setTarget(phase);
+
+        try {
+            ec.deploy(d);
+            ec.rebuild();
+        } catch (Exception e) {
+            throw AxisFault.makeFault(e);
+        }
+        
+        phaseList = ec.getChain();
+
+        return phaseList;
     }
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/phaseresolver/PhaseHolder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/phaseresolver/PhaseHolder.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/phaseresolver/PhaseHolder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/phaseresolver/PhaseHolder.java Tue Jan 15 08:21:22 2008
@@ -26,7 +26,6 @@
 import org.apache.axis2.engine.Phase;
 import org.apache.axis2.i18n.Messages;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -45,15 +44,15 @@
     /**
      * If the phase name is equal to "*" that implies , the handler should be
      * added to each and every phase in the system for a given flow  , and at that
-     * point if the phase rule contains any before or aftere then they will be
+     * point if the phase rule contains any befores or afters then they will be
      * ignored. Phase first and phase last are supported , but make sure you dont
      * break any of the phase rules.
      * <p/>
      * If the phase name is not above then the hadler will be added to the phase
      * specified by  the phase rule , and no rules will be ignored.
      *
-     * @param handlerDesc
-     * @throws PhaseException
+     * @param handlerDesc HandlerDescription to deploy
+     * @throws PhaseException if there's a problem
      */
     public void addHandler(HandlerDescription handlerDesc) throws PhaseException {
         PhaseRule rule = handlerDesc.getRules();
@@ -82,7 +81,8 @@
     /**
      * this method is used to get the actual phase object given in the phase array list
      *
-     * @param phaseName
+     * @param phaseName the name of the desired Phase
+     * @return the matching Phase, or null
      */
     private Phase getPhase(String phaseName) {
         for (int i = 0; i < phaseList.size(); i++) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/receivers/AbstractRobustInMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/receivers/AbstractRobustInMessageReceiver.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/receivers/AbstractRobustInMessageReceiver.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/receivers/AbstractRobustInMessageReceiver.java Tue Jan 15 08:21:22 2008
@@ -28,5 +28,5 @@
  *
  * @deprecated not needed, since in-only MessageReceivers can throw faults
  */
-public abstract class AbstractRobustInMessageReceiver extends AbstractMessageReceiver {
+public abstract class AbstractRobustInMessageReceiver extends  AbstractMessageReceiver{
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java Tue Jan 15 08:21:22 2008
@@ -141,13 +141,16 @@
             }
             // Some services send REST responces as text/xml. We should convert it to
             // application/xml if its a REST response, if not it will try to use the SOAPMessageBuilder.
-            if (HTTPConstants.MEDIA_TYPE_TEXT_XML.equals(type)) {
+            // isDoingREST should already be properly set by HTTPTransportUtils.initializeMessageContext
+            if (msgContext.isDoingREST() && HTTPConstants.MEDIA_TYPE_TEXT_XML.equals(type)) {
+//            if (HTTPConstants.MEDIA_TYPE_TEXT_XML.equals(type)) {
                 if (msgContext.isServerSide()) {
                     if (msgContext.getSoapAction() == null) {
                         type = HTTPConstants.MEDIA_TYPE_APPLICATION_XML;
                     }
-                } else if (msgContext.isDoingREST() &&
-                        !msgContext.isPropertyTrue(Constants.Configuration.SOAP_RESPONSE_MEP)) {
+//                } else if (msgContext.isDoingREST() &&
+//                        !msgContext.isPropertyTrue(Constants.Configuration.SOAP_RESPONSE_MEP)) {
+                } else if (!msgContext.isPropertyTrue(Constants.Configuration.SOAP_RESPONSE_MEP)) {
                     type = HTTPConstants.MEDIA_TYPE_APPLICATION_XML;
                 }
             }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Tue Jan 15 08:21:22 2008
@@ -517,6 +517,10 @@
                     HTTPConstants.COMPRESSION_GZIP);
         }
 
+        String cookiePolicy = (String) msgContext.getProperty(HTTPConstants.COOKIE_POLICY);
+        if (cookiePolicy != null) {
+            method.getParams().setCookiePolicy(cookiePolicy);   
+        }
         httpClient.executeMethod(config, method);
     }
 

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/AxisServlet.java Tue Jan 15 08:21:22 2008
@@ -773,7 +773,7 @@
      * This is the helper Class use in processing of doGet, doPut , doDelete and doPost.
      */
     protected class RestRequestProcessor {
-        private MessageContext messageContext;
+        protected MessageContext messageContext;
         private HttpServletRequest request;
         private HttpServletResponse response;
 

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java Tue Jan 15 08:21:22 2008
@@ -458,6 +458,12 @@
     public static final String COMPRESSION_GZIP = "gzip";
 
     /**
+     * Field to set the coockie policy of commons http client
+     * http://jakarta.apache.org/httpcomponents/httpclient-3.x/cookies.html
+      */
+    public static final String COOKIE_POLICY = "COOKIE_POLICY";
+
+    /**
      * If you want the HTTP sender to indicate that it can accept a gziped
      * response, set this message context property to true. The sender will
      * automatically unzip the response if its gzipped.

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java Tue Jan 15 08:21:22 2008
@@ -57,6 +57,7 @@
 import org.apache.http.ProtocolException;
 import org.apache.http.ProtocolVersion;
 import org.apache.http.UnsupportedHttpVersionException;
+import org.apache.http.RequestLine;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpParamsLinker;
 import org.apache.http.protocol.HttpContext;
@@ -140,6 +141,10 @@
         HttpResponse response;
         try {
             HttpRequest request = conn.receiveRequest();
+            RequestLine requestLine = request.getRequestLine();
+            if (requestLine != null) {
+                msgContext.setProperty(HTTPConstants.HTTP_METHOD, requestLine.getMethod());
+            }
             HttpParamsLinker.link(request, this.params);
             ProtocolVersion ver = request.getRequestLine().getProtocolVersion();
             if (!ver.lessEquals(HttpVersion.HTTP_1_1)) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java Tue Jan 15 08:21:22 2008
@@ -141,14 +141,13 @@
         requestDispatcher.invoke(msgContext);
         AxisService axisService = msgContext.getAxisService();
         if (axisService != null) {
-            RequestURIOperationDispatcher requestURIOperationDispatcher =
-                    new RequestURIOperationDispatcher();
-            requestURIOperationDispatcher.invoke(msgContext);
-
+            HTTPLocationBasedDispatcher httpLocationBasedDispatcher =
+                    new HTTPLocationBasedDispatcher();
+            httpLocationBasedDispatcher.invoke(msgContext);
             if (msgContext.getAxisOperation() == null) {
-                HTTPLocationBasedDispatcher httpLocationBasedDispatcher =
-                        new HTTPLocationBasedDispatcher();
-                httpLocationBasedDispatcher.invoke(msgContext);
+                RequestURIOperationDispatcher requestURIOperationDispatcher =
+                        new RequestURIOperationDispatcher();
+                requestURIOperationDispatcher.invoke(msgContext);
             }
 
             AxisOperation axisOperation;

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/URIEncoderDecoder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/URIEncoderDecoder.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/URIEncoderDecoder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/http/util/URIEncoderDecoder.java Tue Jan 15 08:21:22 2008
@@ -205,6 +205,4 @@
         return result.toString();
     }
 
-}
-
-
+}
\ No newline at end of file

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java Tue Jan 15 08:21:22 2008
@@ -82,6 +82,7 @@
     public static final String X_SERVICE_PATH = "X-Service-Path";
     public static final String MAIL_SYNC = "_MAIL_SYNC_";
     public static final String IN_REPLY_TO = "In-Reply-To";
+    public static final String RETURN_PATH = "Return-path";  
     public static final String MAILTO = "mailto";
     public static final String MAPPING_TABLE = "mappingTable";
     public static final String CALLBACK_TABLE = "callbackTable";

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java Tue Jan 15 08:21:22 2008
@@ -343,6 +343,15 @@
                         org.apache.axis2.transport.mail.Constants.MAILTO + ":" +
                         msg.getFrom()[0].toString());
                 transportInfo.setFrom(fromEPR);
+            } else {
+                String returnPath =
+                        getMailHeader(msg, org.apache.axis2.transport.mail.Constants.RETURN_PATH);
+                returnPath = parseHeaderForLessThan(returnPath);
+                if (returnPath != null) {
+                    EndpointReference fromEPR = new EndpointReference(
+                            org.apache.axis2.transport.mail.Constants.MAILTO + ":" + returnPath);
+                    transportInfo.setFrom(fromEPR);
+                }
             }
 
             // Save Message-Id to set as In-Reply-To on reply
@@ -488,6 +497,15 @@
         } catch (MessagingException e) {
             throw new AxisFault(e.getMessage(),e);
         }
+    }
+
+    private String parseHeaderForLessThan(String value) {
+        if (value != null) {
+            if (value.length() > 1 && value.startsWith("<") && value.endsWith(">")) {
+                value = value.substring(1, value.length()-1);
+            }
+        }
+        return value;
     }
 
     private String parseHeaderForQuotes(String value) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java Tue Jan 15 08:21:22 2008
@@ -78,6 +78,8 @@
         String WSDL_LOCATION_URI_OPTION = "uri";
         String WSDL_VERSION_OPTION = "wv";
         String WSDL_VERSION_OPTION_LONG = "wsdl-version";
+        String HTTP_PROXY_HOST_OPTION_LONG = "http-proxy-host";
+        String HTTP_PROXY_PORT_OPTION_LONG = "http-proxy-port";
 
         String INVALID_OPTION = "INVALID_OPTION";
         String EXTRA_OPTIONTYPE_PREFIX = "E";

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/JavaUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/JavaUtils.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/JavaUtils.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/JavaUtils.java Tue Jan 15 08:21:22 2008
@@ -69,6 +69,7 @@
                 || ':' == c
                 || '\u00B7' == c
                 || '\u0387' == c
+                || '-' == c
                 || '\u06DD' == c
                 || '\u06DE' == c;
     } // isPunctuation

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/MessageContextBuilder.java Tue Jan 15 08:21:22 2008
@@ -27,10 +27,13 @@
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPConstants;
 import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFault;
 import org.apache.axiom.soap.SOAPFaultCode;
 import org.apache.axiom.soap.SOAPFaultDetail;
 import org.apache.axiom.soap.SOAPFaultReason;
+import org.apache.axiom.soap.SOAPFaultSubCode;
+import org.apache.axiom.soap.SOAPFaultValue;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.soap.SOAPProcessingException;
@@ -501,6 +504,28 @@
             } else {
                 fault.getCode().getValue().setText(soapFaultCode);
             }
+        }
+        
+        if (axisFault != null && !context.isSOAP11()) {
+            if (axisFault.getFaultSubCodes() != null) {
+                
+                List faultSubCodes = axisFault.getFaultSubCodes();
+                
+                QName faultSubCodeQName;
+                
+                for (Iterator subCodeiter = faultSubCodes.iterator(); subCodeiter.hasNext(); ) {
+                    
+                    faultSubCodeQName = (QName) subCodeiter.next();
+                                        
+                    SOAPFactory sf = (SOAPFactory)envelope.getOMFactory();
+                    SOAPFaultSubCode soapFaultSubCode = sf.createSOAPFaultSubCode(fault.getCode());
+                    SOAPFaultValue saopFaultValue = sf.createSOAPFaultValue(fault.getCode());
+                    saopFaultValue.setText(faultSubCodeQName);
+                    soapFaultSubCode.setValue(saopFaultValue);
+                    fault.getCode().setSubCode(soapFaultSubCode);
+                }
+                
+            } 
         }
 
         SOAPFaultReason faultReason = (SOAPFaultReason)context.getProperty(

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/Utils.java Tue Jan 15 08:21:22 2008
@@ -21,6 +21,7 @@
 package org.apache.axis2.util;
 
 import org.apache.axiom.om.util.UUIDGenerator;
+import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFault;
 import org.apache.axis2.AxisFault;
@@ -471,18 +472,21 @@
         // Else, extract it from the SOAPBody
         if (result == null) {
             SOAPEnvelope envelope = messageContext.getEnvelope();
-            if (envelope == null || envelope.getBody() == null ||
-                envelope.getBody().getFault() == null) {
-                // Not going to be able to 
-                throw new IllegalArgumentException(
-                        "The MessageContext does not have an associated SOAPFault.");
+            SOAPFault soapFault;
+            SOAPBody soapBody;
+            if (envelope != null && (soapBody = envelope.getBody()) != null) {
+                if ((soapFault = soapBody.getFault()) != null) {
+                    return new AxisFault(soapFault, messageContext);
+                }
+                // If its a REST response the content is not a SOAP envelop and hence we will
+                // Have use the soap body as the exception
+                if (messageContext.isDoingREST() && soapBody.getFirstElement() != null) {
+                    return new AxisFault(soapBody.getFirstElement().toString());
+                }
             }
-            SOAPFault soapFault = envelope.getBody().getFault();
-
-            // The AxisFault returned needs to have the MessageContext set on it so that 
-            // other programming models can potentially handle the fault with an 
-            // alternate deserialization.
-            result = new AxisFault(soapFault, messageContext);
+            // Not going to be able to
+            throw new IllegalArgumentException(
+                    "The MessageContext does not have an associated SOAPFault.");
         }
         return result;
     }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java Tue Jan 15 08:21:22 2008
@@ -175,10 +175,10 @@
      */
     public static OMElement generateSOAP11Binding(OMFactory fac, AxisService axisService,
                                                   OMNamespace wsdl, OMNamespace wsoap,
-                                                  OMNamespace tns) {
+                                                  OMNamespace tns, String serviceName) {
         OMElement binding = fac.createOMElement(WSDL2Constants.BINDING_LOCAL_NAME, wsdl);
         binding.addAttribute(
-                fac.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, axisService.getName() +
+                fac.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, serviceName +
                         Java2WSDLConstants.BINDING_NAME_SUFFIX));
         binding.addAttribute(fac.createOMAttribute(WSDL2Constants.INTERFACE_LOCAL_NAME, null, tns
                 .getPrefix() + ":" + WSDL2Constants.DEFAULT_INTERFACE_NAME));
@@ -204,10 +204,10 @@
      */
     public static OMElement generateSOAP12Binding(OMFactory fac, AxisService axisService,
                                                   OMNamespace wsdl, OMNamespace wsoap,
-                                                  OMNamespace tns) {
+                                                  OMNamespace tns, String serviceName) {
         OMElement binding = fac.createOMElement(WSDL2Constants.BINDING_LOCAL_NAME, wsdl);
         binding.addAttribute(
-                fac.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, axisService.getName() +
+                fac.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, serviceName +
                         Java2WSDLConstants.SOAP12BINDING_NAME_SUFFIX));
         binding.addAttribute(fac.createOMAttribute(WSDL2Constants.INTERFACE_LOCAL_NAME, null, tns
                 .getPrefix() + ":" + WSDL2Constants.DEFAULT_INTERFACE_NAME));
@@ -233,9 +233,8 @@
      */
     public static OMElement generateHTTPBinding(OMFactory fac, AxisService axisService,
                                                 OMNamespace wsdl, OMNamespace whttp,
-                                                OMNamespace tns) {
+                                                OMNamespace tns, String serviceName) {
         OMElement binding = fac.createOMElement(WSDL2Constants.BINDING_LOCAL_NAME, wsdl);
-        String serviceName = axisService.getName();
         binding.addAttribute(
                 fac.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, serviceName +
                         Java2WSDLConstants.HTTP_BINDING));
@@ -258,7 +257,11 @@
         return binding;
     }
 
-private static void generateDefaultSOAPBindingOperations(AxisService axisService, OMFactory omFactory, OMElement binding, OMNamespace wsdl, OMNamespace tns, OMNamespace wsoap) {        Iterator iterator = axisService.getChildren();
+    private static void generateDefaultSOAPBindingOperations(AxisService axisService,
+                                                             OMFactory omFactory, OMElement binding,
+                                                             OMNamespace wsdl, OMNamespace tns,
+                                                             OMNamespace wsoap) {
+        Iterator iterator = axisService.getChildren();
         while (iterator.hasNext()) {
             AxisOperation axisOperation = (AxisOperation) iterator.next();
             if (axisOperation.isControlOperation()) {
@@ -290,9 +293,11 @@
      */
     public static OMElement generateServiceElement(OMFactory omFactory, OMNamespace wsdl,
                                                    OMNamespace tns, AxisService axisService,
-                                                   boolean disableREST, boolean disableSOAP12)
+                                                   boolean disableREST, boolean disableSOAP12,
+                                                   String serviceName)
             throws AxisFault {
-        return generateServiceElement(omFactory, wsdl, tns, axisService, disableREST, disableSOAP12, null);
+        return generateServiceElement(omFactory, wsdl, tns, axisService, disableREST, disableSOAP12,
+                                      null, serviceName);
     }
     
     /**
@@ -308,18 +313,19 @@
      */
     public static OMElement generateServiceElement(OMFactory omFactory, OMNamespace wsdl,
                                                    OMNamespace tns, AxisService axisService,
-                                                   boolean disableREST, boolean disableSOAP12, String[] eprs)
+                                                   boolean disableREST, boolean disableSOAP12,
+                                                   String[] eprs, String serviceName)
             throws AxisFault {
         if(eprs == null){
             eprs = axisService.getEPRs();
             if (eprs == null) {
-                eprs = new String[]{axisService.getName()};
+                eprs = new String[]{serviceName};
             }
         }
         OMElement serviceElement;
         serviceElement = omFactory.createOMElement(WSDL2Constants.SERVICE_LOCAL_NAME, wsdl);
                     serviceElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME,
-                                                                            null, axisService.getName()));
+                                                                            null, serviceName));
                     serviceElement.addAttribute(omFactory.createOMAttribute(
                             WSDL2Constants.INTERFACE_LOCAL_NAME, null,
                             tns.getPrefix() + ":" + WSDL2Constants.DEFAULT_INTERFACE_NAME));
@@ -337,7 +343,7 @@
                     name + WSDL2Constants.DEFAULT_SOAP11_ENDPOINT_NAME));
             soap11EndpointElement.addAttribute(omFactory.createOMAttribute(
                     WSDL2Constants.BINDING_LOCAL_NAME, null,
-                    tns.getPrefix() + ":" + axisService.getName() +
+                    tns.getPrefix() + ":" + serviceName +
                             Java2WSDLConstants.BINDING_NAME_SUFFIX));
             soap11EndpointElement.addAttribute(
                     omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr));
@@ -352,7 +358,7 @@
                         name + WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME));
                 soap12EndpointElement.addAttribute(omFactory.createOMAttribute(
                         WSDL2Constants.BINDING_LOCAL_NAME, null,
-                        tns.getPrefix() + ":" + axisService.getName() +
+                        tns.getPrefix() + ":" + serviceName +
                                 Java2WSDLConstants.SOAP12BINDING_NAME_SUFFIX));
                 soap12EndpointElement.addAttribute(
                         omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr));
@@ -368,7 +374,7 @@
                         name + WSDL2Constants.DEFAULT_HTTP_ENDPOINT_NAME));
                 httpEndpointElement.addAttribute(omFactory.createOMAttribute(
                         WSDL2Constants.BINDING_LOCAL_NAME, null,
-                        tns.getPrefix() + ":" + axisService.getName() + Java2WSDLConstants
+                        tns.getPrefix() + ":" + serviceName + Java2WSDLConstants
                                 .HTTP_BINDING));
                 httpEndpointElement.addAttribute(
                         omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr));
@@ -466,7 +472,9 @@
         }
     }
 
-    public static void addWSDLDocumentationElement(AxisDescription axisDescription, OMElement omElement, OMFactory omFactory, OMNamespace wsdl) {
+    public static void addWSDLDocumentationElement(AxisDescription axisDescription,
+                                                   OMElement omElement, OMFactory omFactory,
+                                                   OMNamespace wsdl) {
         OMNode documentationNode = axisDescription.getDocumentationNode();
         OMElement documentation;
         if (documentationNode != null) {

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java Tue Jan 15 08:21:22 2008
@@ -1071,7 +1071,7 @@
 
                 URI uri = null;
                 if (url != null) {
-                    uri = url.toURI();
+                    uri = new URI(url.toString());
                 }
 
                 // Check if the uri has relative path 

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test-resources/deployment/module1/META-INF/module.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test-resources/deployment/module1/META-INF/module.xml?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test-resources/deployment/module1/META-INF/module.xml (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test-resources/deployment/module1/META-INF/module.xml Tue Jan 15 08:21:22 2008
@@ -24,6 +24,9 @@
         <handler name="h2" class="org.apache.axis2.registry.Handler3">
             <order phase="OperationInPhase"/>
         </handler>
+        <handler name="h6" class="org.apache.axis2.registry.Handler3">
+            <order phase="NewPhase"/>
+        </handler>
     </InFlow>
 
     <OutFlow>
@@ -48,4 +51,6 @@
         <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
         <parameter name="para1" locked="xsd:true">10</parameter>
     </operation>
+    <phase name="NewPhase" before="Dispatch" after="Security" flow="InFlow"/>
+    <phase name="NewPhase" before="Dispatch"  flow="InFaultFlow"/>
 </module>

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java Tue Jan 15 08:21:22 2008
@@ -20,28 +20,57 @@
 package org.apache.axis2.deployment;
 
 import junit.framework.TestCase;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.AbstractTestCase;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.registry.Handler3;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.Phase;
+import org.apache.axis2.engine.Handler;
 
 import javax.xml.stream.XMLStreamException;
+import java.util.ArrayList;
 
 public class DeploymentTotalTest extends TestCase {
-    AxisConfiguration er;
+    AxisConfiguration axisConfig;
 
-    public void testparseService1() throws AxisFault, XMLStreamException {
+    protected void setUp() throws Exception {
         String filename = AbstractTestCase.basedir + "/target/test-resources/deployment";
-        er = ConfigurationContextFactory
+        axisConfig = ConfigurationContextFactory
                 .createConfigurationContextFromFileSystem(filename, filename + "/axis2.xml")
                 .getAxisConfiguration();
+        axisConfig.engageModule("module1");
+         // OK, no exceptions.  Now make sure we read the correct file...
+    }
 
-        // OK, no exceptions.  Now make sure we read the correct file...
-        Parameter param = er.getParameter("FavoriteColor");
+    public void testparseService1() throws AxisFault, XMLStreamException {
+        Parameter param = axisConfig.getParameter("FavoriteColor");
         assertNotNull("No FavoriteColor parameter in axis2.xml!", param);
-
         assertEquals("purple", param.getValue());
+    }
+
+    public void testDynamicPhase() {
+        ArrayList inFlow = axisConfig.getInFlowPhases();
+        for (int i = 0; i < inFlow.size(); i++) {
+            Phase phase = (Phase) inFlow.get(i);
+            if (phase.getName().equals("NewPhase")) {
+                assertEquals("Wrong index for NewPhase!", 3, i);
+                assertEquals("Wrong # of handlers in NewPhase", 1, phase.getHandlerCount());
+                Handler h6 = (Handler)phase.getHandlers().get(0);
+                assertTrue("Wrong type for handler", h6 instanceof Handler3);
+            }
+        }
+
+        inFlow = axisConfig.getInFaultFlowPhases();
+        boolean found = false;
+        for (int i = 0; i < inFlow.size(); i++) {
+            Phase phase = (Phase) inFlow.get(i);
+            if (phase.getName().equals("NewPhase")) {
+                found = true;
+            }
+        }
+        assertTrue("NewPhase wasn't found in InFaultFlow", found);
     }
 
 }

Copied: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java (from r610664, webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java?p2=webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java&p1=webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java&r1=610664&r2=612147&rev=612147&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/BeanExcludeInfoTest.java Tue Jan 15 08:21:22 2008
@@ -22,8 +22,8 @@
 
     public void testIsExcludedProperty(){
         BeanExcludeInfo beanExcludeInfo = new BeanExcludeInfo("[A-z]*String|DayPhoneTTY","DayPhoneTTYString");
-        assertTrue(beanExcludeInfo.isExcluedProperty("DetailsString"));
-        assertFalse(beanExcludeInfo.isExcluedProperty("DayPhoneTTYString"));
-        assertFalse(beanExcludeInfo.isExcluedProperty("ElementDetils"));
+        assertTrue(beanExcludeInfo.isExcludedProperty("DetailsString"));
+        assertFalse(beanExcludeInfo.isExcludedProperty("DayPhoneTTYString"));
+        assertFalse(beanExcludeInfo.isExcludedProperty("ElementDetils"));
     }
 }

Copied: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java (from r610664, webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java)
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java?p2=webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java&p1=webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java&r1=610664&r2=612147&rev=612147&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/deployment/util/ExcludeInfoTest.java Tue Jan 15 08:21:22 2008
@@ -27,17 +27,17 @@
         excludeInfo.putBeanInfo("org.kp.anuhak.meta.[A-z]*",new BeanExcludeInfo("[A-z]*",null));
 
         BeanExcludeInfo beanExcludeInfo = excludeInfo.getBeanExcludeInfoForClass("org.kp.anuhak.cdr.test.TestClass");
-        assertFalse(beanExcludeInfo.isExcluedProperty("TestProperty"));
-        assertTrue(beanExcludeInfo.isExcluedProperty("TestBool"));
-        assertFalse(beanExcludeInfo.isExcluedProperty("isTestBool"));
+        assertFalse(beanExcludeInfo.isExcludedProperty("TestProperty"));
+        assertTrue(beanExcludeInfo.isExcludedProperty("TestBool"));
+        assertFalse(beanExcludeInfo.isExcludedProperty("isTestBool"));
 
         beanExcludeInfo = excludeInfo.getBeanExcludeInfoForClass("org.kp.anuhak.cdr.types.TestClass");
-        assertFalse(beanExcludeInfo.isExcluedProperty("TestProperty"));
-        assertTrue(beanExcludeInfo.isExcluedProperty("TestString"));
-        assertFalse(beanExcludeInfo.isExcluedProperty("isTestBool"));
+        assertFalse(beanExcludeInfo.isExcludedProperty("TestProperty"));
+        assertTrue(beanExcludeInfo.isExcludedProperty("TestString"));
+        assertFalse(beanExcludeInfo.isExcludedProperty("isTestBool"));
 
         beanExcludeInfo = excludeInfo.getBeanExcludeInfoForClass("org.kp.anuhak.meta.TestClass");
-        assertTrue(beanExcludeInfo.isExcluedProperty("TestProperty"));
+        assertTrue(beanExcludeInfo.isExcludedProperty("TestProperty"));
 
     }
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java Tue Jan 15 08:21:22 2008
@@ -23,6 +23,19 @@
 import junit.framework.TestCase;
 
 public class AxisServiceTest extends TestCase {
+    public static final String PARAM_NAME = "CustomParameter";
+    public static final Object PARAM_VALUE = new Object();
+
+    class MyObserver implements ParameterObserver {
+        public boolean gotIt = false;
+
+        public void parameterChanged(String name, Object value) {
+            if (PARAM_NAME.equals(name)) {
+                assertEquals("Wrong value", PARAM_VALUE, value);
+                gotIt = true;
+            }
+        }
+    }
 
     public void testAddMessageElementQNameToOperationMappingBasic() {
         AxisService service = new AxisService();
@@ -71,5 +84,13 @@
         
         assertEquals(null, service.getOperationByMessageElementQName(opName));       
     }
-    
+
+    public void testParameterObserver() throws Exception {
+        AxisService service = new AxisService();
+
+        MyObserver observer = new MyObserver();
+        service.addParameterObserver(observer);
+        service.addParameter(PARAM_NAME, PARAM_VALUE);
+        assertTrue("Didn't get notification", observer.gotIt);
+    }
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/kernel/test/org/apache/axis2/description/RegistryTest.java Tue Jan 15 08:21:22 2008
@@ -24,12 +24,14 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.Handler;
+import org.apache.axis2.engine.Phase;
 import org.apache.axis2.handlers.AbstractHandler;
 
 import javax.xml.namespace.QName;
+import java.util.ArrayList;
 
 public class RegistryTest extends AbstractTestCase {
-    private AxisConfiguration reg = new AxisConfiguration();
+    private AxisConfiguration axisConfiguration = new AxisConfiguration();
     AxisService service = new AxisService("Service1");
 
     public RegistryTest(String testName) {
@@ -43,13 +45,13 @@
     }
 
     public void testService() throws AxisFault {
-        reg.addService(service);
+        axisConfiguration.addService(service);
         testParameteInClude(service);
     }
 
     public void testModule() throws AxisFault {
         AxisModule module = new AxisModule("module1");
-        module.setParent(reg);
+        module.setParent(axisConfiguration);
         testParameteInClude(module);
         testFlowIncludeTest(module);
     }

Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ExceptionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ExceptionFactory.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ExceptionFactory.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/ExceptionFactory.java Tue Jan 15 08:21:22 2008
@@ -19,6 +19,7 @@
 
 package org.apache.axis2.jaxws;
 
+import org.apache.axiom.om.OMException;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.jaxws.i18n.Messages;
 import org.apache.commons.logging.Log;
@@ -257,6 +258,7 @@
         while (t != null) {
             Throwable nextCause = null;
             if (t instanceof InvocationTargetException ||
+                    t instanceof OMException ||
                     t instanceof AxisFault) {
                 // Skip over this cause
                 nextCause = getCause(t);

Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java Tue Jan 15 08:21:22 2008
@@ -68,6 +68,29 @@
                                                               Class serviceClass) {
         return DescriptionFactoryImpl.createServiceDescription(wsdlURL, serviceQName, serviceClass);
     }
+    
+    
+    /**
+     * Create the initial ServiceDescripton hierachy on the CLIENT side.  This allows a sparse DBC
+     * to be specified in addition to the service class.  The sparce DBC can be used to override
+     * the class annotation member values.  
+     * 
+     * @see #createServiceDescription(URL, QName, Class)
+     *  
+     * @param wsdlURL
+     * @param serviceQName
+     * @param serviceClass
+     * @param sparseComposite
+     * @param sparseCompositeKey
+     * @return
+     */
+    public static ServiceDescription createServiceDescription(URL wsdlURL, 
+            QName serviceQName, Class serviceClass, DescriptionBuilderComposite sparseComposite,
+            Object sparseCompositeKey) {
+        return DescriptionFactoryImpl.createServiceDescription(wsdlURL, serviceQName, 
+                                                               serviceClass, sparseComposite,
+                                                               sparseCompositeKey);
+    }
 
     /**
      * Retrieve or create the EndpointDescription hierachy associated with an existing CLIENT side
@@ -94,8 +117,32 @@
                                                      Class sei, QName portQName,
                                                      DescriptionFactory.UpdateType updateType) {
         return DescriptionFactoryImpl
-                .updateEndpoint(serviceDescription, sei, portQName, updateType);
-    }
+                   .updateEndpoint(serviceDescription, sei, portQName, updateType);
+    }    
+    
+    /**
+     * Retrieve or create an EndpointDescription hierachy associated with an existing CLIENT side
+     * ServiceDescription for a particular port.  Additonal metdata may be specified in a sparse
+     * composite.  That metadata may come from a JSR-109 client deployment descriptor, for example,
+     * or from resource injection of an WebServiceRef or other Resource annotation.
+     * 
+     * @see #updateEndpoint(ServiceDescription, Class, QName, org.apache.axis2.jaxws.description.DescriptionFactory.UpdateType)
+     *  
+     * @param serviceDescription
+     * @param sei
+     * @param portQName
+     * @param updateType
+     * @param composite
+     * @return
+     */
+    public static EndpointDescription updateEndpoint(ServiceDescription serviceDescription,
+            Class sei, QName portQName,
+            DescriptionFactory.UpdateType updateType,
+            DescriptionBuilderComposite composite,
+            Object sparseCompositeKey) {
+        return DescriptionFactoryImpl
+                   .updateEndpoint(serviceDescription, sei, portQName, updateType, composite, sparseCompositeKey);
+}
 
     /**
      * Retrieve or create the EndpointDescription hierachy associated with an existing CLIENT side

Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointDescription.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointDescription.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/EndpointDescription.java Tue Jan 15 08:21:22 2008
@@ -22,6 +22,7 @@
 
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
 import org.apache.axis2.jaxws.description.xml.handler.HandlerChainsType;
 
 import javax.xml.namespace.QName;
@@ -135,4 +136,11 @@
     public abstract QName getServiceQName();
 
     public abstract Service.Mode getServiceMode();
+
+    /**
+     * Return the DescriptionBuilderComposite, if any, used to build this service description.
+     * @return
+     */
+    public DescriptionBuilderComposite getDescriptionBuilderComposite();
+
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java Tue Jan 15 08:21:22 2008
@@ -212,6 +212,11 @@
      * @return OperationDescription corresponding to the sync operation, or null (see note above).
      */
     public OperationDescription getSyncOperation();
+
+    /**
+     * @return Attachment Description for the return type or null
+     */
+    public AttachmentDescription getResultAttachmentDescription();
     
     /**
     * Returns the namespace of binding input message for the operation
@@ -224,7 +229,23 @@
     public String getBindingOutputNamespace();
     
     /**
-    * @return Attachment Description for the return type or null
-    */
-    public AttachmentDescription getResultAttachmentDescription();
+     * @return a boolean indicator of nested swaRef attachments on the request.
+     */
+    public boolean hasRequestSwaRefAttachments();
+    
+    /**
+     * @param sets the indicator of nested request swaRef attachments.
+     */
+    public void setHasRequestSwaRefAttachments(boolean b);
+    
+    /**
+     * @return a boolean indicator of nested swaRef attachments on the response.
+     */
+    public boolean hasResponseSwaRefAttachments();
+    
+    /**
+     * @param sets the indicator of nested response swaRef attachments.
+     */
+    public void setHasResponseSwaRefAttachments(boolean b);
+    
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/ServiceDescription.java Tue Jan 15 08:21:22 2008
@@ -99,5 +99,19 @@
     public void setServiceRuntimeDesc(ServiceRuntimeDescription ord);
     
     public boolean isServerSide();
-
+    
+    /**
+     * Answer if MTOM is enabled for the service represented by this Service Description.  This
+     * is currently only supported on the service-requester side; it is not supported on the 
+     * service-provider side.  If the key is non-null, it is used to look up an sparse metadata
+     * that may have been specified when the Service Description was created.
+     *  
+     * @param key If non-null, used to look up any sparse metadata that may have been specified
+     *     when the service was created.
+     * @return TRUE if mtom was enabled either in the sparse metadata or in the composite; FALSE
+     *     othewise.
+     */
+    public boolean isMTOMEnabled(Object key);
+    
+    public QName getPreferredPort(Object key);
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/BindingTypeAnnot.java Tue Jan 15 08:21:22 2008
@@ -41,6 +41,15 @@
     public static BindingTypeAnnot createBindingTypeAnnotImpl(String value) {
         return new BindingTypeAnnot(value);
     }
+    
+    public static BindingTypeAnnot createFromAnnotation(Annotation annotation) {
+        BindingTypeAnnot returnAnnot = null;
+        if (annotation != null && annotation instanceof javax.xml.ws.BindingType) {
+            javax.xml.ws.BindingType bt = (javax.xml.ws.BindingType) annotation;
+            returnAnnot = new BindingTypeAnnot(bt.value());
+        }
+        return returnAnnot;
+    }
 
     /** @return Returns the value. */
     public String value() {



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