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 ch...@apache.org on 2005/06/20 07:06:47 UTC
svn commit: r191394 - in /webservices/axis/trunk/java/modules:
addressing/src/org/apache/axis/handlers/addressing/
addressing/test-resources/
addressing/test/org/apache/axis/handlers/addressing/
core/src/org/apache/axis/addressing/ core/src/org/apache/...
Author: chinthaka
Date: Sun Jun 19 22:06:45 2005
New Revision: 191394
URL: http://svn.apache.org/viewcvs?rev=191394&view=rev
Log:
Adding WSA Final Support for Axis2. Currently this supports for incoming messages only. WSA Final support for outgoing messages will be added soon.
Added:
webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java
Modified:
webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java
webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java
webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml
webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java
webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java
Added: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java?rev=191394&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java (added)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java Sun Jun 19 22:06:45 2005
@@ -0,0 +1,36 @@
+package org.apache.axis.handlers.addressing;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * author : Eran Chinthaka (chinthaka@apache.org)
+ */
+
+public class AddressingException extends Exception {
+ public AddressingException() {
+ }
+
+ public AddressingException(String message) {
+ super(message);
+ }
+
+ public AddressingException(Throwable cause) {
+ super(cause);
+ }
+
+ public AddressingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Modified: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java Sun Jun 19 22:06:45 2005
@@ -17,6 +17,7 @@
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Iterator;
+
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
@@ -40,13 +41,14 @@
* Date: May 10, 2005
* Time: 11:53:20 AM
*/
-public class AddressingInHandler extends AbstractHandler {
+public class AddressingInHandler extends AbstractHandler implements AddressingConstants {
/**
* Eran Chinthaka (chinthaka@apache.org) Date : 03-04-2005 Time : 14:42
*/
// this parameter has to be set by the module deployer.
private boolean isAddressingOptional = true;
+ private String addressingNamespace = null;
private Log logger = LogFactory.getLog(getClass());
@@ -54,25 +56,68 @@
public void invoke(MessageContext msgContext) throws AxisFault {
logger.debug("Starting Addressing IN Handler .........");
SOAPHeader header = msgContext.getEnvelope().getHeader();
- if(header == null){
+ if (header == null) {
return;
}
- ArrayList addressingHeaders = header.getHeaderBolcksWithNSURI(AddressingConstants.WSA_NAMESPACE);
- if (addressingHeaders != null) {
- extractAddressingInformationFromHeaders(header, msgContext.getMessageInformationHeaders(),addressingHeaders);
- } else {
- // no addressing headers present
- if(!isAddressingOptional){
- throw new AxisFault("Addressing Handlers should present, but doesn't present in the incoming message !!");
+ ArrayList addressingHeaders = null;
+ try {
+ addressingHeaders = header.getHeaderBolcksWithNSURI(Submission.WSA_NAMESPACE);
+ if (addressingHeaders != null) {
+ addressingNamespace = Submission.WSA_NAMESPACE;
+ extractAddressingSubmissionInformationFromHeaders(header, msgContext.getMessageInformationHeaders(), addressingHeaders);
+ } else {
+ addressingHeaders = header.getHeaderBolcksWithNSURI(Final.WSA_NAMESPACE);
+ if (addressingHeaders != null) {
+ addressingNamespace = Final.WSA_NAMESPACE;
+ extractAddressingFinalInformationFromHeaders(header, msgContext.getMessageInformationHeaders(), addressingHeaders);
+ extractReferenceParameters(header, msgContext.getMessageInformationHeaders());
+
+ } else {
+ // Addressing headers are not present in the SOAP message
+ if (!isAddressingOptional) {
+ throw new AxisFault("Addressing Handlers should present, but doesn't present in the incoming message !!");
+ }
+ logger.debug("No Addressing Headers present in the IN message. Addressing In Handler does nothing.");
+ }
}
- logger.debug("No Addressing Headers present in the IN message. Addressing In Handler does nothing.");
+ } catch (AddressingException e) {
+ logger.info("Exception occurred in Addressing Module");
+ throw new AxisFault(e);
}
+
+ }
+
+ /**
+ * WSA 1.0 specification mandates all the reference parameters to have a attribute as wsa:Type=parameter. So
+ * here this will check for header blocks with the above attribute and will put them in message information header collection
+ *
+ * @param header
+ * @param messageInformationHeaders
+ */
+ private void extractReferenceParameters(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeaders) {
+ Iterator headerBlocks = header.getChildren();
+ while (headerBlocks.hasNext()) {
+ SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) headerBlocks.next();
+ if (Final.WSA_TYPE_ATTRIBUTE_VALUE.equals(soapHeaderBlock.getFirstAttribute(new QName(Final.WSA_NAMESPACE, Final.WSA_TYPE_ATTRIBUTE)).getValue())) {
+ messageInformationHeaders.addReferenceParameter(soapHeaderBlock);
+ }
+ }
+ }
+
+ private void extractAddressingFinalInformationFromHeaders(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeaders, ArrayList addressingHeaders) throws AddressingException {
+ extractCommonAddressingParameters(header, messageInformationHeaders, addressingHeaders, Final.WSA_NAMESPACE);
+
+ }
+
+ private void extractAddressingSubmissionInformationFromHeaders(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeaders, ArrayList addressingHeaders) throws AddressingException {
+ extractCommonAddressingParameters(header, messageInformationHeaders, addressingHeaders, Submission.WSA_NAMESPACE);
+
}
- public MessageInformationHeadersCollection extractAddressingInformationFromHeaders(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeadersCollection,ArrayList addressingHeaders) {
- if(messageInformationHeadersCollection == null){
- messageInformationHeadersCollection = new MessageInformationHeadersCollection();
+ public MessageInformationHeadersCollection extractCommonAddressingParameters(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeadersCollection, ArrayList addressingHeaders, String addressingNamespace) {
+ if (messageInformationHeadersCollection == null) {
+ messageInformationHeadersCollection = new MessageInformationHeadersCollection();
}
Iterator addressingHeadersIt = addressingHeaders.iterator();
@@ -81,40 +126,40 @@
EndpointReference epr = null;
if (AddressingConstants.WSA_TO.equals(soapHeaderBlock.getLocalName())) {
epr = messageInformationHeadersCollection.getTo();
- if(epr == null){
- epr = new EndpointReference(AddressingConstants.WSA_TO, "");
+ if (epr == null) {
+ epr = new EndpointReference(AddressingConstants.WSA_TO, soapHeaderBlock.getText());
messageInformationHeadersCollection.setTo(epr);
}
- extractEPRInformation(soapHeaderBlock, epr);
} else if (AddressingConstants.WSA_FROM.equals(soapHeaderBlock.getLocalName())) {
epr = messageInformationHeadersCollection.getFrom();
- if(epr == null){
+ if (epr == null) {
epr = new EndpointReference(AddressingConstants.WSA_FROM, "");
messageInformationHeadersCollection.setFrom(epr);
}
- extractEPRInformation(soapHeaderBlock, epr);
+ extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
} else if (AddressingConstants.WSA_REPLY_TO.equals(soapHeaderBlock.getLocalName())) {
epr = messageInformationHeadersCollection.getReplyTo();
- if( epr == null){
+ if (epr == null) {
epr = new EndpointReference(AddressingConstants.WSA_REPLY_TO, "");
messageInformationHeadersCollection.setReplyTo(epr);
}
- extractEPRInformation(soapHeaderBlock, epr);
+ extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
} else if (AddressingConstants.WSA_FAULT_TO.equals(soapHeaderBlock.getLocalName())) {
epr = messageInformationHeadersCollection.getFaultTo();
- if( epr == null){
+ if (epr == null) {
epr = new EndpointReference(AddressingConstants.WSA_FAULT_TO, "");
messageInformationHeadersCollection.setTo(epr);
}
- extractEPRInformation(soapHeaderBlock, epr);
+ extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
} else if (AddressingConstants.WSA_MESSAGE_ID.equals(soapHeaderBlock.getLocalName())) {
messageInformationHeadersCollection.setMessageId(soapHeaderBlock.getText());
} else if (AddressingConstants.WSA_ACTION.equals(soapHeaderBlock.getLocalName())) {
messageInformationHeadersCollection.setAction(soapHeaderBlock.getText());
} else if (AddressingConstants.WSA_RELATES_TO.equals(soapHeaderBlock.getLocalName())) {
String address = soapHeaderBlock.getText();
- OMAttribute relationshipType = soapHeaderBlock.getFirstAttribute(new QName(AddressingConstants.WSA_NAMESPACE, AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE));
- RelatesTo relatesTo = new RelatesTo(address, relationshipType == null ? "wsa:Reply" : relationshipType.getValue());
+ OMAttribute relationshipType = soapHeaderBlock.getFirstAttribute(new QName(AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE));
+ String relationshipTypeDefaultValue = Submission.WSA_NAMESPACE.equals(addressingNamespace) ? Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE : Final.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE;
+ RelatesTo relatesTo = new RelatesTo(address, relationshipType == null ? relationshipTypeDefaultValue : relationshipType.getValue());
messageInformationHeadersCollection.setRelatesTo(relatesTo);
}
}
@@ -123,8 +168,8 @@
}
- private void extractEPRInformation(SOAPHeaderBlock headerBlock, EndpointReference epr) {
- OMElement address = headerBlock.getFirstChildWithName(new QName(AddressingConstants.WSA_NAMESPACE, AddressingConstants.EPR_ADDRESS));
+ private void extractEPRInformation(SOAPHeaderBlock headerBlock, EndpointReference epr, String addressingNamespace) {
+ OMElement address = headerBlock.getFirstChildWithName(new QName(addressingNamespace, AddressingConstants.EPR_ADDRESS));
if (address != null) {
epr.setAddress(address.getText());
}
Modified: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java Sun Jun 19 22:06:45 2005
@@ -53,7 +53,7 @@
private boolean overrideINMessageInformation = false;
OMNamespace addressingNamespace =
- OMAbstractFactory.getSOAP11Factory().createOMNamespace(WSA_NAMESPACE, "wsa");
+ OMAbstractFactory.getSOAP11Factory().createOMNamespace(Submission.WSA_NAMESPACE, "wsa");
public void invoke(MessageContext msgContext) throws AxisFault {
@@ -68,7 +68,7 @@
EndpointReference epr = messageInformationHeaders.getTo();
if (epr != null) {
- addToSOAPHeader(epr, AddressingConstants.WSA_TO, soapHeader);
+ processStringInfo(epr.getAddress(), AddressingConstants.WSA_TO, soapHeader);
}
String action = messageInformationHeaders.getAction();
@@ -105,7 +105,7 @@
if (relatesToHeader != null)
if ("".equals(relatesTo.getRelationshipType())) {
relatesToHeader.addAttribute(WSA_RELATES_TO_RELATIONSHIP_TYPE,
- WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE,
+ Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE,
addressingNamespace);
} else {
relatesToHeader.addAttribute(WSA_RELATES_TO_RELATIONSHIP_TYPE,
@@ -147,10 +147,10 @@
}
- QName portType = epr.getPortType();
+ QName portType = epr.getInterfaceName();
if (portType != null) {
SOAPHeaderBlock soapHeaderBlock =
- soapHeader.addHeaderBlock(EPR_PORT_TYPE, addressingNamespace);
+ soapHeader.addHeaderBlock(Submission.EPR_PORT_TYPE, addressingNamespace);
soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(portType.getPrefix() + ":" + portType.getLocalPart()));
}
@@ -159,8 +159,8 @@
SOAPHeaderBlock soapHeaderBlock =
soapHeader.addHeaderBlock(EPR_SERVICE_NAME,
addressingNamespace);
- soapHeaderBlock.addAttribute(EPR_SERVICE_NAME_PORT_NAME,
- serviceName.getPortName(),
+ soapHeaderBlock.addAttribute(Submission.EPR_SERVICE_NAME_PORT_NAME,
+ serviceName.getEndpointName(),
addressingNamespace);
soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(serviceName.getName().getPrefix()
+ ":"
Modified: webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml (original)
+++ webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml Sun Jun 19 22:06:45 2005
@@ -3,9 +3,7 @@
<wsa:From>
<wsa:Address>http://www.from.org/service/</wsa:Address>
</wsa:From>
- <wsa:To>
- <wsa:Address>http://www.to.org/service/</wsa:Address>
- </wsa:To>
+ <wsa:To>http://www.to.org/service/</wsa:To>
<wsa:MessageID>123456-7890</wsa:MessageID>
<soapenv:Reference4>Value 400</soapenv:Reference4>
<soapenv:Reference1>Value 100</soapenv:Reference1>
Modified: webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java (original)
+++ webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java Sun Jun 19 22:06:45 2005
@@ -58,7 +58,7 @@
SOAPHeader header = ((SOAPEnvelope) omBuilder.getDocumentElement()).getHeader();
MessageInformationHeadersCollection messageInformationHeadersCollection =
- inHandler.extractAddressingInformationFromHeaders(header, null,header.getHeaderBolcksWithNSURI(AddressingConstants.WSA_NAMESPACE));
+ inHandler.extractCommonAddressingParameters(header, null,header.getHeaderBolcksWithNSURI(AddressingConstants.Submission.WSA_NAMESPACE), AddressingConstants.Submission.WSA_NAMESPACE);
if(messageInformationHeadersCollection == null){
fail("Addressing Information Headers have not been retrieved properly");
Modified: webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java (original)
+++ webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java Sun Jun 19 22:06:45 2005
@@ -54,7 +54,7 @@
public void testAddToSOAPHeader() throws Exception {
EndpointReference epr = new EndpointReference(WSA_FROM, "http://www.from.org/service/");
- epr.setPortType(new QName("http://www.from.org/service/port/", "Port", "portNS"));
+ epr.setInterfaceName(new QName("http://www.from.org/service/port/", "Port", "portNS"));
epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
AnyContentType anyContentType = new AnyContentType();
@@ -67,7 +67,7 @@
SOAPEnvelope defaultEnvelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
- defaultEnvelope.getHeader().declareNamespace(WSA_NAMESPACE, "wsa");
+ defaultEnvelope.getHeader().declareNamespace(Submission.WSA_NAMESPACE, "wsa");
outHandler.addToSOAPHeader(epr, WSA_FROM, defaultEnvelope.getHeader());
StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder("eprTest.xml");
@@ -86,16 +86,15 @@
mIHeaders.setFrom(epr);
epr = new EndpointReference(WSA_TO, "http://www.to.org/service/");
- referenceValues = new AnyContentType();
- referenceValues.addReferenceValue(new QName("Reference1"), "Value 100");
- epr.setReferenceProperties(referenceValues);
- epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
mIHeaders.setTo(epr);
epr = new EndpointReference(WSA_REPLY_TO, "http://www.replyTo.org/service/");
referenceValues = new AnyContentType();
+ referenceValues.addReferenceValue(new QName("Reference1"), "Value 100");
+ epr.setReferenceProperties(referenceValues);
+ epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
referenceValues.addReferenceValue(new QName("Reference3"), "Value 300");
- epr.setPortType(new QName("http://www.from.org/service/port/", "Port", "portNS"));
+ epr.setInterfaceName(new QName("http://www.from.org/service/port/", "Port", "portNS"));
epr.setReferenceProperties(referenceValues);
referenceValues = new AnyContentType();
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java Sun Jun 19 22:06:45 2005
@@ -15,63 +15,58 @@
*/
package org.apache.axis.addressing;
+import javax.xml.namespace.QName;
+
/**
* Interface AddressingConstants
*/
public interface AddressingConstants {
- public static final String WSA_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
-
- /**
- * Field WSA_MESSAGE_ID
- */
+ // ====================== Common Message Addressing Properties ===================
public static final String WSA_MESSAGE_ID = "MessageID";
-
- /**
- * Field WSA_RELATES_TO
- */
public static final String WSA_RELATES_TO = "RelatesTo";
-
- /**
- * Field WSA_RELATES_TO_RELATIONSHIP_TYPE
- */
- public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE =
- "RelationshipType";
-
- public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE =
- "wsa:Reply";
-
- /**
- * Field WSA_TO
- */
+ public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE = "RelationshipType";
public static final String WSA_TO = "To";
-
- /**
- * Field WSA_ACTION
- */
- public static final String WSA_ACTION = "Action";
-
- /**
- * Field WSA_FROM
- */
public static final String WSA_FROM = "From";
-
- /**
- * Field WSA_REPLY_TO
- */
public static final String WSA_REPLY_TO = "ReplyTo";
-
- /**
- * Field WSA_FAULT_TO
- */
public static final String WSA_FAULT_TO = "FaultTo";
+ public static final String WSA_ACTION = "Action";
+ // ====================== Common EPR Elements ============================
public static final String EPR_ADDRESS = "Address";
- public static final String EPR_REFERENCE_PROPERTIES = "ReferenceProperties";
public static final String EPR_REFERENCE_PARAMETERS = "ReferenceParameters";
- public static final String EPR_PORT_TYPE = "PortType";
public static final String EPR_SERVICE_NAME = "ServiceName";
- public static final String EPR_SERVICE_NAME_PORT_NAME = "PortName";
-
- public static final String EPR_ANONYMOUS_URL = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous";
+
+ // ======================================================================
+
+ public interface Submission {
+ // ====================== Addressing Submission Version Constants ===================
+ public static final String WSA_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
+ public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE = "wsa:Reply";
+ public static final String WSA_ANONYMOUS_URL = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous";
+
+ public static final String EPR_REFERENCE_PROPERTIES = "ReferenceProperties";
+ public static final String EPR_PORT_TYPE = "PortType";
+ public static final String EPR_SERVICE_NAME_PORT_NAME = "PortName";
+ // ==================================================================================
+
+ }
+
+ public interface Final {
+ // ====================== Addressing 1.0 Final Version Constants ====================
+ public static final String WSA_NAMESPACE = "http://www.w3.org/2005/02/addressing";
+ public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE = "http://www.w3.org/2005/02/addressing/reply";
+ public static final String WSA_ANONYMOUS_URL = "http://www.w3.org/2005/02/addressing/role/anonymous";
+
+ public static final String WSA_TYPE_ATTRIBUTE = "Type";
+ public static final String WSA_TYPE_ATTRIBUTE_VALUE = "parameter";
+
+ public static final String WSA_INTERFACE_NAME = "InterfaceName";
+ public static final String WSA_SERVICE_NAME_ENDPOINT_NAME = "EndpointName";
+ public static final String WSA_POLICIES = "Policies";
+ // ==================================================================================
+
+ }
+
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java Sun Jun 19 22:06:45 2005
@@ -15,6 +15,8 @@
*/
package org.apache.axis.addressing;
+import org.apache.axis.om.OMElement;
+
import javax.xml.namespace.QName;
/**
@@ -36,9 +38,9 @@
private String address;
/**
- * Field portType
+ * Field interfaceName
*/
- private QName portType;
+ private QName interfaceName;
/**
* Field referenceProperties
@@ -55,6 +57,8 @@
*/
private ServiceName serviceName;
+ private OMElement policies;
+
/**
* @param messageInformationHeaderType this can be one of the followings
* AddressingConstants.WSA_FROM
@@ -106,21 +110,21 @@
}
/**
- * Method getPortType
+ * Method getInterfaceName
*
* @return
*/
- public QName getPortType() {
- return portType;
+ public QName getInterfaceName() {
+ return interfaceName;
}
/**
- * Method setPortType
+ * Method setInterfaceName
*
- * @param portType
+ * @param interfaceName
*/
- public void setPortType(QName portType) {
- this.portType = portType;
+ public void setInterfaceName(QName interfaceName) {
+ this.interfaceName = interfaceName;
}
/**
@@ -176,4 +180,14 @@
public void setServiceName(ServiceName serviceName) {
this.serviceName = serviceName;
}
+
+ public OMElement getPolicies() {
+ return policies;
+ }
+
+ public void setPolicies(OMElement policies) {
+ this.policies = policies;
+ }
+
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java Sun Jun 19 22:06:45 2005
@@ -17,6 +17,9 @@
import org.apache.axis.addressing.miheaders.RelatesTo;
import org.apache.axis.soap.SOAPHeader;
+import org.apache.axis.om.OMElement;
+
+import java.util.ArrayList;
/**
* This holds the WSA Message Information Headers
@@ -58,6 +61,8 @@
*/
private String messageId;
+ private ArrayList referenceParameters;
+
/**
* Addressing Header MUST have a to and an action
@@ -213,6 +218,21 @@
public void setRelatesTo(RelatesTo relatesTo) {
this.relatesTo = relatesTo;
+ }
+
+ public ArrayList getReferenceParameters() {
+ return referenceParameters;
+ }
+
+ public void setReferenceParameters(ArrayList referenceParameters) {
+ this.referenceParameters = referenceParameters;
+ }
+
+ public void addReferenceParameter(OMElement referenceParameter){
+ if(referenceParameters == null){
+ referenceParameters = new ArrayList(5);
+ }
+ referenceParameters.add(referenceParameter);
}
// --------------------------------------------------------------------------------------------
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java Sun Jun 19 22:06:45 2005
@@ -27,9 +27,9 @@
private QName name;
/**
- * Field portName
+ * Field endpointName
*/
- private String portName;
+ private String endpointName;
/**
* @param name
@@ -44,7 +44,7 @@
*/
public ServiceName(QName name, String portName) {
this.name = name;
- this.portName = portName;
+ this.endpointName = portName;
}
/**
@@ -66,20 +66,20 @@
}
/**
- * Method getPortName
+ * Method getEndpointName
*
* @return
*/
- public String getPortName() {
- return portName;
+ public String getEndpointName() {
+ return endpointName;
}
/**
- * Method setPortName
+ * Method setEndpointName
*
- * @param portName
+ * @param endpointName
*/
- public void setPortName(String portName) {
- this.portName = portName;
+ public void setEndpointName(String endpointName) {
+ this.endpointName = endpointName;
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java Sun Jun 19 22:06:45 2005
@@ -27,7 +27,7 @@
/**
* Field relationshipType
*/
- private String relationshipType = "wsa:Reply";
+ private String relationshipType;
/**
* Constructor RelatesTo
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java Sun Jun 19 22:06:45 2005
@@ -51,7 +51,7 @@
messageInformationHeaders.setRelatesTo(
new RelatesTo(
oldMessageInfoHeaders.getMessageId(),
- AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE));
+ AddressingConstants.Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE));
newmsgCtx.setMessageInformationHeaders(messageInformationHeaders);
newmsgCtx.setOperationContext(messgeCtx.getOperationContext());
newmsgCtx.setServiceContext(messgeCtx.getServiceContext());
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java Sun Jun 19 22:06:45 2005
@@ -1,18 +1,18 @@
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package org.apache.axis.transport;
import java.io.OutputStream;
@@ -35,7 +35,7 @@
/**
* By the time this Class is invoked either the To EPR on the MessageContext should be set or
- * TRANSPORT_WRITER property set in the message Context with a Writer. This Class would write the
+ * TRANSPORT_WRITER property set in the message Context with a Writer. This Class would write the
* SOAPMessage using either of the methods in the order To then Writer.
*/
public abstract class AbstractTransportSender extends AbstractHandler implements TransportSender {
@@ -76,7 +76,8 @@
EndpointReference epr = null;
if (msgContext.getTo() != null
- && !AddressingConstants.EPR_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())) {
+ && !AddressingConstants.Submission.WSA_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())
+ && !AddressingConstants.Final.WSA_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())) {
epr = msgContext.getTo();
}
@@ -95,7 +96,7 @@
throw new AxisFault("Both the TO and Property MessageContext.TRANSPORT_WRITER is Null, No where to send");
}
}
- msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,Constants.VALUE_TRUE);
+ msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
}
public void writeMessage(MessageContext msgContext, OutputStream out) throws AxisFault {
@@ -123,17 +124,19 @@
}
public abstract void startSendWithToAddress(MessageContext msgContext, OutputStream out)
- throws AxisFault;
+ throws AxisFault;
+
public abstract void finalizeSendWithToAddress(MessageContext msgContext)
- throws AxisFault;
+ throws AxisFault;
+
+
+ public abstract void startSendWithOutputStreamFromIncomingConnection(MessageContext msgContext,
+ OutputStream out)
+ throws AxisFault;
+
+ public abstract void finalizeSendWithOutputStreamFromIncomingConnection(MessageContext msgContext)
+ throws AxisFault;
- public abstract void startSendWithOutputStreamFromIncomingConnection(
- MessageContext msgContext,
- OutputStream out)
- throws AxisFault;
- public abstract void finalizeSendWithOutputStreamFromIncomingConnection(
- MessageContext msgContext)
- throws AxisFault;
protected abstract OutputStream openTheConnection(EndpointReference epr) throws AxisFault;
}
Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java Sun Jun 19 22:06:45 2005
@@ -56,8 +56,8 @@
public void testGetAndSetPortType() {
QName portType = new QName("www.someport.com", "port");
- endpointReference.setPortType(portType);
- assertEquals("PortType not set/get properly", portType, endpointReference.getPortType());
+ endpointReference.setInterfaceName(portType);
+ assertEquals("PortType not set/get properly", portType, endpointReference.getInterfaceName());
}
public void testGetAndSetReferenceProperties() {
@@ -99,7 +99,7 @@
endpointReference.setServiceName(serviceName);
retrievedServiceName = endpointReference.getServiceName();
assertEquals("ServiceName name has not been get/set properly", serviceName.getName(), retrievedServiceName.getName());
- assertEquals("ServiceName portName has not been get/set properly", serviceName.getPortName(), retrievedServiceName.getPortName());
+ assertEquals("ServiceName portName has not been get/set properly", serviceName.getEndpointName(), retrievedServiceName.getEndpointName());
}
}