You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/07/28 03:07:12 UTC

svn commit: r798344 - in /cxf/trunk: api/src/main/java/org/apache/cxf/tools/common/ maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ rt/core/src/main/java/org/apache/cxf/wsdl11/ tools/wsdlto/core/src/main/java/org/apache/cxf/tool...

Author: dkulp
Date: Tue Jul 28 01:07:11 2009
New Revision: 798344

URL: http://svn.apache.org/viewvc?rev=798344&view=rev
Log:
[CXF-1079] Add option to allow element refs when checking for ability to
unwrap.

Modified:
    cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
    cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
    cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
    cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java?rev=798344&r1=798343&r2=798344&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java Tue Jul 28 01:07:11 2009
@@ -89,6 +89,7 @@
     public static final String CFG_LIB_REF = "library.references";
     public static final String CFG_ANT_PROP = "ant.prop";
     public static final String CFG_NO_ADDRESS_BINDING = "noAddressBinding";
+    public static final String CFG_ALLOW_ELEMENT_REFS = "allowElementReferences";
 
 
 
@@ -107,7 +108,6 @@
     public static final String CFG_GEN_NEW_ONLY = "newonly";
 
     // Java2WSDL Constants
-
     public static final String CFG_CLASSPATH = "classpath";
     public static final String CFG_TNS = "tns";
     public static final String CFG_SERVICENAME = "servicename";

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java?rev=798344&r1=798343&r2=798344&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/Option.java Tue Jul 28 01:07:11 2009
@@ -140,6 +140,11 @@
      * Disable generation of service address binding in the generated Java classes
      */
     boolean noAddressBinding;
+    
+    /**
+     * Allow element references when determining if an operation can be unwrapped or not 
+     */
+    boolean allowElementRefs;
 
 
     public Option() {
@@ -315,6 +320,14 @@
         this.noAddressBinding = noAddressBinding;
     }
 
+    public boolean isAllowElementRefs() {
+        return allowElementRefs;
+    }
+
+    public void setAllowElementRefs(boolean allowElementRefs) {
+        this.allowElementRefs = allowElementRefs;
+    }
+
     public void copyOptions(Option destination) {
         destination.setAutoNameResolution(isAutoNameResolution());
         destination.setBindingFiles(getBindingFiles());
@@ -333,6 +346,7 @@
         destination.setPackagenames(getPackagenames());
         destination.setServiceName(getServiceName());
         destination.setValidateWsdl(isValidateWsdl());
+        destination.setAllowElementRefs(isAllowElementRefs());
         if (isSetWsdlLocation()) {
             destination.setWsdlLocation(getWsdlLocation());
         }

Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java?rev=798344&r1=798343&r2=798344&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/WSDL2JavaMojo.java Tue Jul 28 01:07:11 2009
@@ -422,6 +422,10 @@
         }
         if (wsdlOption.isExtendedSoapHeaders()) {
             list.add("-exsh");
+            list.add("true");
+        }
+        if (wsdlOption.isAllowElementRefs()) {
+            list.add("-allowElementRefs");
         }
         if (wsdlOption.isValidateWsdl()) {
             list.add("-validate");

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?rev=798344&r1=798343&r2=798344&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java Tue Jul 28 01:07:11 2009
@@ -104,6 +104,7 @@
     private Bus bus;
     private Map<String, Element> schemaList = new HashMap<String, Element>();
     private boolean recordOriginal = true;
+    private boolean allowRefs;
     private boolean ignoreUnknownBindings;
 
     public WSDLServiceBuilder(Bus bus) {
@@ -117,6 +118,9 @@
     public void setIgnoreUnknownBindings(boolean b) {
         ignoreUnknownBindings = b;
     }
+    public void setAllowElementRefs(boolean b) {
+        allowRefs = b;
+    }
     
     private void copyExtensors(AbstractPropertiesHolder info, List<?> extList) {
         if (info != null) {
@@ -599,10 +603,13 @@
             copyExtensors(finfo, entry.getValue().getExtensibilityElements());
             copyExtensionAttributes(finfo, entry.getValue());
         }
-        checkForWrapped(opInfo, false);
+        checkForWrapped(opInfo, allowRefs, false);
     }
 
     public static void checkForWrapped(OperationInfo opInfo, boolean relaxed) {
+        checkForWrapped(opInfo, relaxed, relaxed);
+    }
+    public static void checkForWrapped(OperationInfo opInfo, boolean allowRefs, boolean relaxed) {
         MessageInfo inputMessage = opInfo.getInput();
         MessageInfo outputMessage = opInfo.getOutput();
         boolean passedRule = true;
@@ -676,7 +683,7 @@
             if (hasAttributes(xsct)
                 || (inputEl.isNillable() && !relaxed)
                 || !isWrappableSequence(xsct, inputEl.getQName().getNamespaceURI(),
-                                        unwrappedInput, relaxed)) {
+                                        unwrappedInput, allowRefs)) {
                 passedRule = false;
             }
         } else {
@@ -698,7 +705,7 @@
                 if (hasAttributes(xsct)
                     || (outputEl.isNillable() && !relaxed)
                     || !isWrappableSequence(xsct, outputEl.getQName().getNamespaceURI(), unwrappedOutput,
-                                            relaxed)) {
+                                            allowRefs)) {
                     passedRule = false;
                 }
             } else {

Modified: cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java?rev=798344&r1=798343&r2=798344&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java (original)
+++ cxf/trunk/tools/wsdlto/core/src/main/java/org/apache/cxf/tools/wsdlto/WSDLToJavaContainer.java Tue Jul 28 01:07:11 2009
@@ -167,6 +167,17 @@
 
                 WSDLServiceBuilder serviceBuilder = new WSDLServiceBuilder(getBus());
                 serviceBuilder.setIgnoreUnknownBindings(true);
+                String allowRefs = (String)context.get(ToolConstants.CFG_ALLOW_ELEMENT_REFS);
+                if (!StringUtils.isEmpty(allowRefs) 
+                    || context.optionSet(ToolConstants.CFG_ALLOW_ELEMENT_REFS)) {
+                    if (allowRefs.length() > 0 && allowRefs.charAt(0) == '=') {
+                        allowRefs = allowRefs.substring(1);
+                    }
+                    if (StringUtils.isEmpty(allowRefs)) {
+                        allowRefs = "true";
+                    }
+                    serviceBuilder.setAllowElementRefs(Boolean.valueOf(allowRefs));
+                }
                 String serviceName = (String)context.get(ToolConstants.CFG_SERVICENAME);
 
                 if (serviceName != null) {

Modified: cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml?rev=798344&r1=798343&r2=798344&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml (original)
+++ cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/jaxws-toolspec.xml Tue Jul 28 01:07:11 2009
@@ -171,6 +171,17 @@
                 </annotation>
                 <switch>autoNameResolution</switch>
             </option>
+            
+            <option id="allowElementReferences" maxOccurs="1">
+            	<annotaion>
+            	</annotaion>
+            	<associatedArgument placement="immediate">
+                    <annotation>=true</annotation>
+                    <valueenum>true|false</valueenum>
+                </associatedArgument>
+            	<switch>allowElementReferences</switch>
+            	<switch>aer</switch>
+            </option>
 
 	        <option id="defaultValues" maxOccurs="1">
                 <annotation>