Author: davidillsley
Date: Mon May 21 12:15:13 2007
New Revision: 540246
URL: http://svn.apache.org/viewvc?view=rev&rev=540246
Log:
Some more work on wsa:Addressing support
Added:
webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionHelper.java
webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/WSDLTest.java
Added:
webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionHelper.java
URL:
http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionHelper.java?view=auto&rev=540246
==============================================================================
---
webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionHelper.java
(added)
+++
webservices/axis2/scratch/java/davidillsley/src/main/java/org/apache/axis2/addressing/policy/AddressingAssertionHelper.java
Mon May 21 12:15:13 2007
@@ -0,0 +1,47 @@
+package org.apache.axis2.addressing.policy;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.axis2.description.AxisBinding;
+import org.apache.axis2.description.AxisDescription;
+import org.apache.axis2.description.AxisEndpoint;
+import org.apache.axis2.description.AxisService;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.Policy;
+
+public class AddressingAssertionHelper {
+ public static AddressingAssertion
getEffectiveAddressingAssertion(AxisService as){
+ AddressingAssertion aa = getDirectAddressingAssertion(as);
+ if(aa != null){
+ return aa;
+ }
+ aa = getDirectAddressingAssertion(getAxisBinding(as));
+ return aa;
+ }
+
+ static AddressingAssertion getDirectAddressingAssertion(AxisDescription
ad){
+ AddressingAssertion result = null;
+ if(ad.getPolicyInclude() != null &&
ad.getPolicyInclude().getEffectivePolicy() != null){
+ Iterator<Policy> alternatives =
ad.getPolicyInclude().getEffectivePolicy().getAlternatives();
+ while(alternatives.hasNext() && (result == null)){
+ List<Assertion> assertions =
(List<Assertion>)alternatives.next();
+ for(Assertion a: assertions){
+ if(a instanceof AddressingAssertion){
+ result =
((AddressingAssertion)a);
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ static AxisBinding getAxisBinding(AxisService as){
+ Map<String, AxisEndpoint> endpoints = as.getEndpoints();
+ if(!endpoints.isEmpty()){
+ return
endpoints.entrySet().iterator().next().getValue().getBinding();
+ }
+ return null;
+ }
+}
Added:
webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/WSDLTest.java
URL:
http://svn.apache.org/viewvc/webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/WSDLTest.java?view=auto&rev=540246
==============================================================================
---
webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/WSDLTest.java
(added)
+++
webservices/axis2/scratch/java/davidillsley/src/test/java/org/apache/axis2/addressing/policy/WSDLTest.java
Mon May 21 12:15:13 2007
@@ -0,0 +1,67 @@
+package org.apache.axis2.addressing.policy;
+import java.io.FileInputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.addressing.policy.AddressingAssertion;
+import org.apache.axis2.addressing.policy.AddressingAssertion.ResponsesEPRs;
+import org.apache.axis2.addressing.policy.AddressingAssertionHelper;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
+
+public class WSDLTest extends TestCase {
+
+ AddressingAssertion getAddressingAssertion(String wsdlFileName) throws
Exception{
+ WSDL11ToAxisServiceBuilder builder = new
WSDL11ToAxisServiceBuilder(new
FileInputStream("src/test/resources/"+wsdlFileName));
+ AxisService as = builder.populateService();
+ return
AddressingAssertionHelper.getEffectiveAddressingAssertion(as);
+ }
+
+ public void testBindingAnon()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("binding-anon.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.ANONYMOUS,
aa.getAllowedResponseType());
+ }
+ public void testBindingNonAnon()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("binding-nonanon.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.NON_ANONYMOUS,
aa.getAllowedResponseType());
+ }
+ public void testBindingBoth()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("binding-both.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.BOTH, aa.getAllowedResponseType());
+ }
+ public void testBindingEither()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("binding-either.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.EITHER, aa.getAllowedResponseType());
+ }
+
+ public void testPortAnon()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("port-anon.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.ANONYMOUS,
aa.getAllowedResponseType());
+ }
+ public void testPortNonAnon()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("port-nonanon.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.NON_ANONYMOUS,
aa.getAllowedResponseType());
+ }
+ public void testPortBoth()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("port-both.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.BOTH, aa.getAllowedResponseType());
+ }
+ public void testPortEither()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("port-either.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.EITHER, aa.getAllowedResponseType());
+ }
+
+ public void testPortNonAnonBindingAnon()throws Exception{
+ AddressingAssertion aa =
getAddressingAssertion("port-nonanon-binding-anon.wsdl");
+ assertNotNull(aa);
+ assertEquals(ResponsesEPRs.NON_ANONYMOUS,
aa.getAllowedResponseType());
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]