You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ga...@apache.org on 2007/04/23 06:14:59 UTC

svn commit: r531330 - in /incubator/cxf/trunk/rt/frontend/jaxws/src: main/java/org/apache/cxf/jaxws/binding/soap/SOAPBindingImpl.java test/java/org/apache/cxf/jaxws/SOAPBindingTest.java

Author: gawor
Date: Sun Apr 22 21:14:58 2007
New Revision: 531330

URL: http://svn.apache.org/viewvc?view=rev&rev=531330
Log:
getRoles() must always include next and ultimateReceiver roles

Modified:
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/SOAPBindingImpl.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SOAPBindingTest.java

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/SOAPBindingImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/SOAPBindingImpl.java?view=diff&rev=531330&r1=531329&r2=531330
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/SOAPBindingImpl.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/binding/soap/SOAPBindingImpl.java Sun Apr 22 21:14:58 2007
@@ -19,7 +19,7 @@
 
 package org.apache.cxf.jaxws.binding.soap;
 
-import java.util.Collections;
+import java.util.HashSet;
 import java.util.ResourceBundle;
 import java.util.Set;
 import java.util.logging.Logger;
@@ -48,24 +48,37 @@
     private Set<String> roles;
 
     public SOAPBindingImpl(BindingInfo sb) {
-        soapBinding = sb;    
+        soapBinding = sb;  
+        addRequiredRoles();
     }
     
-    public Set<String> getRoles() {
+    private void addRequiredRoles() {
         if (this.roles == null) {
-            return Collections.emptySet();
-        } else {
-            return this.roles;
+            this.roles = new HashSet<String>();
+        }
+        if (this.soapBinding instanceof SoapBindingInfo) {
+            SoapBindingInfo bindingInfo = (SoapBindingInfo) this.soapBinding;
+            if (bindingInfo.getSoapVersion() instanceof Soap11) {
+                this.roles.add(bindingInfo.getSoapVersion().getNextRole());
+            } else if (bindingInfo.getSoapVersion() instanceof Soap12) {
+                this.roles.add(bindingInfo.getSoapVersion().getNextRole());
+                this.roles.add(bindingInfo.getSoapVersion().getUltimateReceiverRole());
+            }
         }
     }
 
+    public Set<String> getRoles() {
+        return this.roles;
+    }
+
     public void setRoles(Set<String> set) {
         if (set != null 
             && (set.contains(Soap11.getInstance().getNoneRole()) 
-             || set.contains(Soap12.getInstance().getNoneRole()))) {
+                || set.contains(Soap12.getInstance().getNoneRole()))) {
             throw new WebServiceException(BUNDLE.getString("NONE_ROLE_ERR"));
         }
         this.roles = set;
+        addRequiredRoles();
     }
 
     public boolean isMTOMEnabled() {

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SOAPBindingTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SOAPBindingTest.java?view=diff&rev=531330&r1=531329&r2=531330
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SOAPBindingTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/SOAPBindingTest.java Sun Apr 22 21:14:58 2007
@@ -27,7 +27,7 @@
 import javax.xml.ws.WebServiceException;
 import javax.xml.ws.soap.SOAPBinding;
 
-import org.apache.cxf.binding.soap.Soap11;
+import org.apache.cxf.binding.soap.Soap12;
 import org.apache.cxf.calculator.CalculatorPortType;
 import org.junit.Test;
 
@@ -54,18 +54,23 @@
         SOAPBinding binding = (SOAPBinding)bindingProvider.getBinding();
         
         assertNotNull(binding.getRoles());
-        assertEquals(0, binding.getRoles().size());
+        assertEquals(2, binding.getRoles().size());
+        assertTrue(binding.getRoles().contains(Soap12.getInstance().getNextRole()));
+        assertTrue(binding.getRoles().contains(Soap12.getInstance().getUltimateReceiverRole()));
         
+        String myrole = "http://myrole";
         Set<String> roles = new HashSet<String>();
-        roles.add(Soap11.getInstance().getNextRole());
+        roles.add(myrole);
         
         binding.setRoles(roles);
         
         assertNotNull(binding.getRoles());
-        assertEquals(1, binding.getRoles().size());
-        assertEquals(Soap11.getInstance().getNextRole(), binding.getRoles().iterator().next());
+        assertEquals(3, binding.getRoles().size());
+        assertTrue(binding.getRoles().contains(myrole));
+        assertTrue(binding.getRoles().contains(Soap12.getInstance().getNextRole()));
+        assertTrue(binding.getRoles().contains(Soap12.getInstance().getUltimateReceiverRole()));
                 
-        roles.add(Soap11.getInstance().getNoneRole());
+        roles.add(Soap12.getInstance().getNoneRole());
         
         try {        
             binding.setRoles(roles);