antelder    2003/01/13 12:40:21

  Modified:    java/src/org/apache/wsif WSIFPort.java WSIFOperation.java
                        WSIFService.java
               java/src/org/apache/wsif/providers/java
                        WSIFOperation_Java.java
               java/src/org/apache/wsif/base WSIFDefaultOperation.java
                        WSIFDefaultPort.java WSIFServiceImpl.java
               java/src/org/apache/wsif/providers/ejb
                        WSIFOperation_EJB.java
               java/src/org/apache/wsif/providers/soap/apachesoap
                        WSIFOperation_ApacheSOAP.java
               java/src/org/apache/wsif/providers/jms
                        WSIFOperation_Jms.java
               java/src/org/apache/wsif/providers/soap/soaprmi
                        WSIFOperation_SoapRMI.java
  Log:
  Fix bugzilla bug 15780 - part 1 - enable context on WSIFService and WSIFPort
  
  Revision  Changes    Path
  1.5       +13 -0     xml-axis-wsif/java/src/org/apache/wsif/WSIFPort.java
  
  Index: WSIFPort.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/WSIFPort.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WSIFPort.java     7 Dec 2002 12:33:43 -0000       1.4
  +++ WSIFPort.java     13 Jan 2003 20:40:21 -0000      1.5
  @@ -127,4 +127,17 @@
        *      <br><code>false</code> this port does not support asynchronous calls
        */
       public boolean supportsAsync();
  +
  +    /**
  +     * Gets the context information for this WSIFPort.
  +     * @return context
  +     */
  +    public WSIFMessage getContext() throws WSIFException ;
  +
  +    /**
  +     * Sets the context information for this WSIFPort.
  +     * @param WSIFMessage the new context information
  +     */
  +    public void setContext(WSIFMessage context);
  +
   }
  
  
  
  1.5       +1 -1      xml-axis-wsif/java/src/org/apache/wsif/WSIFOperation.java
  
  Index: WSIFOperation.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/WSIFOperation.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WSIFOperation.java        7 Dec 2002 12:33:43 -0000       1.4
  +++ WSIFOperation.java        13 Jan 2003 20:40:21 -0000      1.5
  @@ -187,7 +187,7 @@
        * Gets the context information for this binding.
        * @return context
        */
  -    public WSIFMessage getContext();
  +    public WSIFMessage getContext() throws WSIFException;
   
       /**
        * Create an input message that will be sent via this port.
  
  
  
  1.5       +13 -0     xml-axis-wsif/java/src/org/apache/wsif/WSIFService.java
  
  Index: WSIFService.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/WSIFService.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WSIFService.java  7 Dec 2002 12:33:43 -0000       1.4
  +++ WSIFService.java  13 Jan 2003 20:40:21 -0000      1.5
  @@ -164,4 +164,17 @@
        * @return The Definition object
        */
       public Definition getDefinition();
  +    
  +    /**
  +     * Gets the context information for this WSIFService.
  +     * @return context
  +     */
  +    public WSIFMessage getContext() throws WSIFException ;
  +
  +    /**
  +     * Sets the context information for this WSIFService.
  +     * @param WSIFMessage the new context information
  +     */
  +    public void setContext(WSIFMessage context);
  +
   }
  
  
  
  1.29      +7 -5      
xml-axis-wsif/java/src/org/apache/wsif/providers/java/WSIFOperation_Java.java
  
  Index: WSIFOperation_Java.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/java/WSIFOperation_Java.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- WSIFOperation_Java.java   9 Dec 2002 16:51:19 -0000       1.28
  +++ WSIFOperation_Java.java   13 Jan 2003 20:40:21 -0000      1.29
  @@ -69,24 +69,20 @@
   import java.util.Vector;
   
   import javax.wsdl.BindingFault;
  -import javax.wsdl.BindingInput;
   import javax.wsdl.BindingOperation;
   import javax.wsdl.BindingOutput;
  -import javax.wsdl.Definition;
   import javax.wsdl.Fault;
  -import javax.wsdl.Message;
   import javax.wsdl.Operation;
   import javax.wsdl.OperationType;
   import javax.wsdl.Part;
   import javax.wsdl.Port;
   import javax.xml.namespace.QName;
   
  -import org.apache.wsif.WSIFConstants;
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  +import org.apache.wsif.WSIFPort;
   import org.apache.wsif.base.WSIFDefaultOperation;
  -import org.apache.wsif.base.WSIFServiceImpl;
   import org.apache.wsif.logging.MessageLogger;
   import org.apache.wsif.logging.Trc;
   import org.apache.wsif.providers.ProviderUtils;
  @@ -909,6 +905,12 @@
           return fieldOutputMessageName;
       }
   
  +    public WSIFPort getWSIFPort() {
  +        Trc.entry(this);
  +        Trc.exit(fieldPort);
  +        return fieldPort;
  +    }
  +    
       public boolean executeRequestResponseOperation(
           WSIFMessage input,
           WSIFMessage output,
  
  
  
  1.20      +21 -7     
xml-axis-wsif/java/src/org/apache/wsif/base/WSIFDefaultOperation.java
  
  Index: WSIFDefaultOperation.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/base/WSIFDefaultOperation.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- WSIFDefaultOperation.java 7 Dec 2002 12:34:00 -0000       1.19
  +++ WSIFDefaultOperation.java 13 Jan 2003 20:40:21 -0000      1.20
  @@ -62,13 +62,14 @@
   import java.util.List;
   import java.util.Map;
   
  -import javax.xml.namespace.QName;
   import javax.wsdl.Operation;
  +import javax.xml.namespace.QName;
   
   import org.apache.wsif.WSIFCorrelationId;
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  +import org.apache.wsif.WSIFPort;
   import org.apache.wsif.WSIFResponseHandler;
   import org.apache.wsif.compiler.util.TypeMapping;
   import org.apache.wsif.logging.Trc;
  @@ -298,6 +299,8 @@
           return outJmsProps;
       }
       
  +    public abstract WSIFPort getWSIFPort();
  +    
       /**
        * This method adds new property values to existing HashMap.
        * Where a property value exists in the existing HashMap and the new list, 
  @@ -428,6 +431,9 @@
        */
       public void setContext(WSIFMessage context) {
           Trc.entry(this, context);
  +        if (context == null) {
  +             throw new IllegalArgumentException("context must not be null");
  +        }
           this.context = context;
           Trc.exit();
       }
  @@ -435,13 +441,21 @@
       /**
        * Gets the context information for this binding.
        */
  -    public WSIFMessage getContext() {
  +    public WSIFMessage getContext() throws WSIFException {
           Trc.entry(this);
  -        if ( context == null ) {
  -            context = new WSIFDefaultMessage();
  -        }
  -        Trc.exit(context);
  -        return context;
  +     WSIFMessage contextCopy;
  +         try {
  +         if (this.context == null) {
  +                 contextCopy = (WSIFMessage) getWSIFPort().getContext().clone();
  +         } else {
  +                         contextCopy = (WSIFMessage) this.context.clone();
  +         }
  +             } catch (CloneNotSupportedException e) {
  +                 throw new WSIFException(
  +                     "CloneNotSupportedException cloning context", e);
  +             }
  +        Trc.exit(contextCopy);
  +     return contextCopy;
       }
       
       abstract protected Operation getOperation() throws Exception;
  
  
  
  1.8       +40 -0     xml-axis-wsif/java/src/org/apache/wsif/base/WSIFDefaultPort.java
  
  Index: WSIFDefaultPort.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/base/WSIFDefaultPort.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- WSIFDefaultPort.java      7 Dec 2002 12:34:00 -0000       1.7
  +++ WSIFDefaultPort.java      13 Jan 2003 20:40:21 -0000      1.8
  @@ -79,6 +79,8 @@
    */
   public abstract class WSIFDefaultPort implements WSIFPort {
        private static final long serialVersionUID = 1L;
  +     
  +     private WSIFMessage context;
   
       public void close() throws WSIFException {
           Trc.entry(this);
  @@ -178,4 +180,42 @@
           Trc.exit(false);
           return false;
       }
  +
  +    /**
  +     * Gets the context information for this WSIFPort.
  +     * @return context
  +     */
  +    public WSIFMessage getContext() throws WSIFException {
  +        Trc.entry(this);
  +     WSIFMessage contextCopy;
  +     if (this.context == null) {
  +             // really this should call getContext on the WSIFService but
  +             // theres no reference to that so WSIFService must call setContext
  +             // on any WSIFPorts it creates.
  +             contextCopy = new WSIFDefaultMessage();
  +     } else {
  +                 try {
  +                         contextCopy = (WSIFMessage) this.context.clone();
  +                 } catch (CloneNotSupportedException e) {
  +                         throw new WSIFException(
  +                             "CloneNotSupportedException cloning context", e);
  +                 }
  +     }
  +        Trc.exit(contextCopy);
  +     return contextCopy;
  +    }
  +
  +    /**
  +     * Sets the context information for this WSIFPort.
  +     * @param WSIFMessage the new context information
  +     */
  +    public void setContext(WSIFMessage context) {
  +        Trc.entry(this, context);
  +        if (context == null) {
  +             throw new IllegalArgumentException("context must not be null");
  +        }
  +        this.context = context;
  +        Trc.exit(null);
  +    }
  +
   }
  
  
  
  1.31      +42 -3     xml-axis-wsif/java/src/org/apache/wsif/base/WSIFServiceImpl.java
  
  Index: WSIFServiceImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/base/WSIFServiceImpl.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- WSIFServiceImpl.java      9 Dec 2002 16:51:19 -0000       1.30
  +++ WSIFServiceImpl.java      13 Jan 2003 20:40:21 -0000      1.31
  @@ -82,6 +82,7 @@
   
   import org.apache.wsif.WSIFConstants;
   import org.apache.wsif.WSIFException;
  +import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFPort;
   import org.apache.wsif.WSIFService;
   import org.apache.wsif.compiler.schema.tools.Schema2Java;
  @@ -121,6 +122,7 @@
       private String preferredPort = null;
       private Map typeReg = null;
       private Port chosenPort = null;
  +    private WSIFMessage context;
   
       /**
        * Create a WSIF service instance from WSDL document URL.
  @@ -396,12 +398,14 @@
               (ExtensibilityElement) bindingExList.get(0);
           String bindingNS = bindingFirstEx.getElementType().getNamespaceURI();
           WSIFProvider provider = WSIFPluggableProviders.getProvider(bindingNS);
  -        if (provider != null) {
  -            return provider.createDynamicWSIFPort(def, service, port, typeMap);
  -        } else {
  +        if (provider == null) {
               throw new WSIFException(
                   "could not find suitable provider for binding namespace '" + 
bindingNS + "'");
           }
  +        WSIFPort wsifPort = 
  +            provider.createDynamicWSIFPort(def, service, port, typeMap);
  +        wsifPort.setContext(getContext());
  +        return wsifPort;
       }
   
       public WSIFPort getPort() throws WSIFException {
  @@ -987,6 +991,40 @@
           return def;
       }
   
  +    /**
  +     * Gets the context information for this WSIFService.
  +     * @return context
  +     */
  +    public WSIFMessage getContext() throws WSIFException {
  +        Trc.entry(this);
  +     WSIFMessage contextCopy;
  +     if (this.context == null) {
  +             contextCopy = new WSIFDefaultMessage();
  +     } else {
  +                 try {
  +                         contextCopy = (WSIFMessage) this.context.clone();
  +                 } catch (CloneNotSupportedException e) {
  +                         throw new WSIFException(
  +                             "CloneNotSupportedException cloning context", e);
  +                 }
  +     }
  +        Trc.exit(contextCopy);
  +     return contextCopy;
  +    }
  +
  +    /**
  +     * Sets the context information for this WSIFService.
  +     * @param WSIFMessage the new context information
  +     */
  +    public void setContext(WSIFMessage context) {
  +        Trc.entry(this, context);
  +        if (context == null) {
  +             throw new IllegalArgumentException("context must not be null");
  +        }
  +        this.context = context;
  +        Trc.exit();
  +    }
  +
       public String deep() {
           String buff = "";
           try {
  @@ -1002,6 +1040,7 @@
               buff += "\ntypeMapInitialised:" + typeMapInitialised;
               buff += "\npreferredPort:" + (preferredPort == null ? "null" : 
preferredPort);
               buff += "\nchosenPort:" + Trc.brief(chosenPort);
  +            buff += "\ncontext:" + context;
           } catch (Exception e) {
               Trc.exceptionInTrace(e);
           }
  
  
  
  1.27      +7 -1      
xml-axis-wsif/java/src/org/apache/wsif/providers/ejb/WSIFOperation_EJB.java
  
  Index: WSIFOperation_EJB.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/ejb/WSIFOperation_EJB.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- WSIFOperation_EJB.java    10 Jan 2003 10:33:07 -0000      1.26
  +++ WSIFOperation_EJB.java    13 Jan 2003 20:40:21 -0000      1.27
  @@ -81,10 +81,10 @@
   import javax.wsdl.Part;
   import javax.xml.namespace.QName;
   
  -import org.apache.wsif.WSIFConstants;
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  +import org.apache.wsif.WSIFPort;
   import org.apache.wsif.base.WSIFDefaultOperation;
   import org.apache.wsif.logging.MessageLogger;
   import org.apache.wsif.logging.Trc;
  @@ -939,6 +939,12 @@
           return fieldOutputMessageName;
       }
   
  +    public WSIFPort getWSIFPort() {
  +        Trc.entry(this);
  +        Trc.exit(fieldPort);
  +        return fieldPort;
  +    }
  +    
       public boolean executeRequestResponseOperation(
           WSIFMessage input,
           WSIFMessage output,
  
  
  
  1.36      +7 -0      
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFOperation_ApacheSOAP.java
  
  Index: WSIFOperation_ApacheSOAP.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFOperation_ApacheSOAP.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- WSIFOperation_ApacheSOAP.java     18 Dec 2002 10:49:09 -0000      1.35
  +++ WSIFOperation_ApacheSOAP.java     13 Jan 2003 20:40:21 -0000      1.36
  @@ -104,6 +104,7 @@
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  +import org.apache.wsif.WSIFPort;
   import org.apache.wsif.WSIFResponseHandler;
   import org.apache.wsif.base.WSIFDefaultMessage;
   import org.apache.wsif.base.WSIFDefaultOperation;
  @@ -1431,6 +1432,12 @@
           wsdlOutParams = al;
       }
   
  +    public WSIFPort getWSIFPort() {
  +        Trc.entry(this);
  +        Trc.exit(portInstance);
  +        return portInstance;
  +    }
  +    
       /**
        * Tests if the currently executing request is an asynchronous request.
        * 
  
  
  
  1.39      +7 -0      
xml-axis-wsif/java/src/org/apache/wsif/providers/jms/WSIFOperation_Jms.java
  
  Index: WSIFOperation_Jms.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/jms/WSIFOperation_Jms.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- WSIFOperation_Jms.java    18 Dec 2002 13:53:25 -0000      1.38
  +++ WSIFOperation_Jms.java    13 Jan 2003 20:40:21 -0000      1.39
  @@ -83,6 +83,7 @@
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  +import org.apache.wsif.WSIFPort;
   import org.apache.wsif.WSIFRequest;
   import org.apache.wsif.WSIFResponse;
   import org.apache.wsif.WSIFResponseHandler;
  @@ -1005,6 +1006,12 @@
                return wsdlOutputParts;
        }
   
  +    public WSIFPort getWSIFPort() {
  +        Trc.entry(this);
  +        Trc.exit(fieldJmsPort);
  +        return fieldJmsPort;
  +    }
  +    
        public String deep() {
                String buff = "";
                try {
  
  
  
  1.7       +8 -0      
xml-axis-wsif/java/src/org/apache/wsif/providers/soap/soaprmi/WSIFOperation_SoapRMI.java
  
  Index: WSIFOperation_SoapRMI.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/soaprmi/WSIFOperation_SoapRMI.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- WSIFOperation_SoapRMI.java        7 Dec 2002 12:33:50 -0000       1.6
  +++ WSIFOperation_SoapRMI.java        13 Jan 2003 20:40:21 -0000      1.7
  @@ -79,6 +79,7 @@
   import org.apache.wsif.WSIFException;
   import org.apache.wsif.WSIFMessage;
   import org.apache.wsif.WSIFOperation;
  +import org.apache.wsif.WSIFPort;
   import org.apache.wsif.base.WSIFDefaultOperation;
   import org.apache.wsif.logging.Trc;
   import org.apache.wsif.providers.WSIFDynamicTypeMap;
  @@ -508,4 +509,11 @@
       public void setDynamicWSIFPort(WSIFPort_SoapRMI value) {
           portInstance = value;
       }
  +
  +    public WSIFPort getWSIFPort() {
  +        Trc.entry(this);
  +        Trc.exit(portInstance);
  +        return portInstance;
  +    }
  +    
   }
  
  
  


Reply via email to