Author: barrettj
Date: Mon Mar 15 20:39:31 2010
New Revision: 923426

URL: http://svn.apache.org/viewvc?rev=923426&view=rev
Log:
Support for client-side WebServiceFeature settings to be configured via DBC.  
Associated TDD test.

Added:
    
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/builder/WebServiceFeatureTests.java
Modified:
    
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java

Modified: 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java?rev=923426&r1=923425&r2=923426&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/builder/MDQConstants.java
 Mon Mar 15 20:39:31 2010
@@ -58,6 +58,11 @@ public class MDQConstants {
     public static final String HANDLER_CHAIN_DECLARING_CLASS = 
"HANDLER_CHAIN_DECLARING_CLASS";
     
     public static final String SEI_MTOM_ENABLEMENT_MAP = 
"org.apache.axis2.jaxws.description.builder.SEI_MTOM_ENABLEMENT_MAP";
+    // Note that this property is ONLY used on the client-side, not the server 
side.
+    // Value is Map<String, List<java.lang.annotation.Annotation>> where
+    // String: SEI Class name (i.e. the port name)
+    // Annotation: The list of WebServiceFeatures expressed as the 
corresponding Annotation related to that Port
+    public static final String SEI_FEATURES_MAP = 
"org.apache.axis2.jaxws.description.build.SEI_FEATURES_MAP";
     public static final String BINDING_PROPS_MAP = 
"org.apache.axis2.jaxws.description.builder.BINDING_PROPS_MAP";    
     
     //Represent SOAP/JMS Bindings

Added: 
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/builder/WebServiceFeatureTests.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/builder/WebServiceFeatureTests.java?rev=923426&view=auto
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/builder/WebServiceFeatureTests.java
 (added)
+++ 
axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/builder/WebServiceFeatureTests.java
 Mon Mar 15 20:39:31 2010
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.axis2.jaxws.description.builder;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+
+/**
+ * Validate setting WebServiceFeatures on client-side DBC objects.
+ */
+public class WebServiceFeatureTests extends TestCase {
+    
+    public void testSetFeaturePropertyOnDBC() {
+        DescriptionBuilderComposite sparseComposite = new 
DescriptionBuilderComposite();
+        sparseComposite.getProperties().put(MDQConstants.SEI_FEATURES_MAP, 
null);
+        assertNull("Property could not be retreived", 
+                
sparseComposite.getProperties().get(MDQConstants.SEI_FEATURES_MAP));
+    }
+
+    public void testSetFeatureValueOnDBC() {
+        DescriptionBuilderComposite sparseComposite = new 
DescriptionBuilderComposite();
+        Map<String, List<Annotation>> map = new HashMap();
+
+        ArrayList<Annotation> wsFeatures1 = new ArrayList<Annotation>();
+        Annotation seiFeature1 = new MTOMAnnot();
+        wsFeatures1.add(seiFeature1);
+        Annotation seiFeature2 = new RespectBindingAnnot();
+        wsFeatures1.add(seiFeature2);
+        Annotation seiFeature3 = new AddressingAnnot();
+        wsFeatures1.add(seiFeature3);
+        map.put("sei1", wsFeatures1);
+
+        ArrayList<Annotation> wsFeatures2 = new ArrayList<Annotation>();
+        Annotation sei2Feature1 = new RespectBindingAnnot();
+        wsFeatures2.add(sei2Feature1);
+        map.put("sei2", wsFeatures2);
+        
+        sparseComposite.getProperties().put(MDQConstants.SEI_FEATURES_MAP, 
map);
+        
+        // Validate we got back out what we put in
+        
+        Map<String, List<Annotation>> checkMap = (Map<String, 
List<Annotation>>)
+            sparseComposite.getProperties().get(MDQConstants.SEI_FEATURES_MAP);
+        
+        assertTrue(checkMap.containsKey("sei1"));
+        assertTrue(checkMap.containsKey("sei2"));
+        
+        ArrayList<Annotation> checkSEI1 = (ArrayList<Annotation>) 
checkMap.get("sei1");
+        assertEquals("Wrong number of WS Features", 3, checkSEI1.size());
+        assertTrue(checkSEI1.contains(seiFeature1));
+        assertTrue(checkSEI1.contains(seiFeature2));
+        assertTrue(checkSEI1.contains(seiFeature3));
+        
+        ArrayList<Annotation> checkSEI2 = (ArrayList<Annotation>) 
checkMap.get("sei2");
+        assertEquals("Wrong number of WS Features", 1, checkSEI2.size());
+    }
+}


Reply via email to