You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ga...@apache.org on 2004/11/08 19:26:21 UTC

cvs commit: ws-fx/addressing/src/org/apache/axis/message/addressing/tools/wsdl JavaAddressingServiceImplWriter.java

gawor       2004/11/08 10:26:21

  Modified:    addressing/src/org/apache/axis/message/addressing
                        Constants.java
               addressing/src/org/apache/axis/message/addressing/handler
                        AddressingHandler.java
               addressing/src/org/apache/axis/message/addressing/tools/wsdl
                        JavaAddressingServiceImplWriter.java
  Log:
  changed how the endpoint information is passed internally from the generated stub to the hander. fixes a problem where certain information would be reused for all operations/calls on the same stub
  
  Revision  Changes    Path
  1.10      +19 -10    ws-fx/addressing/src/org/apache/axis/message/addressing/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/addressing/src/org/apache/axis/message/addressing/Constants.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Constants.java	16 Oct 2004 18:27:46 -0000	1.9
  +++ Constants.java	8 Nov 2004 18:26:21 -0000	1.10
  @@ -176,44 +176,53 @@
       public static final QName QNAME_RESPONSE; 
   
       /**
  +     * Internal property for passing some WSA headers from
  +     * the generated Stub class to the handlers.
  +     */
  +    public static final String ENV_ADDRESSING_SHARED_HEADERS =
  +        "org.apache.axis.message.addressing.SHARED_HEADERS";
  +
  +    /**
        * Field ENV_ADDRESSING_REQUEST_HEADERS
        */
       public static final String ENV_ADDRESSING_REQUEST_HEADERS =
  -            "org.apache.axis.message.addressing.REQUEST.HEADERS";
  +        "org.apache.axis.message.addressing.REQUEST.HEADERS";
   
       /**
        * Field ENV_ADDRESSING_RESPONSE_HEADERS
        */
       public static final String ENV_ADDRESSING_RESPONSE_HEADERS =
  -            "org.apache.axis.message.addressing.RESPONSE.HEADERS";
  +        "org.apache.axis.message.addressing.RESPONSE.HEADERS";
       
       /**
        * Field ENV_ADDRESSING_FROM_URI
        */
       public static final String ENV_ADDRESSING_FROM_URI =
  -            "addressing.from.URI";
  +        "addressing.from.URI";
   
       /**
        * Field ENV_ADDRESSING_REPLYTO_URI
        */
       public static final String ENV_ADDRESSING_REPLYTO_URI =
  -            "addressing.replyTo.URI";
  -
  +        "addressing.replyTo.URI";
  +    
       /**
        * Field ENV_ADDRESSING_FAULTTO_URI
        */
       public static final String ENV_ADDRESSING_FAULTTO_URI =
  -            "addressing.faultTo.URI";
  -
  +        "addressing.faultTo.URI";
  +    
       /**
        * SOAP message context prop that expects a value of "true" or "false".
        */
  -    public static final String ENV_ADDRESSING_SET_MUST_UNDERSTAND = "addressing.setMustUnderstand";
  -
  +    public static final String ENV_ADDRESSING_SET_MUST_UNDERSTAND =
  +        "addressing.setMustUnderstand";
  +    
       /**
        * SOAP message context prop that expects a value of "true" or "false".
        */
  -    public static final String ENV_ADDRESSING_SEND_REPLYTO = "addressing.sendReplyTo";      
  +    public static final String ENV_ADDRESSING_SEND_REPLYTO =
  +        "addressing.sendReplyTo";      
   
       /**
        * Field QNAME_ACTION
  
  
  
  1.27      +41 -23    ws-fx/addressing/src/org/apache/axis/message/addressing/handler/AddressingHandler.java
  
  Index: AddressingHandler.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/addressing/src/org/apache/axis/message/addressing/handler/AddressingHandler.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- AddressingHandler.java	1 Aug 2004 18:37:49 -0000	1.26
  +++ AddressingHandler.java	8 Nov 2004 18:26:21 -0000	1.27
  @@ -207,23 +207,36 @@
       protected void processClientRequest(MessageContext msgContext,
                                           boolean setMustUnderstand)
           throws Exception {
  -        AddressingHeaders headers =
  +
  +        AddressingHeaders sharedHeaders =
               (AddressingHeaders) msgContext.getProperty(
  -                  Constants.ENV_ADDRESSING_REQUEST_HEADERS
  +                  Constants.ENV_ADDRESSING_SHARED_HEADERS
               );
  -        if (headers == null) {
  -            headers = new AddressingHeaders();
  -        }
  +
  +        AddressingHeaders headers = 
  +            AddressingUtils.getRequestHeaders(msgContext);
   
           headers.setSetMustUnderstand(setMustUnderstand);
   
  +        // set MessageID 
           if (headers.getMessageID() == null) {
  -            MessageID id = new MessageID(new URI("uuid:" + uuidGen.nextUUID()));
  +            MessageID id = 
  +                new MessageID(new URI("uuid:" + uuidGen.nextUUID()));
               headers.setMessageID(id);
           }
  -        if (headers.getTo() == null) {
  -            headers.setTo(new To(msgContext.getStrProp(MessageContext.TRANS_URL)));
  +
  +        // set To
  +        To to = headers.getTo();
  +        if (to == null) {
  +            if (sharedHeaders != null) {
  +                // To is always set in shared headers
  +                headers.setTo(sharedHeaders.getTo());
  +            } else {
  +                headers.setTo(new To(msgContext.getStrProp(MessageContext.TRANS_URL)));
  +            }
           }
  +        
  +        // set Action
           String action = msgContext.getSOAPActionURI();
           if (action != null) {
               headers.setAction(new Action(new URI(action)));
  @@ -233,39 +246,44 @@
               msgContext.setSOAPActionURI(headers.getAction().toString());
           }
           
  +        // set From
           if (headers.getFrom() == null) {
  -            if (msgContext
  -                    .containsProperty(Constants.ENV_ADDRESSING_FROM_URI)) {
  -                headers.setFrom(new EndpointReference(msgContext
  -                        .getStrProp(Constants.ENV_ADDRESSING_FROM_URI)));
  +            String from = 
  +                msgContext.getStrProp(Constants.ENV_ADDRESSING_FROM_URI);
  +            if (from != null) {
  +                headers.setFrom(new EndpointReference(from));
               } else {
                   headers.setFrom(new EndpointReference(
  -                        Constants.NS_URI_ANONYMOUS));
  +                                     Constants.NS_URI_ANONYMOUS));
               }
           }
   
  +        // set ReplyTo
           if (msgContext.isPropertyTrue(Constants.ENV_ADDRESSING_SEND_REPLYTO)) {
               if (headers.getReplyTo() == null) {
  -                if (msgContext
  -                        .containsProperty(Constants.ENV_ADDRESSING_REPLYTO_URI)) {
  -                    headers.setReplyTo(new EndpointReference(msgContext
  -                            .getStrProp(Constants.ENV_ADDRESSING_REPLYTO_URI)));
  +                String replyTo = msgContext.getStrProp(Constants.ENV_ADDRESSING_REPLYTO_URI);
  +                if (replyTo != null) {
  +                    headers.setReplyTo(new EndpointReference(replyTo));
                   } else {
                       headers.setReplyTo(headers.getFrom());
                   }
  -
               }
           }
           
  -        if (headers.getFaultTo() == null && msgContext
  -                .containsProperty(Constants.ENV_ADDRESSING_FAULTTO_URI)) {
  -            headers.setFaultTo(new EndpointReference(msgContext
  -                    .getStrProp(Constants.ENV_ADDRESSING_FAULTTO_URI)));
  +        // set FaultTo
  +        if (headers.getFaultTo() == null) {
  +            String faultTo = 
  +                msgContext.getStrProp(Constants.ENV_ADDRESSING_FAULTTO_URI);
  +            if (faultTo != null) {
  +                headers.setFaultTo(new EndpointReference(faultTo));
  +            }
           }
   
  +        if (sharedHeaders != null) {
  +            headers.setReferenceProperties(sharedHeaders.getReferenceProperties());
  +        }
           Message msg = msgContext.getRequestMessage();
           headers.toEnvelope(msg.getSOAPEnvelope(), this.actor);
  -        msgContext.setProperty(Constants.ENV_ADDRESSING_REQUEST_HEADERS, headers);
       }
   
       /**
  
  
  
  1.4       +1 -1      ws-fx/addressing/src/org/apache/axis/message/addressing/tools/wsdl/JavaAddressingServiceImplWriter.java
  
  Index: JavaAddressingServiceImplWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/addressing/src/org/apache/axis/message/addressing/tools/wsdl/JavaAddressingServiceImplWriter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JavaAddressingServiceImplWriter.java	28 Jul 2004 04:05:05 -0000	1.3
  +++ JavaAddressingServiceImplWriter.java	8 Nov 2004 18:26:21 -0000	1.4
  @@ -161,7 +161,7 @@
               pw.println("\t\t\tnew org.apache.axis.message.addressing.AddressingHeaders();");
               pw.println("\t\theaders.setTo(address);");
               pw.println("\t\theaders.setReferenceProperties(reference.getProperties());");
  -	    pw.println("\t\t((javax.xml.rpc.Stub)_stub)._setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS, headers);");
  +	    pw.println("\t\t((javax.xml.rpc.Stub)_stub)._setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_SHARED_HEADERS, headers);");
   	    pw.println("\t}");
   	    pw.println("\treturn _stub;");
               pw.println("    }");