You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/12/14 11:22:10 UTC
svn commit: r487160 - in /webservices/axis2/trunk/java/modules/kernel:
src/org/apache/axis2/addressing/EndpointReference.java
src/org/apache/axis2/addressing/EndpointReferenceHelper.java
test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java
Author: davidillsley
Date: Thu Dec 14 02:22:09 2006
New Revision: 487160
URL: http://svn.apache.org/viewvc?view=rev&rev=487160
Log:
Add support for EndpointReference Address element attributes per the addressing schema
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReference.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java
webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReference.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReference.java?view=diff&rev=487160&r1=487159&r2=487160
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReference.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReference.java Thu Dec 14 02:22:09 2006
@@ -57,6 +57,7 @@
private String name;
private String address;
+ private ArrayList addressAttributes;
private ArrayList metaData;
private Map referenceParameters;
private ArrayList extensibleElements;
@@ -119,6 +120,14 @@
this.address = address;
}
+ public ArrayList getAddressAttributes(){
+ return addressAttributes;
+ }
+
+ public void setAddressAttributes(ArrayList al){
+ addressAttributes = al;
+ }
+
/**
* hasAnonymousAddress
*
@@ -266,7 +275,19 @@
* @deprecated use {@link org.apache.axis2.addressing.EndpointReferenceHelper#fromOM(OMElement)} instead.
*/
public void fromOM(OMElement eprOMElement) {
- setAddress(eprOMElement.getFirstChildWithName(new QName("Address")).getText());
+ OMElement addressElement = eprOMElement.getFirstChildWithName(new QName("Address"));
+ setAddress(addressElement.getText());
+ Iterator allAddrAttributes = addressElement.getAllAttributes();
+ if (addressAttributes == null) {
+ addressAttributes = new ArrayList();
+ }
+
+ while (allAddrAttributes.hasNext()) {
+ OMAttribute attribute = (OMAttribute) allAddrAttributes.next();
+ addressAttributes.add(attribute);
+ }
+
+
OMElement refParamElement = eprOMElement.getFirstChildWithName(new QName(AddressingConstants.EPR_REFERENCE_PARAMETERS));
if (refParamElement != null) {
@@ -327,6 +348,14 @@
OMNamespace wsaNS = fac.createOMNamespace(AddressingConstants.Final.WSA_NAMESPACE, AddressingConstants.WSA_DEFAULT_PREFIX);
OMElement addressE = fac.createOMElement(AddressingConstants.EPR_ADDRESS, wsaNS, epr);
addressE.setText(address);
+
+ if (addressAttributes != null) {
+ Iterator attrIter = addressAttributes.iterator();
+ while (attrIter.hasNext()) {
+ OMAttribute omAttributes = (OMAttribute) attrIter.next();
+ addressE.addAttribute(omAttributes);
+ }
+ }
if (this.metaData != null) {
OMElement metadataE = fac.createOMElement(AddressingConstants.Final.WSA_METADATA, wsaNS, epr);
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java?view=diff&rev=487160&r1=487159&r2=487160
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java Thu Dec 14 02:22:09 2006
@@ -15,6 +15,7 @@
*/
package org.apache.axis2.addressing;
+import java.util.ArrayList;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.List;
@@ -187,6 +188,15 @@
String address = epr.getAddress();
addressE.setText(address);
+ ArrayList addressAttributes = epr.getAddressAttributes();
+ if (addressAttributes != null) {
+ Iterator attrIter = addressAttributes.iterator();
+ while (attrIter.hasNext()) {
+ OMAttribute omAttributes = (OMAttribute) attrIter.next();
+ addressE.addAttribute(omAttributes);
+ }
+ }
+
List metaData = epr.getMetaData();
if (metaData != null && AddressingConstants.Final.WSA_NAMESPACE.equals(addressingNamespace)) {
OMElement metadataE = factory.createOMElement(AddressingConstants.Final.WSA_METADATA, wsaNS, eprElement);
@@ -240,6 +250,13 @@
//We need to identify the address element again in order to ensure
//that it is not included with the extensibility elements.
epr.setAddress(eprChildElement.getText());
+ Iterator allAddrAttributes = eprChildElement.getAllAttributes();
+ ArrayList addressAttributes = new ArrayList();
+ while (allAddrAttributes.hasNext()) {
+ OMAttribute attribute = (OMAttribute) allAddrAttributes.next();
+ addressAttributes.add(attribute);
+ }
+ epr.setAddressAttributes(addressAttributes);
}
else if (map.get(AddressingConstants.EPR_REFERENCE_PARAMETERS).equals(qname)) {
Iterator iterator = eprChildElement.getChildElements();
Modified: webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java?view=diff&rev=487160&r1=487159&r2=487160
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java Thu Dec 14 02:22:09 2006
@@ -54,12 +54,21 @@
epr.addReferenceParameter(rp1Qname,"rp1");
epr.addReferenceParameter(rp2Qname,"rp2");
+ ArrayList addressAttributes = new ArrayList();
+ addressAttributes.add(attr1);
+ addressAttributes.add(attr2);
+ epr.setAddressAttributes(addressAttributes);
+
OMElement om = EndpointReferenceHelper.toOM(omf, epr, new QName("http://nsurl","localName","prefix"), AddressingConstants.Final.WSA_NAMESPACE);
//Test deserialize using fromOM(OMElement)
EndpointReference deser = EndpointReferenceHelper.fromOM(om);
assertEquals(epr.getAddress(),deser.getAddress());
+ ArrayList addrAttrs = deser.getAddressAttributes();
+ assertEquals(attr1,addrAttrs.get(0));
+ assertEquals(attr2,addrAttrs.get(1));
+
ArrayList attrs = deser.getAttributes();
assertEquals(attr1,attrs.get(0));
assertEquals(attr2,attrs.get(1));
@@ -81,6 +90,10 @@
EndpointReferenceHelper.fromOM(deser, om, AddressingConstants.Final.WSA_NAMESPACE);
assertEquals(epr.getAddress(),deser.getAddress());
+ addrAttrs = deser.getAddressAttributes();
+ assertEquals(attr1,addrAttrs.get(0));
+ assertEquals(attr2,addrAttrs.get(1));
+
attrs = deser.getAttributes();
assertEquals(attr1,attrs.get(0));
assertEquals(attr2,attrs.get(1));
@@ -132,6 +145,11 @@
epr.addReferenceParameter(rp1Qname,"rp1");
epr.addReferenceParameter(rp2Qname,"rp2");
+ ArrayList addressAttributes = new ArrayList();
+ addressAttributes.add(attr1);
+ addressAttributes.add(attr2);
+ epr.setAddressAttributes(addressAttributes);
+
OMElement om = EndpointReferenceHelper.toOM(omf, epr, new QName("http://nsurl","localName","prefix"), AddressingConstants.Submission.WSA_NAMESPACE);
//Add some reference properties.
@@ -148,6 +166,10 @@
EndpointReference deser = EndpointReferenceHelper.fromOM(om);
assertEquals(epr.getAddress(),deser.getAddress());
+ ArrayList addrAttrs = deser.getAddressAttributes();
+ assertEquals(attr1,addrAttrs.get(0));
+ assertEquals(attr2,addrAttrs.get(1));
+
ArrayList attrs = deser.getAttributes();
assertEquals(attr1,attrs.get(0));
assertEquals(attr2,attrs.get(1));
@@ -173,6 +195,10 @@
EndpointReferenceHelper.fromOM(deser, om, AddressingConstants.Submission.WSA_NAMESPACE);
assertEquals(epr.getAddress(),deser.getAddress());
+ addrAttrs = deser.getAddressAttributes();
+ assertEquals(attr1,addrAttrs.get(0));
+ assertEquals(attr2,addrAttrs.get(1));
+
attrs = deser.getAttributes();
assertEquals(attr1,attrs.get(0));
assertEquals(attr2,attrs.get(1));
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org