Return-Path: Delivered-To: apmail-ws-axis-cvs-archive@www.apache.org Received: (qmail 42557 invoked from network); 16 Mar 2006 03:03:03 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 16 Mar 2006 03:03:03 -0000 Received: (qmail 16499 invoked by uid 500); 16 Mar 2006 03:03:02 -0000 Delivered-To: apmail-ws-axis-cvs-archive@ws.apache.org Received: (qmail 16408 invoked by uid 500); 16 Mar 2006 03:03:01 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 16397 invoked by uid 99); 16 Mar 2006 03:03:01 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Mar 2006 19:03:01 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 15 Mar 2006 19:02:59 -0800 Received: (qmail 42466 invoked by uid 65534); 16 Mar 2006 03:02:39 -0000 Message-ID: <20060316030239.42465.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r386245 - in /webservices/axis/trunk/proposals/dug/java: src/org/apache/axis/wsa/ test/functional/ Date: Thu, 16 Mar 2006 03:02:37 -0000 To: axis-cvs@ws.apache.org From: dug@apache.org X-Mailer: svnmailer-1.0.7 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: dug Date: Wed Mar 15 19:02:36 2006 New Revision: 386245 URL: http://svn.apache.org/viewcvs?rev=386245&view=rev Log: First pass at w3c version of WS-Addr Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/AxisEndpointReference.java webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/EndpointReference.java webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/MIHeader.java webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/RelatesToProperty.java webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAConstants.java webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAHandler.java webservices/axis/trunk/proposals/dug/java/test/functional/auto-deploy.wsdd Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/AxisEndpointReference.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/AxisEndpointReference.java?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/AxisEndpointReference.java (original) +++ webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/AxisEndpointReference.java Wed Mar 15 19:02:36 2006 @@ -27,22 +27,4 @@ super(epr); } -/* - public javax.xml.rpc.Call createCall() throws java.net.MalformedURLException, javax.xml.parsers.ParserConfigurationException { - org.apache.axis.client.Call ret = new org.apache.axis.client.Call(address); - - addSOAPHeaders(ret); - return ret; - } - - public void addSOAPHeaders(org.apache.axis.client.Call c) throws javax.xml.parsers.ParserConfigurationException { - - for (Iterator i = createWsaHeaderElements().iterator(); i.hasNext();) { - Element refNode = (Element) i.next(); - - c.addHeader(new SOAPHeaderElement(refNode)); - } - } - */ - } Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/EndpointReference.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/EndpointReference.java?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/EndpointReference.java (original) +++ webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/EndpointReference.java Wed Mar 15 19:02:36 2006 @@ -21,7 +21,9 @@ abstract public class EndpointReference implements Serializable { + protected static String staticNS = WSAConstants.NS_WSA ; + protected String namespace = staticNS ; protected String address = null; protected String portType = null; // QName protected String serviceName = null; // QName @@ -29,9 +31,6 @@ protected List referenceProperties = new java.util.LinkedList(); protected List referenceParameters = new java.util.LinkedList(); - private static EndpointReference AnonymousEPR = - EndpointReference.fromLocation( WSAConstants.Anonymous_Address ); - EndpointReference( final EndpointReference epr){ this.address = epr.address; this.portType = epr.portType; //rrfoo still missing from serializers! @@ -43,6 +42,22 @@ protected EndpointReference() {} + public void setWSAVersion( String ns) { + namespace = ns ; + } + + public String getWSAVersion() { + return namespace ; + } + + public static void setGlobalWSAVersion(String ns) { + staticNS = ns ; + } + + public static String getGlobalWSAVersion() { + return staticNS ; + } + public EndpointReference dup() throws Exception { EndpointReference newObj = (EndpointReference)this.getClass().newInstance(); newObj.setAddress( this.getAddress() ); @@ -77,12 +92,32 @@ return new AxisEndpointReference(); } + public static EndpointReference newInstance(String ns) { + EndpointReference epr = new AxisEndpointReference(); + epr.setWSAVersion( ns ); + return epr ; + } + public static EndpointReference Anonymous() throws Exception { - return AnonymousEPR.dup() ; + if ( staticNS.equals(WSAConstants.NS_WSA1) ) + return EndpointReference.fromLocation( staticNS + "/role/anonymous" ); + return EndpointReference.fromLocation( staticNS + "/anonymous" ); + } + + public static EndpointReference Anonymous(String ns) throws Exception { + if ( ns.equals(WSAConstants.NS_WSA1) ) + return EndpointReference.fromLocation( ns + "/role/anonymous" ); + return EndpointReference.fromLocation( ns + "/anonymous" ); } public boolean isAnonymous() { - return WSAConstants.Anonymous_Address.equals( this.address ); + if ( namespace.equals(WSAConstants.NS_WSA1) ) + return this.address.equals( namespace + "/role/anonymous" ); + return this.address.equals( namespace + "/anonymous" ); + } + + public boolean isNone() { + return this.address.equals( namespace + "/none" ); } /** @@ -95,45 +130,55 @@ */ public static EndpointReference fromDOM(Element el) throws Exception { EndpointReference er = new AxisEndpointReference(); - NodeList nl = el.getElementsByTagNameNS(WSAConstants.NS_WSA, "Address"); - if ( nl.getLength() == 0 ) { - String tmp = "Missing Address in EPR: " + XMLUtils.ElementToString(el); - throw new Exception( tmp ); - } - if (nl.item(0)!=null) { - er.setAddress(Util.getText((Element)nl.item(0))); - } - nl = el.getElementsByTagNameNS(WSAConstants.NS_WSA, "PortType"); - if (nl.item(0)!=null) { - er.setPortType(Util.getText((Element)nl.item(0))); - } - nl = el.getElementsByTagNameNS(WSAConstants.NS_WSA, "ServiceName"); - if (nl.item(0)!=null) { - Element child = (Element)nl.item(0); - er.setServiceName(Util.getText(child)); - er.setPortName(child.getAttributeNS(WSAConstants.NS_WSA, "PortName")); - } - nl = el.getElementsByTagNameNS(WSAConstants.NS_WSA, "ReferenceProperties"); - if (nl.item(0)!=null) { - nl = nl.item(0).getChildNodes(); - - for ( int i = 0 ; nl != null && i < nl.getLength() ; i++ ) { - Node n = nl.item(i); - if ( n.getNodeType() != Node.ELEMENT_NODE ) continue ; - n = n.cloneNode(true); - er.addReferenceProperty( XMLUtils.ElementToString((Element) n) ); + String NSs[] = new String[] { WSAConstants.NS_WSA1, WSAConstants.NS_WSA2 }; + + for ( int j = 0 ; j < NSs.length ; j++ ) { + String ns = NSs[j] ; + + NodeList nl = el.getElementsByTagNameNS(ns, "Address"); + if ( nl.item(0)!=null ) { + er.setAddress(Util.getText((Element)nl.item(0))); + er.setWSAVersion( ns ); } - } - nl = el.getElementsByTagNameNS(WSAConstants.NS_WSA, "ReferenceParameters"); - if (nl.item(0)!=null) { - nl = nl.item(0).getChildNodes(); - - for ( int i = 0 ; nl != null && i < nl.getLength() ; i++ ) { - Node n = nl.item(i); - if ( n.getNodeType() != Node.ELEMENT_NODE ) continue ; - n = n.cloneNode(true); - er.addReferenceParameter( XMLUtils.ElementToString((Element) n) ); + + nl = el.getElementsByTagNameNS(ns, "PortType"); + if (nl.item(0)!=null) + er.setPortType(Util.getText((Element)nl.item(0))); + + nl = el.getElementsByTagNameNS(ns, "ServiceName"); + if (nl.item(0)!=null) { + Element child = (Element)nl.item(0); + er.setServiceName(Util.getText(child)); + er.setPortName(child.getAttributeNS(ns, "PortName")); + } + + nl = el.getElementsByTagNameNS(ns, "ReferenceProperties"); + if (nl.item(0)!=null) { + nl = nl.item(0).getChildNodes(); + + for ( int i = 0 ; nl != null && i < nl.getLength() ; i++ ) { + Node n = nl.item(i); + if ( n.getNodeType() != Node.ELEMENT_NODE ) continue ; + n = n.cloneNode(true); + er.addReferenceProperty( XMLUtils.ElementToString((Element) n) ); + } } + + nl = el.getElementsByTagNameNS(ns, "ReferenceParameters"); + if (nl.item(0)!=null) { + nl = nl.item(0).getChildNodes(); + + for ( int i = 0 ; nl != null && i < nl.getLength() ; i++ ) { + Node n = nl.item(i); + if ( n.getNodeType() != Node.ELEMENT_NODE ) continue ; + n = n.cloneNode(true); + er.addReferenceParameter( XMLUtils.ElementToString((Element) n) ); + } + } + } + if ( er.getAddress() == null ) { + String tmp = "Missing Address in EPR: " + XMLUtils.ElementToString(el); + throw new Exception( tmp ); } return er ; } @@ -148,6 +193,12 @@ return new AxisEndpointReference(location); } + public static EndpointReference fromLocation(final String location,String ns){ + EndpointReference epr = new AxisEndpointReference(location); + epr.setWSAVersion( ns ); + return epr ; + } + /** * Method getAddress returns the address of the Service Endpoint.. * @return String @@ -196,40 +247,6 @@ portType = pt; } - protected java.util.List headers = null; - - protected synchronized List createWsaHeaderElements() throws javax.xml.parsers.ParserConfigurationException { - if (headers != null) return headers; - headers = new java.util.LinkedList(); - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - - dbf.setNamespaceAware(true); - dbf.setValidating(false); - - DocumentBuilder db = dbf.newDocumentBuilder(); - - Document ehrDoc = db.newDocument(); - Element child = ehrDoc.createElementNS(WSAConstants.NS_WSA, "To"); - - child.appendChild(ehrDoc.createTextNode(address)); - headers.add(child); - if (null != referenceProperties && !referenceProperties.isEmpty()) { - for (Iterator i = referenceProperties.iterator(); i.hasNext();) { - Node refNode = (Node) i.next(); - - headers.add(ehrDoc.importNode(refNode, true)); - } - } - if (null != referenceParameters && !referenceParameters.isEmpty()) { - for (Iterator i = referenceParameters.iterator(); i.hasNext();) { - Node refNode = (Node) i.next(); - - headers.add(ehrDoc.importNode(refNode, true)); - } - } - return headers; - } - public Element toDOM() throws javax.xml.parsers.ParserConfigurationException { return toDOM(null, null); } @@ -243,7 +260,6 @@ } public Element toDOM(String prefix, String ns, String name) throws javax.xml.parsers.ParserConfigurationException { - headers = new java.util.LinkedList(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); @@ -254,7 +270,7 @@ Document ehrDoc = db.newDocument(); Element rootChild = null; if (ns == null) { - rootChild = ehrDoc.createElementNS(WSAConstants.NS_WSA, "EndpointReference"); + rootChild = ehrDoc.createElementNS(namespace, "EndpointReference"); rootChild.setPrefix("wsa"); } else { rootChild = ehrDoc.createElementNS(ns, name); @@ -263,14 +279,14 @@ ehrDoc.appendChild( rootChild); // Address - Element child = ehrDoc.createElementNS(WSAConstants.NS_WSA, "Address"); + Element child = ehrDoc.createElementNS(namespace, "Address"); child.setPrefix("wsa"); child.appendChild(ehrDoc.createTextNode(address)); rootChild.appendChild(child); // PortType if (portType!=null) { - Element pt = ehrDoc.createElementNS(WSAConstants.NS_WSA, "PortType"); + Element pt = ehrDoc.createElementNS(namespace, "PortType"); pt.setPrefix("wsa"); pt.appendChild(ehrDoc.createTextNode(portType)); rootChild.appendChild(pt); @@ -278,10 +294,10 @@ // ServiceName if (serviceName!=null) { - Element sn = ehrDoc.createElementNS(WSAConstants.NS_WSA, "ServiceName"); + Element sn = ehrDoc.createElementNS(namespace, "ServiceName"); sn.setPrefix("wsa"); if (portName!=null) { - Attr attr = ehrDoc.createAttributeNS(WSAConstants.NS_WSA, "PortName"); + Attr attr = ehrDoc.createAttributeNS(namespace, "PortName"); attr.setValue(this.portName); sn.setAttributeNodeNS(attr); } @@ -290,21 +306,23 @@ } // Reference properties - if (null != referenceProperties && !referenceProperties.isEmpty()) { - Element refProp= ehrDoc.createElementNS(WSAConstants.NS_WSA, WSAConstants.EN_ReferenceProperties); - refProp.setPrefix("wsa"); - for (Iterator i = referenceProperties.iterator(); i.hasNext();) { - String refStr = (String) i.next(); - Element refNode = XMLUtils.StringToElement( refStr ); - - refProp.appendChild(ehrDoc.importNode(refNode, true)); - } - rootChild.appendChild(refProp); - } + if (namespace.equals(WSAConstants.NS_WSA1)) { + if (null != referenceProperties && !referenceProperties.isEmpty()) { + Element refProp= ehrDoc.createElementNS(namespace, WSAConstants.EN_ReferenceProperties); + refProp.setPrefix("wsa"); + for (Iterator i = referenceProperties.iterator(); i.hasNext();) { + String refStr = (String) i.next(); + Element refNode = XMLUtils.StringToElement( refStr ); + + refProp.appendChild(ehrDoc.importNode(refNode, true)); + } + rootChild.appendChild(refProp); + } + } // Reference parameters if (null != referenceParameters && !referenceParameters.isEmpty()) { - Element refProp= ehrDoc.createElementNS(WSAConstants.NS_WSA, WSAConstants.EN_ReferenceParameters); + Element refProp= ehrDoc.createElementNS(namespace, WSAConstants.EN_ReferenceParameters); refProp.setPrefix("wsa"); for (Iterator i = referenceParameters.iterator(); i.hasNext();) { String refStr = (String) i.next(); Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/MIHeader.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/MIHeader.java?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/MIHeader.java (original) +++ webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/MIHeader.java Wed Mar 15 19:02:36 2006 @@ -33,6 +33,7 @@ * create and read these headers to/from a message. */ public class MIHeader { + String namespace = EndpointReference.staticNS ; boolean requestMessage = false; String messageID = null ; @@ -60,7 +61,8 @@ // but it works. public String toString() { - return "{id:" + getMessageID()+ " to:" + getTo() + " from:" + getFrom() + + return "{ns: " + getWSAVersion() + " id:" + getMessageID()+ + " to:" + getTo() + " from:" + getFrom() + " replyTo:" + getReplyTo() + " faultTo:" + getFaultTo() + " action:" + getAction() + " toFault:" + getToFault() + "}" ; } @@ -96,6 +98,14 @@ setMessageID( "uuid:" + UUIDGenerator.getInstance().getUUID()); } + public void setWSAVersion(String ns) { + namespace = ns ; + } + + public String getWSAVersion() { + return namespace ; + } + public static MIHeader fromCurrentMessage() throws Exception { if ( MessageContext.getCurrentContext().getPastPivot() ) return fromResponse(); @@ -151,6 +161,7 @@ MIHeader newMIH = new MIHeader(); EndpointReference toEPR = getEffectiveReplyTo(); + newMIH.setWSAVersion( namespace ); newMIH.setFrom( to ); newMIH.setTo( toEPR ); newMIH.setToFault( faultTo ); @@ -162,78 +173,78 @@ public void fromEnvelope(SOAPEnvelope env) throws Exception { SOAPHeaderElement header = null ; + String NSs[] = { WSAConstants.NS_WSA1, WSAConstants.NS_WSA2 }; - header = env.getHeaderByName(WSAConstants.NS_WSA, "MessageID"); - if ( header != null ) { - messageID = Util.getText( header.getAsDOM() ); - if ( processedOnGet ) header.setProcessed(true); - if ( removeOnGet ) env.removeHeader( header ); - } - else messageID = null ; - - header = env.getHeaderByName(WSAConstants.NS_WSA, "To"); - if ( header != null ) { - to = EndpointReference.fromLocation( Util.getText( header.getAsDOM() ) ); - if ( processedOnGet ) header.setProcessed(true); - if ( removeOnGet ) env.removeHeader( header ); - } - else to = null ; - - header = env.getHeaderByName(WSAConstants.NS_WSA, "Action"); - if ( header != null ) { - action = Util.getText( header.getAsDOM() ); - if ( processedOnGet ) header.setProcessed(true); - if ( removeOnGet ) env.removeHeader( header ); - } - else action = null ; - - header = env.getHeaderByName(WSAConstants.NS_WSA, "From"); - if ( header != null ) { - from = EndpointReference.fromDOM( header.getAsDOM() ); - if ( processedOnGet ) header.setProcessed(true); - if ( removeOnGet ) env.removeHeader( header ); - } - else from = null ; + for ( int i = 0 ; i < NSs.length ; i++ ) { + String ns = NSs[i]; - header = env.getHeaderByName(WSAConstants.NS_WSA, "ReplyTo"); - if ( header != null ) { - replyTo = EndpointReference.fromDOM( header.getAsDOM() ); - if ( processedOnGet ) header.setProcessed(true); - if ( removeOnGet ) env.removeHeader( header ); - } - else replyTo = null ; + header = env.getHeaderByName(ns, "MessageID"); + if ( header != null ) { + messageID = Util.getText( header.getAsDOM() ); + if ( processedOnGet ) header.setProcessed(true); + if ( removeOnGet ) env.removeHeader( header ); + } + + header = env.getHeaderByName(ns, "To"); + if ( header != null ) { + to = EndpointReference.fromLocation( Util.getText( header.getAsDOM() ), + ns); + if ( processedOnGet ) header.setProcessed(true); + if ( removeOnGet ) env.removeHeader( header ); + namespace = ns ; + } + + header = env.getHeaderByName(ns, "Action"); + if ( header != null ) { + action = Util.getText( header.getAsDOM() ); + if ( processedOnGet ) header.setProcessed(true); + if ( removeOnGet ) env.removeHeader( header ); + } + + header = env.getHeaderByName(ns, "From"); + if ( header != null ) { + from = EndpointReference.fromDOM( header.getAsDOM() ); + if ( processedOnGet ) header.setProcessed(true); + if ( removeOnGet ) env.removeHeader( header ); + } - Enumeration enum = env.getHeadersByName(WSAConstants.NS_WSA, "RelatesTo"); - if ( enum.hasMoreElements() ) { - relatesTo = new Vector(); - while ( enum.hasMoreElements() ) { - header = (SOAPHeaderElement) enum.nextElement(); - String type = header.getAttributeValue(new org.apache.axis.message.PrefixedQName("","RelationshipType", "")); - String uri = header.getValue(); - relatesTo.add(new RelatesToProperty(uri, type)); + header = env.getHeaderByName(ns, "ReplyTo"); + if ( header != null ) { + replyTo = EndpointReference.fromDOM( header.getAsDOM() ); if ( processedOnGet ) header.setProcessed(true); if ( removeOnGet ) env.removeHeader( header ); } - } - else relatesTo = null ; + + Enumeration enum = env.getHeadersByName(ns, "RelatesTo"); + if ( enum.hasMoreElements() ) { + relatesTo = new Vector(); + while ( enum.hasMoreElements() ) { + header = (SOAPHeaderElement) enum.nextElement(); + String type = header.getAttributeValue(new org.apache.axis.message.PrefixedQName("","RelationshipType", "")); + String uri = header.getValue(); + relatesTo.add(new RelatesToProperty(uri, type)); + if ( processedOnGet ) header.setProcessed(true); + if ( removeOnGet ) env.removeHeader( header ); + } + } - header = env.getHeaderByName(WSAConstants.NS_WSA, "FaultTo"); - if ( header != null ) { - faultTo = EndpointReference.fromDOM( header.getAsDOM() ); - if ( processedOnGet ) header.setProcessed(true); - if ( removeOnGet ) env.removeHeader( header ); + header = env.getHeaderByName(ns, "FaultTo"); + if ( header != null ) { + faultTo = EndpointReference.fromDOM( header.getAsDOM() ); + if ( processedOnGet ) header.setProcessed(true); + if ( removeOnGet ) env.removeHeader( header ); + } } - else faultTo = null ; } public void toEnvelope(SOAPEnvelope env) throws Exception { SOAPHeaderElement header = null ; if ( env.getNamespaceURI("wsa") == null ) - env.addNamespaceDeclaration("wsa", WSAConstants.NS_WSA ); + env.addNamespaceDeclaration("wsa", namespace ); if ( messageID != null ) { - header = new SOAPHeaderElement( WSAConstants.NS_WSA, "MessageID" ); + header = new SOAPHeaderElement( namespace, "MessageID" ); header.setActor( null ); header.addTextNode(messageID); header.setMustUnderstand(mustUnderstand); @@ -241,28 +252,34 @@ } if ( to != null ) { - header = new SOAPHeaderElement( WSAConstants.NS_WSA, "To" ); + header = new SOAPHeaderElement( namespace, "To" ); header.setActor( null ); header.addTextNode( to.getAddress() ); header.setMustUnderstand(mustUnderstand); env.addHeader(header); - List refProps = to.getReferenceProperties(); - if ( refProps != null ) { - for ( int i = 0 ; i < refProps.size() ; i++ ) { - String elem = (String) refProps.get(i); - SOAPHeaderElement h1 = - new SOAPHeaderElement(XMLUtils.StringToElement(elem)); - h1.setActor( null ); - h1.setMustUnderstand(mustUnderstand); - env.addHeader( h1 ); + + if ( namespace.equals(WSAConstants.NS_WSA1) ) { + List refProps = to.getReferenceProperties(); + if ( refProps != null ) { + for ( int i = 0 ; i < refProps.size() ; i++ ) { + String elem = (String) refProps.get(i); + SOAPHeaderElement h1 = + new SOAPHeaderElement(XMLUtils.StringToElement(elem)); + h1.setActor( null ); + h1.setMustUnderstand(mustUnderstand); + env.addHeader( h1 ); + } } } + List refParams = to.getReferenceParameters(); if ( refParams != null ) { for ( int i = 0 ; i < refParams.size() ; i++ ) { String elem = (String) refParams.get(i); SOAPHeaderElement h1 = new SOAPHeaderElement(XMLUtils.StringToElement(elem)); + if ( namespace.equals(WSAConstants.NS_WSA2) ) + h1.addAttribute(namespace, "IsReferenceParameter", "true"); h1.setActor( null ); h1.setMustUnderstand(mustUnderstand); env.addHeader( h1 ); @@ -271,7 +288,7 @@ } if ( action != null ) { - header = new SOAPHeaderElement( WSAConstants.NS_WSA, "Action" ); + header = new SOAPHeaderElement( namespace, "Action" ); header.setActor( null ); header.addTextNode( action ); header.setMustUnderstand(mustUnderstand); @@ -279,14 +296,14 @@ } if ( from != null ) { - header = new SOAPHeaderElement(from.toDOM("wsa",WSAConstants.NS_WSA, "From")); + header = new SOAPHeaderElement(from.toDOM("wsa",namespace, "From")); header.setActor( null ); header.setMustUnderstand(mustUnderstand); env.addHeader(header); } if ( replyTo != null ) { - header = new SOAPHeaderElement(replyTo.toDOM("wsa", WSAConstants.NS_WSA, + header = new SOAPHeaderElement(replyTo.toDOM("wsa", namespace, "ReplyTo")); header.setActor( null ); header.setMustUnderstand(mustUnderstand); @@ -296,7 +313,7 @@ if ( relatesTo != null ) { for ( int i = 0 ; i < relatesTo.size() ; i++ ) { RelatesToProperty rtp = (RelatesToProperty) relatesTo.get(i); - header = new SOAPHeaderElement( WSAConstants.NS_WSA, "RelatesTo" ); + header = new SOAPHeaderElement( namespace, "RelatesTo" ); header.setActor( null ); if ( rtp.getType() != null && !"wsa:Reply".equals(rtp.getType()) ) { header.setAttribute("", "RelationshipType", rtp.getType() ); @@ -308,7 +325,7 @@ } if ( faultTo != null ) { - header = new SOAPHeaderElement(faultTo.toDOM("wsa", WSAConstants.NS_WSA, + header = new SOAPHeaderElement(faultTo.toDOM("wsa", namespace, "FaultTo")); header.setActor( null ); header.setMustUnderstand(mustUnderstand); @@ -353,12 +370,10 @@ relatesTo.add( new RelatesToProperty(uri, type) ); } - /*public void addRelatesToProperty(RelatesToProperty rtp) { - relatesTo.add(rtp); - } */ - public EndpointReference getTo() { return to ; } - public void setTo(String _to) { to = EndpointReference.fromLocation(_to) ; } + public void setTo(String _to) { + to = EndpointReference.fromLocation(_to,namespace) ; + } public void setTo(EndpointReference epr) { to = epr ; } public String getAction() { return action ; } @@ -376,10 +391,10 @@ public EndpointReference getToFault(){ return toFault ; } public void setToFault(EndpointReference epr) {this.toFault=epr;} - public EndpointReference getEffectiveReplyTo() { + public EndpointReference getEffectiveReplyTo() throws Exception { if ( replyTo != null ) return getReplyTo(); if ( from != null ) return getFrom(); - return EndpointReference.fromLocation(WSAConstants.Anonymous_Address); + return EndpointReference.Anonymous( namespace ); } } Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/RelatesToProperty.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/RelatesToProperty.java?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/RelatesToProperty.java (original) +++ webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/RelatesToProperty.java Wed Mar 15 19:02:36 2006 @@ -15,9 +15,9 @@ this.type = type; } - static RelatesToProperty newInstance(Element el) { + static RelatesToProperty newInstance(Element el, String namespace) { String uri = Util.getText(el); - String type = el.getAttributeNS(WSAConstants.NS_WSA, "RelationshipType"); + String type = el.getAttributeNS(namespace, "RelationshipType"); RelatesToProperty rp = new RelatesToProperty(uri, type); return rp; } Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAConstants.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAConstants.java?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAConstants.java (original) +++ webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAConstants.java Wed Mar 15 19:02:36 2006 @@ -3,30 +3,17 @@ import javax.xml.namespace.QName; public interface WSAConstants { - public final String NS_WSA = "http://schemas.xmlsoap.org/ws/2004/08/addressing"; + public final String NS_WSA1 = "http://schemas.xmlsoap.org/ws/2004/08/addressing"; + public final String NS_WSA2 = "http://www.w3.org/2005/08/addressing"; + public final String NS_WSA = NS_WSA1 ; public final String EN_EndpointReference = "EndpointReference"; - public final QName QN_EndpointReference = new QName(NS_WSA, EN_EndpointReference); public final String EN_Address = "Address"; - public final QName QN_Address = new QName(NS_WSA, EN_Address); - public final String EN_ReferenceProperties = "ReferenceProperties"; - public final QName QN_ReferenceProperties = new QName(NS_WSA, EN_ReferenceProperties); - public final String EN_ReferenceParameters = "ReferenceParameters"; - public final QName QN_ReferenceParameters = new QName(NS_WSA, EN_ReferenceParameters); - public final String EN_PortType = "PortType"; - public final QName QN_PortType = new QName(NS_WSA, EN_PortType); - public final String EN_ServiceName = "ServiceName"; - public final QName QN_ServiceName = new QName(NS_WSA, EN_ServiceName); - public final String EN_Policy = "Policy"; - public final QName QN_Policy = new QName(NS_WSA, EN_Policy); - - public final String Anonymous_Address = NS_WSA + "/role/anonymous" ; - public final String Fault_URI = NS_WSA + "/fault" ; public final String OUTBOUND_MIH = "org.apache.axis.wsa.outboundMIH" ; public final String INBOUND_MIH = "org.apache.axis.wsa.inboundMIH" ; Modified: webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAHandler.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAHandler.java?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAHandler.java (original) +++ webservices/axis/trunk/proposals/dug/java/src/org/apache/axis/wsa/WSAHandler.java Wed Mar 15 19:02:36 2006 @@ -167,7 +167,7 @@ msg = msgContext.getResponseMessage(); - if ( msg==null || to==null || to.equals(WSAConstants.Anonymous_Address) ) + if ( msg==null || to==null || resMIH.getTo().isAnonymous() ) return ; Vector relates = (Vector) resMIH.getRelatesTo(); @@ -203,8 +203,11 @@ static public void fixAction(MessageContext msgContext) throws Exception { MIHeader resMI = MIHeader.fromResponse(); - if ( resMI != null ) - resMI.setAction( WSAConstants.Fault_URI ); - msgContext.setSOAPActionURI( WSAConstants.Fault_URI ); + if ( resMI != null ) { + resMI.setAction( resMI.getWSAVersion() + "/fault" ); + msgContext.setSOAPActionURI( resMI.getAction() ); + } + else + msgContext.setSOAPActionURI( EndpointReference.staticNS + "/fault" ); } } Modified: webservices/axis/trunk/proposals/dug/java/test/functional/auto-deploy.wsdd URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/proposals/dug/java/test/functional/auto-deploy.wsdd?rev=386245&r1=386244&r2=386245&view=diff ============================================================================== --- webservices/axis/trunk/proposals/dug/java/test/functional/auto-deploy.wsdd (original) +++ webservices/axis/trunk/proposals/dug/java/test/functional/auto-deploy.wsdd Wed Mar 15 19:02:36 2006 @@ -5,6 +5,15 @@ + + + + + + + + +