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 di...@apache.org on 2004/11/04 13:54:20 UTC

cvs commit: ws-axis/java/src/org/apache/axis/client Call.java Service.java

dims        2004/11/04 04:54:20

  Modified:    java/src/org/apache/axis/client Call.java Service.java
  Log:
  Fixes for:
  AXIS-1639 - Call.setPortType and getPortType marked deprecated. Not conformant with JAX-RPC
  AXIS-1638 - Service.createCall(QName, QName) ignores the operationName's namespace
  
  from:
  Chelliah Thirunavukkarasu (chelliah@versai.com)
  
  Revision  Changes    Path
  1.234     +27 -45    ws-axis/java/src/org/apache/axis/client/Call.java
  
  Index: Call.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/client/Call.java,v
  retrieving revision 1.233
  retrieving revision 1.234
  diff -u -r1.233 -r1.234
  --- Call.java	22 Sep 2004 20:49:25 -0000	1.233
  +++ Call.java	4 Nov 2004 12:54:19 -0000	1.234
  @@ -134,6 +134,7 @@
       private boolean            parmAndRetReq   = true ;
       private Service            service         = null ;
       private QName              portName        = null;
  +    private QName              portTypeName    = null;
       private QName              operationName   = null ;
   
       private MessageContext     msgContext      = null ;
  @@ -1300,7 +1301,8 @@
               throw new JAXRPCException( Messages.getMessage("noPortType00", "" +
                                                              portName) );
           }
  -
  +        this.setPortTypeName(portType.getQName());
  +        
           List operations = portType.getOperations();
           if ( operations == null ) {
               throw new JAXRPCException( Messages.getMessage("noOperation01",
  @@ -1532,6 +1534,24 @@
        * @param  opName          Operation(method) that's going to be invoked
        */
       public void setOperation(QName portName, String opName) {
  +    	setOperation(portName, new QName(opName));
  +    }
  +
  +    
  +    /**
  +     * prefill as much info from the WSDL as it can.
  +     * Right now it's target URL, SOAPAction, Parameter types,
  +     * and return type of the Web Service.
  +     *
  +     * If wsdl is not present, this function set port name and operation name
  +     * and does not modify target endpoint address.
  +     *
  +     * Note: Not part of JAX-RPC specification.
  +     *
  +     * @param  portName        PortName in the WSDL doc to search for
  +     * @param  opName          Operation(method) that's going to be invoked
  +     */
  +    public void setOperation(QName portName, QName opName) {
           if ( service == null )
               throw new JAXRPCException( Messages.getMessage("noService04") );
   
  @@ -1557,13 +1577,6 @@
                                                              portName) );
           }
   
  -        Binding   binding  = port.getBinding();
  -        PortType  portType = binding.getPortType();
  -        if ( portType == null ) {
  -            throw new JAXRPCException( Messages.getMessage("noPortType00", "" +
  -                                                           portName) );
  -        }
  -
           // Get the URL
           ////////////////////////////////////////////////////////////////////
           List list = port.getExtensibilityElements();
  @@ -1582,32 +1595,7 @@
               }
           }
   
  -        // Get the SOAPAction
  -        ////////////////////////////////////////////////////////////////////
  -        BindingOperation bop = binding.getBindingOperation(opName,
  -                                                           null, null);
  -        if ( bop == null ) {
  -            throw new JAXRPCException( Messages.getMessage("noOperation02",
  -                                                            opName ));
  -        }
  -        list = bop.getExtensibilityElements();
  -        for ( int i = 0 ; list != null && i < list.size() ; i++ ) {
  -            Object obj = list.get(i);
  -            if ( obj instanceof SOAPOperation ) {
  -                SOAPOperation sop = (SOAPOperation) obj ;
  -                String action = sop.getSoapActionURI();
  -                if ( action != null ) {
  -                    setUseSOAPAction(true);
  -                    setSOAPActionURI(action);
  -                }
  -                else {
  -                    setUseSOAPAction(false);
  -                    setSOAPActionURI(null);
  -                }
  -                break ;
  -            }
  -        }
  -        setOperation(opName);
  +        setOperation(opName.getLocalPart());
       }
   
       /**
  @@ -1632,30 +1620,24 @@
       } // setPortName
   
       /**
  -     * Returns the fully qualified name of the port for this Call object
  +     * Returns the fully qualified name of the port type for this Call object
        * (if there is one).
        *
  -     * @return QName Fully qualified name of the port
  -     *
  -     * @deprecated This is really the service's port name, not portType name.
  -     *            Use getPortName instead.
  +     * @return QName Fully qualified name of the port type
        */
       public QName getPortTypeName() {
  -        return portName == null ? new QName("") : portName;
  +        return portTypeName == null ? new QName("") : portTypeName;
       }
   
       /**
  -     * Sets the port name of this Call object.  This call will not set
  +     * Sets the port type name of this Call object.  This call will not set
        * any additional fields, nor will it do any checking to verify that
        * this port type is actually defined in the WSDL - for now anyway.
        *
        * @param portType Fully qualified name of the portType
  -     *
  -     * @deprecated This is really the service's port name, not portType name.
  -     *            Use setPortName instead.
        */
       public void setPortTypeName(QName portType) {
  -        setPortName(portType);
  +        this.portTypeName = portType;
       }
   
       /**
  
  
  
  1.100     +1 -1      ws-axis/java/src/org/apache/axis/client/Service.java
  
  Index: Service.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/client/Service.java,v
  retrieving revision 1.99
  retrieving revision 1.100
  diff -u -r1.99 -r1.100
  --- Service.java	13 Jun 2004 13:12:29 -0000	1.99
  +++ Service.java	4 Nov 2004 12:54:19 -0000	1.100
  @@ -531,7 +531,7 @@
               throws ServiceException {
   
           Call call = (org.apache.axis.client.Call) createCall();
  -        call.setOperation(portName, operationName.getLocalPart());
  +        call.setOperation(portName, operationName);
           return (call);
       }