all-tests and functional-tests are both broken!

Concerning:
|  5. Remove the code which attempted to map an element QName as a type
|     QName - if we need to do type mapping via elements, there should be
|     a better way.

I added this code.  Seems reasonable to comment it out for now.

Rich Scheuerle
XML & Web Services Development
512-838-5115  (IBM TL 678-5115)


                                                                                       
                                     
                      [EMAIL PROTECTED]                                                
                                     
                      rg                       To:       [EMAIL PROTECTED]       
                                     
                                               cc:                                     
                                     
                      02/20/2002 12:59         Subject:  cvs commit: 
xml-axis/java/test/session TestSimpleSession.java      
                      PM                                                               
                                     
                      Please respond to                                                
                                     
                      axis-dev                                                         
                                     
                                                                                       
                                     
                                                                                       
                                     



gdaniels    02/02/20 10:59:22

  Modified:    java     build.xml
               java/samples/echo TestClient.java
               java/samples/proxy ProxyService.java
               java/samples/security ClientSigningHandler.java
                        LogHandler.java
               java/samples/userguide/example4 LogHandler.java
               java/src/org/apache/axis AxisEngine.java
                        EngineConfiguration.java MessageContext.java
               java/src/org/apache/axis/client Call.java
               java/src/org/apache/axis/configuration FileProvider.java
                        NullProvider.java SimpleProvider.java
               java/src/org/apache/axis/deployment/wsdd WSDDDeployment.java
                        WSDDService.java
               java/src/org/apache/axis/encoding
                        DeserializationContextImpl.java
               java/src/org/apache/axis/handlers JWSHandler.java
                        JWSProcessor.java SimpleAuthorizationHandler.java
               java/src/org/apache/axis/handlers/http
                        HTTPActionHandler.java URLMapper.java
               java/src/org/apache/axis/handlers/soap SOAPService.java
               java/src/org/apache/axis/message BodyBuilder.java
                        RPCElement.java RPCHandler.java
               java/src/org/apache/axis/providers/java EJBProvider.java
                        JavaProvider.java MsgProvider.java RPCProvider.java
               java/src/org/apache/axis/server AxisServer.java
               java/src/org/apache/axis/transport/http HTTPTransport.java
               java/src/org/apache/axis/utils Admin.java
               java/src/org/apache/axis/utils/cache ClassCache.java
               java/src/org/apache/axis/wsdl/fromJava Emitter.java
               java/test/RPCDispatch Service.java TestRPC.java
                        TestSerializedRPC.java
               java/test/encoding TestBody.java
               java/test/session TestSimpleSession.java
  Log:
  Several changes:

  1. Fix bug in RPCProvider where we were dispatching to no-arg methods
     regardless of what we received in the XML.

  2. Remove the code to search for methods which have a MessageContext
     as the first arg, and upgrade all usages of this functionality to
     use MessageContext.getCurrentContext()

  3. Add a switch in the WSDD so you can say:
       <service name="foo" provider="java:RPC" style="document">
     and the "document-ness" will be remembered through the system,
     including in particular the WSDL emitter.  This will be used a lot
     more later as our doc/lit support improves.

  4. Change MessageContext.getServiceHandler() to getService(), and
     it now returns a SOAPService explicitly.  Also setServiceHandler()
     is now setService(SOAPService).  This rippled through AxisServer
     and EngineConfiguration as well.

  5. Remove the code which attempted to map an element QName as a type
     QName - if we need to do type mapping via elements, there should be
     a better way.

  6. Handle overloaded methods - this was accomplished for now by
     moving the "determineDefaultParams" logic that used to be in
     RPCHandler into RPCElement.deserialize().  That method now attempts
     to deserialize the RPCElement once for each potential method
     match, and it continues in the face of deserialization errors.

     This is the biggest change, and it needs some more looking at, IMO.
     The logic that is currently spread out between here, RPCHandler, and
     RPCProvider to deal with method dispatch and argument conversion
     could be cleaned up and made a lot more efficient, I think.

  7. Add an overloaded method test to test.RPCDispatch.TestSerializedRPC

  *whew*, I think that's it.  This all started with just wanting to do
  the document switch!!

  Revision  Changes    Path
  1.112     +1 -0      xml-axis/java/build.xml

  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/build.xml,v
  retrieving revision 1.111
  retrieving revision 1.112
  diff -u -r1.111 -r1.112
  --- build.xml          20 Feb 2002 13:46:08 -0000          1.111
  +++ build.xml          20 Feb 2002 18:59:20 -0000          1.112
  @@ -74,6 +74,7 @@
     <property name="docs.dir" value="./docs"/>
     <property name="samples.dir" value="./samples"/>
     <property name="test.dir" value="./test"/>
  +  <property name="lib.dir" value="./lib"/>

     <property name="wsdl4j.jar" value="lib/wsdl4j.jar"/>
     <property name="commons-logging.jar" value="lib/commons-logging.jar"/>



  1.54      +20 -7     xml-axis/java/samples/echo/TestClient.java

  Index: TestClient.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/echo/TestClient.java,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- TestClient.java          19 Feb 2002 22:46:40 -0000          1.53
  +++ TestClient.java          20 Feb 2002 18:59:20 -0000          1.54
  @@ -79,6 +79,8 @@
   import java.util.List;
   import java.util.Map;
   import java.util.Set;
  +import java.io.StringWriter;
  +import java.io.PrintWriter;

   import javax.xml.rpc.holders.StringHolder;
   import javax.xml.rpc.holders.IntHolder;
  @@ -456,22 +458,33 @@
           } else {
               client = new TestClient() {
               public void verify(String method, Object sent, Object
gotBack) {
  +                String message;
                   if (this.equals(sent, gotBack)) {
  -                    System.out.println(method + "\t OK");
  +                    message = "OK";
                   } else {
  -                    String message = "Fail: ";
                       if (gotBack instanceof Exception) {
                           if (gotBack instanceof AxisFault) {
  -                            message = "Fault: ";
  -                            gotBack =
((AxisFault)gotBack).getFaultString();
  +                            message = "Fault: " +
  +                                ((AxisFault)gotBack).getFaultString();
                           } else {
  +                            StringWriter sw = new StringWriter();
  +                            PrintWriter pw = new PrintWriter(sw);
                               message = "Exception: ";
  -                            ((Exception)gotBack).printStackTrace();
  +                            ((Exception)gotBack).printStackTrace(pw);
  +                            message += sw.getBuffer().toString();
                           }
  +                    } else {
  +                        message = "Fail:" + gotBack + " expected " +
sent;
                       }
  -                    System.out.println(method + "\t " + message +
  -                                       gotBack + " expected " + sent);
                   }
  +                // Line up the output
  +                String tab = "";
  +                int l = method.length();
  +                while (l < 25) {
  +                    tab += " ";
  +                    l++;
  +                }
  +                System.out.println(method + tab + " " + message);
               }
           };
           }



  1.13      +1 -1      xml-axis/java/samples/proxy/ProxyService.java

  Index: ProxyService.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/proxy/ProxyService.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ProxyService.java        28 Jan 2002 18:22:59 -0000          1.12
  +++ ProxyService.java        20 Feb 2002 18:59:20 -0000          1.13
  @@ -83,7 +83,7 @@
       {
           try {
               // Look in the message context for our service
  -            Handler self = msgContext.getServiceHandler();
  +            Handler self = msgContext.getService();

               // what is our target URL?
               String dest = (String)self.getOption("URL");



  1.5       +1 -1
xml-axis/java/samples/security/ClientSigningHandler.java

  Index: ClientSigningHandler.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/samples/security/ClientSigningHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ClientSigningHandler.java            19 Feb 2002 17:38:18 -0000
 1.4
  +++ ClientSigningHandler.java            20 Feb 2002 18:59:20 -0000
 1.5
  @@ -72,7 +72,7 @@
           /** Sign the SOAPEnvelope
            */
           try {
  -            Handler serviceHandler = msgContext.getServiceHandler();
  +            Handler serviceHandler = msgContext.getService();
               String filename = (String) getOption("keystore");
               if ((filename == null) || (filename.equals("")))
                   throw new AxisFault("Server.NoKeyStoreFile",



  1.6       +1 -1      xml-axis/java/samples/security/LogHandler.java

  Index: LogHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/security/LogHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LogHandler.java          19 Feb 2002 17:38:18 -0000          1.5
  +++ LogHandler.java          20 Feb 2002 18:59:20 -0000          1.6
  @@ -117,7 +117,7 @@

       public void undo(MessageContext msgContext) {
           try {
  -            Handler serviceHandler = msgContext.getServiceHandler();
  +            Handler serviceHandler = msgContext.getService();
               String filename = (String) getOption("filename");
               if ((filename == null) || (filename.equals("")))
                   throw new AxisFault("Server.NoLogFile",



  1.10      +1 -1
xml-axis/java/samples/userguide/example4/LogHandler.java

  Index: LogHandler.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/samples/userguide/example4/LogHandler.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- LogHandler.java          10 Jan 2002 20:00:59 -0000          1.9
  +++ LogHandler.java          20 Feb 2002 18:59:20 -0000          1.10
  @@ -70,7 +70,7 @@
           /** Log an access each time we get invoked.
            */
           try {
  -            Handler serviceHandler = msgContext.getServiceHandler();
  +            Handler serviceHandler = msgContext.getService();
               String filename = (String)getOption("filename");
               if ((filename == null) || (filename.equals("")))
                   throw new AxisFault("Server.NoLogFile",



  1.70      +1 -1      xml-axis/java/src/org/apache/axis/AxisEngine.java

  Index: AxisEngine.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/AxisEngine.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- AxisEngine.java          19 Feb 2002 17:38:18 -0000          1.69
  +++ AxisEngine.java          20 Feb 2002 18:59:20 -0000          1.70
  @@ -256,7 +256,7 @@
           }
       }

  -    public Handler getService(String name) throws AxisFault
  +    public SOAPService getService(String name) throws AxisFault
       {
           try {
               return config.getService(new QName(null, name));



  1.5       +4 -2
xml-axis/java/src/org/apache/axis/EngineConfiguration.java

  Index: EngineConfiguration.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/EngineConfiguration.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- EngineConfiguration.java             12 Feb 2002 17:18:28 -0000
 1.4
  +++ EngineConfiguration.java             20 Feb 2002 18:59:20 -0000
 1.5
  @@ -58,6 +58,8 @@
   import javax.xml.rpc.namespace.QName;
   import org.apache.axis.encoding.TypeMappingRegistry;
   import org.apache.axis.encoding.TypeMapping;
  +import org.apache.axis.handlers.soap.SOAPService;
  +
   import java.util.Hashtable;

   /**
  @@ -111,7 +113,7 @@
        * @return XXX
        * @throws ConfigurationException XXX
        */
  -    public Handler getService(QName qname) throws
ConfigurationException;
  +    public SOAPService getService(QName qname) throws
ConfigurationException;

       /**
        * Get a service which has been mapped to a particular namespace
  @@ -119,7 +121,7 @@
        * @param namespace a namespace URI
        * @return an instance of the appropriate Service, or null
        */
  -    public Handler getServiceByNamespaceURI(String namespace)
  +    public SOAPService getServiceByNamespaceURI(String namespace)
           throws ConfigurationException;

        /**



  1.76      +6 -5
xml-axis/java/src/org/apache/axis/MessageContext.java

  Index: MessageContext.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/MessageContext.java,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- MessageContext.java            19 Feb 2002 17:38:18 -0000
1.75
  +++ MessageContext.java            20 Feb 2002 18:59:20 -0000
1.76
  @@ -423,10 +423,10 @@
           targetService = tServ ;

           if (targetService == null)
  -            setServiceHandler(null);
  +            setService(null);
           else {
               try {
  -                setServiceHandler(getAxisEngine().getService(tServ));
  +                setService(getAxisEngine().getService(tServ));
               } catch (AxisFault fault) {
                   // If we're on the client, don't throw this fault...
                   if (!isClient()) {
  @@ -440,12 +440,13 @@
        * can (and probably will actually be a chain that contains the
        * service specific request/response/pivot point handlers
        */
  -    private Handler          serviceHandler ;
  -    public Handler getServiceHandler() {
  +    private SOAPService serviceHandler ;
  +
  +    public SOAPService getService() {
           return( serviceHandler );
       }

  -    public void setServiceHandler(Handler sh)
  +    public void setService(SOAPService sh)
       {
           log.debug("MessageContext: setServiceHandler("+sh+")");
           serviceHandler = sh;



  1.75      +1 -1      xml-axis/java/src/org/apache/axis/client/Call.java

  Index: Call.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- Call.java          19 Feb 2002 17:38:19 -0000          1.74
  +++ Call.java          20 Feb 2002 18:59:20 -0000          1.75
  @@ -1595,7 +1595,7 @@
               throw new AxisFault("Call.invoke",
                      JavaUtils.getMessage("cantInvoke00", body.getName()),
                                           null, null);
  -        } else if (msgContext.getServiceHandler() == null) {
  +        } else if (msgContext.getService() == null) {
               msgContext.setTargetService(body.getNamespaceURI());
           }




  1.21      +3 -2
xml-axis/java/src/org/apache/axis/configuration/FileProvider.java

  Index: FileProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/configuration/FileProvider.java,v

  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- FileProvider.java        19 Feb 2002 17:38:19 -0000          1.20
  +++ FileProvider.java        20 Feb 2002 18:59:20 -0000          1.21
  @@ -59,6 +59,7 @@
   import org.apache.axis.ConfigurationException;
   import org.apache.axis.EngineConfiguration;
   import org.apache.axis.Handler;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.deployment.wsdd.WSDDDeployment;
   import org.apache.axis.deployment.wsdd.WSDDDocument;
   import org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration;
  @@ -229,7 +230,7 @@
        * @return XXX
        * @throws ConfigurationException XXX
        */
  -    public Handler getService(QName qname) throws ConfigurationException
{
  +    public SOAPService getService(QName qname) throws
ConfigurationException {
           return deployment.getService(qname);
       }

  @@ -239,7 +240,7 @@
        * @param namespace a namespace URI
        * @return an instance of the appropriate Service, or null
        */
  -    public Handler getServiceByNamespaceURI(String namespace)
  +    public SOAPService getServiceByNamespaceURI(String namespace)
               throws ConfigurationException {
           return deployment.getServiceByNamespaceURI(namespace);
       }



  1.4       +3 -2
xml-axis/java/src/org/apache/axis/configuration/NullProvider.java

  Index: NullProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/configuration/NullProvider.java,v

  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NullProvider.java        12 Feb 2002 17:18:28 -0000          1.3
  +++ NullProvider.java        20 Feb 2002 18:59:20 -0000          1.4
  @@ -59,6 +59,7 @@
   import org.apache.axis.ConfigurationException;
   import org.apache.axis.EngineConfiguration;
   import org.apache.axis.Handler;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.encoding.TypeMapping;
   import org.apache.axis.encoding.TypeMappingRegistry;

  @@ -104,11 +105,11 @@
           return null;
       }

  -    public Handler getService(QName qname) throws ConfigurationException
{
  +    public SOAPService getService(QName qname) throws
ConfigurationException {
           return null;
       }

  -    public Handler getServiceByNamespaceURI(String namespace)
  +    public SOAPService getServiceByNamespaceURI(String namespace)
               throws ConfigurationException {
           return null;
       }



  1.4       +4 -4
xml-axis/java/src/org/apache/axis/configuration/SimpleProvider.java

  Index: SimpleProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/configuration/SimpleProvider.java,v

  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SimpleProvider.java            12 Feb 2002 17:18:28 -0000
1.3
  +++ SimpleProvider.java            20 Feb 2002 18:59:20 -0000
1.4
  @@ -201,8 +201,8 @@
           return transport;
       }

  -    public Handler getService(QName qname) throws ConfigurationException
{
  -        Handler service = (Handler)services.get(qname);
  +    public SOAPService getService(QName qname) throws
ConfigurationException {
  +        SOAPService service = (SOAPService)services.get(qname);
           if ((defaultConfiguration != null) && (service == null))
               service = defaultConfiguration.getService(qname);
           return service;
  @@ -214,9 +214,9 @@
        * @param namespace a namespace URI
        * @return an instance of the appropriate Service, or null
        */
  -    public Handler getServiceByNamespaceURI(String namespace)
  +    public SOAPService getServiceByNamespaceURI(String namespace)
               throws ConfigurationException {
  -        Handler service = (Handler)services.get(new QName
("",namespace));
  +        SOAPService service = (SOAPService)services.get(new QName
("",namespace));
           if ((service == null) && (defaultConfiguration != null))
               service =
defaultConfiguration.getServiceByNamespaceURI(namespace);
           return service;



  1.25      +5 -4
xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java

  Index: WSDDDeployment.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java,v

  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- WSDDDeployment.java            12 Feb 2002 17:18:28 -0000
1.24
  +++ WSDDDeployment.java            20 Feb 2002 18:59:20 -0000
1.25
  @@ -58,6 +58,7 @@
   import org.w3c.dom.Element;
   import org.w3c.dom.NodeList;
   import org.apache.axis.*;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.deployment.DeploymentRegistry;
   import org.apache.axis.deployment.DeploymentException;
   import org.apache.axis.encoding.ser.BaseSerializerFactory;
  @@ -448,22 +449,22 @@
        * @param name XXX
        * @return XXX
        */
  -    public Handler getService(QName name) throws ConfigurationException
  +    public SOAPService getService(QName name) throws
ConfigurationException
       {
           WSDDService s = (WSDDService)services.get(name);
           if (s != null) {
  -            return s.getInstance(this);
  +            return (SOAPService)s.getInstance(this);
           }

           return null;
       }

  -    public Handler getServiceByNamespaceURI(String namespace)
  +    public SOAPService getServiceByNamespaceURI(String namespace)
           throws ConfigurationException
       {
           WSDDService s = (WSDDService)namespaceToServices.get(namespace);
           if (s != null) {
  -            return s.getInstance(this);
  +            return (SOAPService)s.getInstance(this);
           }

           return null;



  1.40      +25 -0
xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java

  Index: WSDDService.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java,v

  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- WSDDService.java         12 Feb 2002 17:18:28 -0000          1.39
  +++ WSDDService.java         20 Feb 2002 18:59:20 -0000          1.40
  @@ -90,6 +90,9 @@
       private Vector namespaces = new Vector();

       private String descriptionURL;
  +
  +    /** Style - document or RPC (the default) */
  +    private int style = SOAPService.STYLE_RPC;

       private SOAPService cachedService = null;

  @@ -140,6 +143,10 @@
           String typeStr = e.getAttribute("provider");
           if (typeStr != null && !typeStr.equals(""))
               providerQName = XMLUtils.getQNameFromString(typeStr, e);
  +
  +        String modeStr = e.getAttribute("style");
  +        if (modeStr != null && modeStr.equals("document"))
  +            style = SOAPService.STYLE_DOCUMENT;
       }

       /**
  @@ -186,6 +193,20 @@
       }

       /**
  +     * Get the service style - document or RPC
  +     */
  +    public int getStyle() {
  +        return style;
  +    }
  +
  +    /**
  +     * Set the service style - document or RPC
  +     */
  +    public void setStyle(int style) {
  +        this.style = style;
  +    }
  +
  +    /**
        *
        * @return XXX
        */
  @@ -268,6 +289,7 @@

           SOAPService service = new SOAPService(reqHandler,
providerHandler,
                                                 respHandler);
  +        service.setStyle(style);

           if ( getQName() != null )
               service.setName(getQName().getLocalPart());
  @@ -366,6 +388,9 @@
           if (providerQName != null) {
               attrs.addAttribute("", "provider", "provider",
                                  "CDATA",
context.qName2String(providerQName));
  +        }
  +        if (style == SOAPService.STYLE_DOCUMENT) {
  +            attrs.addAttribute("", "style", "style", "CDATA",
"document");
           }

           context.startElement(WSDDConstants.SERVICE_QNAME, attrs);



  1.7       +6 -1
xml-axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java

  Index: DeserializationContextImpl.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java,v

  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DeserializationContextImpl.java            19 Feb 2002 17:38:19 -0000
       1.6
  +++ DeserializationContextImpl.java            20 Feb 2002 18:59:21 -0000
       1.7
  @@ -357,11 +357,16 @@
               return getQNameFromString(type);
           }

  +        /*  Removing this code for now - Glen 2/20/02
  +
           // If all else fails see if the name is a known type
           typeQName = new QName(namespace, localName);
           if (getTypeMapping().getClassForQName(typeQName) != null)
               return typeQName;
  -        return null;
  +
  +        */
  +
  +        return null;
       }

       /**



  1.14      +3 -2
xml-axis/java/src/org/apache/axis/handlers/JWSHandler.java

  Index: JWSHandler.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/JWSHandler.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JWSHandler.java          19 Feb 2002 17:38:20 -0000          1.13
  +++ JWSHandler.java          20 Feb 2002 18:59:21 -0000          1.14
  @@ -57,6 +57,7 @@
   import org.apache.axis.AxisFault;
   import org.apache.axis.Constants;
   import org.apache.axis.MessageContext;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.utils.JavaUtils;

   import org.apache.commons.logging.Log;
  @@ -77,7 +78,7 @@

       // Keep the processor Handler around so we can make it the service
       // Handler for this request if appropriate.
  -    static JWSProcessor processor = new JWSProcessor();
  +    static SOAPService processor = new SOAPService(new JWSProcessor());

       public void invoke(MessageContext msgContext) throws AxisFault
       {
  @@ -90,7 +91,7 @@
           String realpath = msgContext.getStrProp(Constants.MC_REALPATH);

           if ((realpath!=null) && (realpath.endsWith(".jws"))) {
  -            msgContext.setServiceHandler(processor);
  +            msgContext.setService(processor);
           }

           if (log.isDebugEnabled()) {



  1.38      +3 -2
xml-axis/java/src/org/apache/axis/handlers/JWSProcessor.java

  Index: JWSProcessor.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/JWSProcessor.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- JWSProcessor.java        19 Feb 2002 17:38:20 -0000          1.37
  +++ JWSProcessor.java        20 Feb 2002 18:59:21 -0000          1.38
  @@ -58,6 +58,7 @@
   import org.apache.axis.Constants;
   import org.apache.axis.Handler;
   import org.apache.axis.MessageContext;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.providers.java.RPCProvider;
   import org.apache.axis.transport.http.HTTPConstants;
   import org.apache.axis.utils.JWSClassLoader;
  @@ -263,8 +264,8 @@
               /* Create a new RPCProvider - this will be the "service"
*/
               /* that we invoke.
*/

/******************************************************************/
  -            Handler rpc = new RPCProvider();
  -            msgContext.setServiceHandler( rpc );
  +            SOAPService rpc = new SOAPService(new RPCProvider());
  +            msgContext.setService( rpc );

               rpc.setOption( "className", clsName );




  1.26      +1 -1
xml-axis/java/src/org/apache/axis/handlers/SimpleAuthorizationHandler.java

  Index: SimpleAuthorizationHandler.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/SimpleAuthorizationHandler.java,v

  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- SimpleAuthorizationHandler.java            19 Feb 2002 17:38:20 -0000
       1.25
  +++ SimpleAuthorizationHandler.java            20 Feb 2002 18:59:21 -0000
       1.26
  @@ -106,7 +106,7 @@
                       JavaUtils.getMessage("needUser00"), null, null);

           String userID = user.getName();
  -        Handler serviceHandler = msgContext.getServiceHandler();
  +        Handler serviceHandler = msgContext.getService();

           if (serviceHandler == null)
               throw new AxisFault(JavaUtils.getMessage("needService00"));



  1.16      +1 -1
xml-axis/java/src/org/apache/axis/handlers/http/HTTPActionHandler.java

  Index: HTTPActionHandler.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/http/HTTPActionHandler.java,v

  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- HTTPActionHandler.java         19 Feb 2002 17:38:20 -0000
1.15
  +++ HTTPActionHandler.java         20 Feb 2002 18:59:21 -0000
1.16
  @@ -84,7 +84,7 @@

           /** If there's already a targetService then just return.
           */
  -        if ( msgContext.getServiceHandler() == null ) {
  +        if ( msgContext.getService() == null ) {
               String action = (String) msgContext.getSOAPActionURI();
               log.debug( "  HTTP SOAPAction: " + action );




  1.15      +1 -1
xml-axis/java/src/org/apache/axis/handlers/http/URLMapper.java

  Index: URLMapper.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/http/URLMapper.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- URLMapper.java           19 Feb 2002 17:38:20 -0000          1.14
  +++ URLMapper.java           20 Feb 2002 18:59:21 -0000          1.15
  @@ -80,7 +80,7 @@

           /** If there's already a targetService then just return.
            */
  -        if ( msgContext.getServiceHandler() == null ) {
  +        if ( msgContext.getService() == null ) {
               // Assumes "/" + servicename
               String path
= (String)msgContext.getProperty(HTTPConstants.MC_HTTP_SERVLETPATHINFO);
               if ((path != null) && (path.length() > 1)) {



  1.46      +16 -0
xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java

  Index: SOAPService.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v

  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- SOAPService.java         19 Feb 2002 17:38:21 -0000          1.45
  +++ SOAPService.java         20 Feb 2002 18:59:21 -0000          1.46
  @@ -96,6 +96,9 @@
       static Log log =
               LogFactory.getLog(SOAPService.class.getName());

  +    public static final int STYLE_RPC = 0;
  +    public static final int STYLE_DOCUMENT = 1;
  +
       /** Valid transports for this service
        * (server side only!)
        *
  @@ -109,6 +112,11 @@
       private TypeMappingRegistry tmr;

       /**
  +     * Style of the service - document or RPC
  +     */
  +    private int style = STYLE_RPC;
  +
  +    /**
        * SOAPRequestHandler is used to inject SOAP semantics just before
        * the pivot handler.
        */
  @@ -249,6 +257,14 @@
           }

           return true;
  +    }
  +
  +    public int getStyle() {
  +        return style;
  +    }
  +
  +    public void setStyle(int style) {
  +        this.style = style;
       }


/*********************************************************************



  1.17      +5 -4
xml-axis/java/src/org/apache/axis/message/BodyBuilder.java

  Index: BodyBuilder.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/message/BodyBuilder.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- BodyBuilder.java         19 Feb 2002 17:38:21 -0000          1.16
  +++ BodyBuilder.java         20 Feb 2002 18:59:21 -0000          1.17
  @@ -65,6 +65,7 @@
   import org.apache.axis.AxisFault;
   import org.apache.axis.Handler;
   import org.apache.axis.ConfigurationException;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.axis.encoding.DeserializationContext;
   import org.apache.axis.utils.JavaUtils;
   import org.apache.commons.logging.Log;
  @@ -116,19 +117,19 @@
           MessageContext msgContext = context.getMessageContext();

           if (isRoot &&
  -            msgContext.getServiceHandler() == null) {
  +            msgContext.getService() == null) {

               if (log.isDebugEnabled()) {
                   log.debug(JavaUtils.getMessage
("dispatching00",namespace));
               }

               try {
  -                Handler serviceHandler = msgContext.
  +                SOAPService service = msgContext.
                                              getAxisEngine().
                                              getConfig().

getServiceByNamespaceURI(namespace);
  -                if (serviceHandler != null)
  -                    msgContext.setServiceHandler(serviceHandler);
  +                if (service != null)
  +                    msgContext.setService(service);
               } catch (ConfigurationException e) {
                   // oh well...
               }



  1.32      +60 -4
xml-axis/java/src/org/apache/axis/message/RPCElement.java

  Index: RPCElement.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/message/RPCElement.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- RPCElement.java          26 Jan 2002 02:48:38 -0000          1.31
  +++ RPCElement.java          20 Feb 2002 18:59:21 -0000          1.32
  @@ -58,12 +58,18 @@
   import org.apache.axis.encoding.DeserializationContext;
   import org.apache.axis.encoding.SerializationContext;
   import org.apache.axis.Constants;
  +import org.apache.axis.MessageContext;
  +import org.apache.axis.Handler;
  +import org.apache.axis.utils.cache.ClassCache;
  +import org.apache.axis.utils.cache.JavaClass;
  +import org.apache.axis.utils.JavaUtils;
   import org.xml.sax.Attributes;
   import org.xml.sax.helpers.AttributesImpl;
   import org.xml.sax.SAXException;

   import javax.xml.rpc.namespace.QName;
   import java.util.Vector;
  +import java.lang.reflect.Method;

   public class RPCElement extends SOAPBodyElement
   {
  @@ -108,14 +114,64 @@
           return name;
       }

  +    protected Class  defaultParamTypes[] = null;
  +
  +    public Class [] getJavaParamTypes()
  +    {
  +        return defaultParamTypes;
  +    }
  +
       public void deserialize() throws SAXException
       {
  -        context.pushElementHandler(new EnvelopeHandler(new
RPCHandler(this)));
  -        context.setCurElement(this);
  -
           needDeser = false;
  +
  +        MessageContext msgContext = context.getMessageContext();
  +        Handler service    = msgContext.getService();
  +        String clsName = null;
  +
  +        if (service != null) {
  +            clsName = (String)service.getOption("className");
  +        }
  +
  +        if (clsName != null) {
  +            ClassLoader cl       = msgContext.getClassLoader();
  +            ClassCache cache     = msgContext.getAxisEngine
().getClassCache();
  +            JavaClass       jc   = null;
  +            try {
  +                jc = cache.lookup(clsName, cl);
  +            } catch (ClassNotFoundException e) {
  +                throw new SAXException(e);
  +            }
  +
  +            if (log.isDebugEnabled()) {
  +                log.debug(JavaUtils.getMessage(
  +                        "lookup00", name, clsName));
  +            }
  +
  +            Method[] method = jc.getMethod(name);
  +            int numChildren = (getChildren() == null) ? 0 : getChildren
().size();
  +            if (method != null) {
  +                for (int i = 0; i < method.length; i++) {
  +                    defaultParamTypes = method[i].getParameterTypes();
  +                    if (defaultParamTypes.length >= numChildren) {
  +                        try {
  +                            context.pushElementHandler(new
EnvelopeHandler(new RPCHandler(this)));
  +                            context.setCurElement(this);
  +
  +                            publishToHandler
((org.xml.sax.ContentHandler) context);
  +                        } catch (SAXException e) {
  +                            // If there was a problem, try the next one.
  +                            params = new Vector();
  +                            continue;
  +                        }
  +                        // Succeeded in deserializing!
  +                        return;
  +                    }
  +                }
  +            }
  +        }

  -        publishToHandler((org.xml.sax.ContentHandler) context);
  +        publishToHandler((org.xml.sax.ContentHandler)context);
       }

       /** This gets the FIRST param whose name matches.



  1.27      +3 -48
xml-axis/java/src/org/apache/axis/message/RPCHandler.java

  Index: RPCHandler.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/message/RPCHandler.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- RPCHandler.java          19 Feb 2002 17:38:21 -0000          1.26
  +++ RPCHandler.java          20 Feb 2002 18:59:21 -0000          1.27
  @@ -90,53 +90,12 @@
       private RPCElement call;
       private RPCParam currentParam;

  -    protected Class  defaultParamTypes[] = null;
  -
       public RPCHandler(RPCElement call)
           throws SAXException
       {
           this.call = call;
       }

  -    private void determineDefaultParams(String methodName,
  -                                        DeserializationContext context)
{
  -        MessageContext msgContext = context.getMessageContext();
  -        Handler service    = msgContext.getServiceHandler();
  -        if (service == null) return;
  -
  -        String  clsName    = (String) service.getOption( "className" );
  -
  -        try {
  -            ClassLoader cl       = msgContext.getClassLoader();
  -            ClassCache cache     = msgContext.getAxisEngine
().getClassCache();
  -            JavaClass       jc   = cache.lookup(clsName, cl);
  -            Class           cls  = jc.getJavaClass();
  -
  -            if (log.isDebugEnabled()) {
  -                log.debug(JavaUtils.getMessage(
  -                        "lookup00", methodName, clsName));
  -            }
  -
  -            // If we find only one method of this name, we can use it
  -            // to make better decisions about what deserializers to use
  -            // for parameters.
  -            Method[] method = jc.getMethod(methodName);
  -            if (method != null && method.length == 1) {
  -                defaultParamTypes = method[0].getParameterTypes();
  -            }
  -
  -            // !!! This should be smart enough to deal with overloaded
  -            // methods - we should really be keeping a list of all of
  -            // the possibilities, then moving down the list to keep
  -            // matching as we deserialize params....
  -            //
  -
  -            // in the future, we should add support for runtime
information
  -            // from sources like WSDL, based on
Handler.getDeploymentData();
  -        } catch (Exception e) {
  -            // oh well, we tried.
  -        }
  -    }

       public SOAPHandler onStartChild(String namespace,
                                       String localName,
  @@ -155,8 +114,6 @@
           }

           Vector params = call.getParams();
  -        if (params.isEmpty())
  -            determineDefaultParams(call.getMethodName(), context);

           // This is a param.
           currentParam = new RPCParam(namespace, localName, null);
  @@ -209,14 +166,12 @@
                   }
               }

  -            if (type == null && defaultParamTypes!=null &&
  -                params.size()<=defaultParamTypes.length) {
  +            if (type == null && call.getJavaParamTypes() !=null &&
  +                params.size() <= call.getJavaParamTypes().length) {

                   TypeMapping typeMap = context.getTypeMapping();
                   int index = params.size()-1;
  -                if (index+1<defaultParamTypes.length)
  -                    if (defaultParamTypes[0]==MessageContext.class)
index++;
  -                type = typeMap.getTypeQName(defaultParamTypes[index]);
  +                type = typeMap.getTypeQName(call.getJavaParamTypes
()[index]);
                   if (log.isDebugEnabled()) {
                       log.debug(JavaUtils.getMessage("typeFromParms00", ""
+ type));
                   }



  1.14      +3 -3
xml-axis/java/src/org/apache/axis/providers/java/EJBProvider.java

  Index: EJBProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/providers/java/EJBProvider.java,v

  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- EJBProvider.java         12 Feb 2002 17:28:33 -0000          1.13
  +++ EJBProvider.java         20 Feb 2002 18:59:21 -0000          1.14
  @@ -102,7 +102,7 @@
                                                String clsName)
           throws Exception
       {
  -        Handler serviceHandler = msgContext.getServiceHandler();
  +        Handler serviceHandler = msgContext.getService();

           // Get the EJB Home object from JNDI
           Object ejbHome = getEJBHome(msgContext, clsName);
  @@ -171,7 +171,7 @@
        * @return the class info of the EJB remote interface
        */
      protected Class getServiceClass(MessageContext msgContext, String
beanJndiName) throws Exception {
  -        Handler serviceHandler = msgContext.getServiceHandler();
  +        Handler serviceHandler = msgContext.getService();

          // Get the EJB Home object from JNDI
          Object ejbHome = getEJBHome(msgContext, beanJndiName);
  @@ -218,7 +218,7 @@
        * Common routine to do the JNDI lookup on the Home interface object
        */
       private Object getEJBHome(MessageContext msgContext, String
beanJndiName) throws AxisFault {
  -        Handler serviceHandler =  msgContext.getServiceHandler();
  +        Handler serviceHandler =  msgContext.getService();
           Object ejbHome;
           Properties properties = null;




  1.39      +7 -5
xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java

  Index: JavaProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java,v

  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- JavaProvider.java        19 Feb 2002 17:38:21 -0000          1.38
  +++ JavaProvider.java        20 Feb 2002 18:59:21 -0000          1.39
  @@ -69,6 +69,7 @@
   import org.apache.axis.wsdl.fromJava.Emitter;
   import org.apache.axis.encoding.TypeMapping;
   import org.apache.axis.Constants;
  +import org.apache.axis.handlers.soap.SOAPService;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.w3c.dom.Document;
  @@ -108,7 +109,7 @@
                                       String clsName)
           throws Exception
       {
  -        String serviceName = msgContext.getServiceHandler().getName();
  +        String serviceName = msgContext.getService().getName();

           // scope can be "Request", "Session", "Application"
           // (as with Apache SOAP)
  @@ -127,7 +128,7 @@

               // What do we do if serviceName is null at this point???
               if (serviceName == null)
  -                serviceName = msgContext.getServiceHandler().toString();
  +                serviceName = msgContext.getService().toString();

               // look in incoming session
               if (msgContext.getSession() != null) {
  @@ -201,7 +202,7 @@
           /* Find the service we're invoking so we can grab it's options
*/

/***************************************************************/
           String serviceName = msgContext.getTargetService();
  -        Handler service = msgContext.getServiceHandler();
  +        Handler service = msgContext.getService();

           /* Now get the service (RPC) specific info  */
           /********************************************/
  @@ -276,7 +277,7 @@
           /* Find the service we're invoking so we can grab it's options
*/

/***************************************************************/
           String serviceName = msgContext.getTargetService();
  -        Handler service = msgContext.getServiceHandler();
  +        SOAPService service = msgContext.getService();

           /* Now get the service (RPC) specific info  */
           /********************************************/
  @@ -311,6 +312,7 @@
               }

               Emitter emitter = new Emitter();
  +            emitter.setMode(service.getStyle());
               emitter.setClsSmart(cls,url);
               emitter.setAllowedMethods(allowedMethods);
               emitter.setIntfNamespace(url);
  @@ -382,7 +384,7 @@
        * Returns the Class info about the service class.
        */
       protected Class getServiceClass(MessageContext msgContext, String
clsName) throws Exception {
  -        Handler service = msgContext.getServiceHandler();
  +        Handler service = msgContext.getService();
           Object obj = getServiceObject(msgContext,
                                      service,
                                      clsName);



  1.23      +1 -1
xml-axis/java/src/org/apache/axis/providers/java/MsgProvider.java

  Index: MsgProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/providers/java/MsgProvider.java,v

  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- MsgProvider.java         30 Jan 2002 20:36:08 -0000          1.22
  +++ MsgProvider.java         20 Feb 2002 18:59:21 -0000          1.23
  @@ -88,7 +88,7 @@
                                   Object obj)
           throws Exception
       {
  -        Handler targetService = msgContext.getServiceHandler();
  +        Handler targetService = msgContext.getService();

           // is this service a body-only service?
           // if true (the default), the servic3e expects two args,



  1.39      +9 -7
xml-axis/java/src/org/apache/axis/providers/java/RPCProvider.java

  Index: RPCProvider.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/providers/java/RPCProvider.java,v

  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- RPCProvider.java         19 Feb 2002 17:38:21 -0000          1.38
  +++ RPCProvider.java         20 Feb 2002 18:59:21 -0000          1.39
  @@ -198,19 +198,21 @@
               for (m = 0; m < method.length; ++m) {
                   ex = null;
                   params = method[m].getParameterTypes();
  -
  -
  +
  +                // Don't bother with this one if it has FEWER params
  +                if (argValues != null) {
  +                    if (params.length < argValues.length)
  +                        continue;
  +                }
  +
                   // The number of method parameters must match the
  -                // arguments taking into consideration a MessageContext
argument
  -                // and output parameters.
  +                // arguments taking into consideration output
parameters.
                   Object[] newArgValues = new Object[params.length];
                   int old = 0;
                   boolean problem = false;
                   for (int n = 0; n < newArgValues.length; n++) {
                       Class heldType =
JavaUtils.getHolderValueType(params[n]);
  -                    if (params[n] == MessageContext.class) {
  -                        newArgValues[n] = msgContext;
  -                    } else if (argValues != null && old <
argValues.length) {
  +                    if (argValues != null && old < argValues.length) {
                           newArgValues[n] = argValues[old++];
                       } else if (heldType == null) {
                           // The parameters that don't match the argValues
must



  1.59      +4 -4
xml-axis/java/src/org/apache/axis/server/AxisServer.java

  Index: AxisServer.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/server/AxisServer.java,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- AxisServer.java          19 Feb 2002 17:38:21 -0000          1.58
  +++ AxisServer.java          20 Feb 2002 18:59:22 -0000          1.59
  @@ -268,7 +268,7 @@
                   * transport or global Handlers).  If it hasn't been set,
we
                   * fault.
                   */
  -                h = msgContext.getServiceHandler();
  +                h = msgContext.getService();
                   if (h == null) {
                       // It's possible that we haven't yet parsed the
                       // message at this point.  This is a kludge to
  @@ -277,7 +277,7 @@
                       // chain instead....
                       Message rm = msgContext.getRequestMessage();
                       rm.getSOAPEnvelope().getFirstBody();
  -                    h = msgContext.getServiceHandler();
  +                    h = msgContext.getService();
                       if (h == null)
                           throw new AxisFault("Server.NoService",
                               JavaUtils.getMessage("noService05",
  @@ -416,7 +416,7 @@
                   * transport or global Handlers).  If it hasn't been set,
we
                   * fault.
                   */
  -                h = msgContext.getServiceHandler();
  +                h = msgContext.getService();
                   if (h == null) {
                       // It's possible that we haven't yet parsed the
                       // message at this point.  This is a kludge to
  @@ -426,7 +426,7 @@
                       Message rm = msgContext.getRequestMessage();
                       if (rm != null) {
                           rm.getSOAPEnvelope().getFirstBody();
  -                        h = msgContext.getServiceHandler();
  +                        h = msgContext.getService();
                       }
                       if (h == null)
                           throw new AxisFault("Server.NoService",



  1.14      +1 -1
xml-axis/java/src/org/apache/axis/transport/http/HTTPTransport.java

  Index: HTTPTransport.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/transport/http/HTTPTransport.java,v

  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- HTTPTransport.java             8 Feb 2002 22:14:11 -0000
1.13
  +++ HTTPTransport.java             20 Feb 2002 18:59:22 -0000
1.14
  @@ -122,7 +122,7 @@
           // Allow the SOAPAction to determine the service, if the service
           // (a) has not already been determined, and (b) if a service
matching
           // the soap action has been deployed.
  -        if (mc.getServiceHandler() == null) {
  +        if (mc.getService() == null) {
               mc.setTargetService( (String)mc.getSOAPActionURI() );
           }
       }



  1.101     +1 -1      xml-axis/java/src/org/apache/axis/utils/Admin.java

  Index: Admin.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/Admin.java,v
  retrieving revision 1.100
  retrieving revision 1.101
  diff -u -r1.100 -r1.101
  --- Admin.java         19 Feb 2002 17:38:22 -0000          1.100
  +++ Admin.java         20 Feb 2002 18:59:22 -0000          1.101
  @@ -225,7 +225,7 @@
           /** For now, though - make sure we can only admin from our own
            * IP, unless the remoteAdmin option is set.
            */
  -        Handler serviceHandler = msgContext.getServiceHandler();
  +        Handler serviceHandler = msgContext.getService();
           if (serviceHandler != null) {
               String remoteAdmin = (String)serviceHandler.
                                           getOption("enableRemoteAdmin");



  1.2       +5 -1
xml-axis/java/src/org/apache/axis/utils/cache/ClassCache.java

  Index: ClassCache.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/utils/cache/ClassCache.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClassCache.java          8 Feb 2002 03:09:26 -0000           1.1
  +++ ClassCache.java          20 Feb 2002 18:59:22 -0000          1.2
  @@ -110,7 +110,11 @@
        * @param cl ClassLoader to use if we need to load the class
        * @return JavaClass entry
        */
  -    public JavaClass lookup(String className, ClassLoader cl) throws
ClassNotFoundException {
  +    public JavaClass lookup(String className, ClassLoader cl)
  +            throws ClassNotFoundException {
  +        if (className == null) {
  +            return null;
  +        }
           JavaClass jc = (JavaClass) classCache.get(className);
           if ((jc == null) && (cl != null)) {
               // Try to load the class with the specified classloader



  1.19      +19 -2
xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java

  Index: Emitter.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- Emitter.java             19 Feb 2002 15:06:51 -0000          1.18
  +++ Emitter.java             20 Feb 2002 18:59:22 -0000          1.19
  @@ -116,6 +116,9 @@
       public static final int MODE_ALL = 0;
       public static final int MODE_INTERFACE = 1;
       public static final int MODE_IMPLEMENTATION = 2;
  +
  +    public static final int MODE_RPC = 0;
  +    public static final int MODE_DOCUMENT = 1;

       private Class cls;
       private Class implCls;                 // Optional implementation
class
  @@ -131,6 +134,7 @@
       private String serviceElementName;
       private String targetService = null;
       private String description;
  +    private int mode = MODE_RPC;
       private TypeMapping tm = null;        // Registered type mapping
       private TypeMapping defaultTM = null; // Default TM
       private Namespaces namespaces;
  @@ -485,7 +489,8 @@
             new javax.wsdl.QName(intfNS, getServicePortName() +
"SoapBinding"));

           SOAPBinding soapBinding = new SOAPBindingImpl();
  -        soapBinding.setStyle("rpc");
  +        String modeStr = (mode == MODE_RPC) ? "rpc" : "document";
  +        soapBinding.setStyle(modeStr);
           soapBinding.setTransportURI(Constants.URI_SOAP_HTTP);

           binding.addExtensibilityElement(soapBinding);
  @@ -643,7 +648,11 @@

           SOAPOperation soapOper = new SOAPOperationImpl();
           soapOper.setSoapActionURI("");
  -        soapOper.setStyle("rpc");
  +
  +        // Until we have per-operation configuration, this will always
be
  +        // the same as the binding default.
  +        // soapOper.setStyle("rpc");
  +
           bindingOper.addExtensibilityElement(soapOper);

           SOAPBody soapBody = new SOAPBodyImpl();
  @@ -1242,5 +1251,13 @@
        */
       public void setDefaultTypeMapping(TypeMapping defaultTM) {
           this.defaultTM = defaultTM;
  +    }
  +
  +    public int getMode() {
  +        return mode;
  +    }
  +
  +    public void setMode(int mode) {
  +        this.mode = mode;
       }
   }



  1.10      +19 -9     xml-axis/java/test/RPCDispatch/Service.java

  Index: Service.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/RPCDispatch/Service.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Service.java             5 Dec 2001 00:27:18 -0000           1.9
  +++ Service.java             20 Feb 2002 18:59:22 -0000          1.10
  @@ -35,13 +35,6 @@
       /**
        * Return the target service (should be this!)
        */
  -    public String targetServiceExplicit(MessageContext mc) throws
Exception {
  -       return mc.getTargetService();
  -    }
  -
  -    /**
  -     * Return the target service (should be this!)
  -     */
       public String targetServiceImplicit() throws Exception {
          return MessageContext.getCurrentContext().getTargetService();
       }
  @@ -49,10 +42,10 @@
       /**
        * Return the target service (should be this!)
        */
  -    public String argAsDOM(MessageContext mc, Data input) throws
Exception {
  +    public String argAsDOM(Data input) throws Exception {

          // get the first parameter
  -       Message message = mc.getRequestMessage();
  +       Message message = MessageContext.getCurrentContext
().getRequestMessage();
          RPCElement body = (RPCElement)message.getSOAPPart
().getAsSOAPEnvelope().getFirstBody();
          NodeList parms = body.getAsDOM().getChildNodes();
          Node parm1 = null;
  @@ -71,6 +64,23 @@
        */
       public Integer echoInt(Integer value) throws Exception {
          return value;
  +    }
  +
  +    /**
  +     * Return the boolean value passed in
  +     */
  +    public boolean overloaded(boolean b)
  +    {
  +        return b;
  +    }
  +
  +    /**
  +     * Return the int passed in (this and the function above test
overloaded
  +     * method dispatch)
  +     */
  +    public int overloaded(int i)
  +    {
  +        return i;
       }

       /**



  1.33      +0 -15     xml-axis/java/test/RPCDispatch/TestRPC.java

  Index: TestRPC.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/RPCDispatch/TestRPC.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- TestRPC.java             28 Jan 2002 18:23:02 -0000          1.32
  +++ TestRPC.java             20 Feb 2002 18:59:22 -0000          1.33
  @@ -147,21 +147,6 @@
       }

       /**
  -     * Test a simple method that returns a field from the message
context
  -     */
  -    public void testMessageContextExplicit() throws Exception {
  -        // Register the targetService service
  -        SOAPService tgtSvc = new SOAPService(new RPCProvider());
  -        tgtSvc.setOption("className", "test.RPCDispatch.Service");
  -        tgtSvc.setOption("allowedMethods", "targetServiceExplicit");
  -        provider.deployService(new QName(null, SOAPAction), tgtSvc);
  -
  -        // invoke the service and verify the result
  -        assertEquals("SOAP Action did not equal the targetService.",
  -            SOAPAction, rpc("targetServiceExplicit", new Object[] {}));
  -    }
  -
  -    /**
        * Test a simple method that accepts and returns a null
        */
       public void testNull() throws Exception {



  1.26      +20 -0
xml-axis/java/test/RPCDispatch/TestSerializedRPC.java

  Index: TestSerializedRPC.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/test/RPCDispatch/TestSerializedRPC.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- TestSerializedRPC.java         1 Feb 2002 22:08:26 -0000
1.25
  +++ TestSerializedRPC.java         20 Feb 2002 18:59:22 -0000
1.26
  @@ -208,12 +208,32 @@
           assertEquals("Did not echo arg correctly.", arg, rpc("argAsDOM",
arg, true));
       }

  +    /**
  +     * Test overloaded method dispatch without the benefit of xsi:types
  +     */
  +    public void testOverloadedMethodDispatch() throws Exception
  +    {
  +        // invoke the service and verify the result
  +        String arg = "<arg0>true</arg0>";
  +        Boolean expected = Boolean.TRUE;
  +        assertEquals("Overloaded method test failed with a boolean",
  +                     expected,
  +                     rpc("overloaded", arg, true));
  +
  +        arg = "<arg0>5</arg0>";
  +        Integer expectedInt = new Integer(5);
  +        assertEquals("Overloaded method test failed with an int",
  +                     expectedInt,
  +                     rpc("overloaded", arg, true));
  +    }
  +
       public static void main(String args[]) {
         try {
           TestSerializedRPC tester = new TestSerializedRPC("Test
Serialized RPC");
           tester.testSerReverseString();
           tester.testSerReverseData();
           tester.testArgAsDOM();
  +        tester.testOverloadedMethodDispatch();
         } catch (Exception e) {
           e.printStackTrace();
         }



  1.10      +1 -1      xml-axis/java/test/encoding/TestBody.java

  Index: TestBody.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/TestBody.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- TestBody.java            12 Feb 2002 17:18:29 -0000          1.9
  +++ TestBody.java            20 Feb 2002 18:59:22 -0000          1.10
  @@ -52,7 +52,7 @@
           //assertEquals("Namespace does not equal the message context
target service.", namespace, msgContext.getTargetService());

           // verify the service is set
  -        assertEquals("The target is not the same as the message context
service handler", target, msgContext.getServiceHandler());
  +        assertEquals("The target is not the same as the message context
service handler", target, msgContext.getService());
       }

       public static void main(String[] args) throws Exception {



  1.14      +2 -2      xml-axis/java/test/session/TestSimpleSession.java

  Index: TestSimpleSession.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/session/TestSimpleSession.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- TestSimpleSession.java         19 Feb 2002 04:28:52 -0000
1.13
  +++ TestSimpleSession.java         20 Feb 2002 18:59:22 -0000
1.14
  @@ -141,9 +141,9 @@
        * This is our service method for testing session data.  Simply
        * increments a session-scoped counter.
        */
  -    public Integer counter(MessageContext context) throws Exception
  +    public Integer counter() throws Exception
       {
  -        Session session = context.getSession();
  +        Session session = MessageContext.getCurrentContext().getSession
();
           if (session == null)
               throw new Exception("No session in MessageContext!");
           Integer count = (Integer)session.get("counter");






Reply via email to