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]

Reply via email to