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 2010/10/18 15:57:37 UTC

svn commit: r1023804 - in /cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws: WrapperClassGenerator.java support/JaxWsServiceConfiguration.java

Author: dkulp
Date: Mon Oct 18 13:57:37 2010
New Revision: 1023804

URL: http://svn.apache.org/viewvc?rev=1023804&view=rev
Log:
[CXF-3069] Make sure proper XmlElement annotations are output when using
asm generated wrappers

Modified:
    cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java
    cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java

Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java?rev=1023804&r1=1023803&r2=1023804&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java Mon Oct 18 13:57:37 2010
@@ -104,6 +104,7 @@ public final class WrapperClassGenerator
                     || anno.annotationType() == XmlAttachmentRef.class
                     || anno.annotationType() == XmlJavaTypeAdapter.class
                     || anno.annotationType() == XmlMimeType.class
+                    || anno.annotationType() == XmlElement.class
                     || anno.annotationType() == XmlElementWrapper.class) {
                     list.add(anno);
                 }
@@ -395,7 +396,9 @@ public final class WrapperClassGenerator
                 av0.visit("required", el.required());
                 av0.visit("namespace", el.namespace());
                 av0.visit("defaultValue", el.defaultValue());
-                av0.visit("type", el.type());
+                if (el.type() != XmlElement.DEFAULT.class) {
+                    av0.visit("type", el.type());                    
+                }
                 av0.visitEnd(); 
             } else if (ann instanceof XmlElementWrapper) {
                 XmlElementWrapper el = (XmlElementWrapper)ann;

Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java?rev=1023804&r1=1023803&r2=1023804&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceConfiguration.java Mon Oct 18 13:57:37 2010
@@ -39,6 +39,7 @@ import javax.jws.WebService;
 import javax.jws.soap.SOAPBinding;
 import javax.jws.soap.SOAPBinding.ParameterStyle;
 import javax.jws.soap.SOAPBinding.Style;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Action;
 import javax.xml.ws.Holder;
@@ -63,6 +64,7 @@ import org.apache.cxf.service.model.Mess
 import org.apache.cxf.service.model.OperationInfo;
 
 public class JaxWsServiceConfiguration extends AbstractServiceConfiguration {
+
     private static final Logger LOG = LogUtils.getL7dLogger(JaxWsServiceConfiguration.class); 
 
     private JaxWsImplementorInfo implInfo;
@@ -840,4 +842,18 @@ public class JaxWsServiceConfiguration e
         return null;
     }
     
+    public Long getWrapperPartMinOccurs(MessagePartInfo mpi) {
+        Annotation[] a = (Annotation[])mpi.getProperty(ReflectionServiceFactoryBean.PARAM_ANNOTATION);
+        for (Annotation a2 : a) {
+            if (a2 instanceof XmlElement) {
+                XmlElement e = (XmlElement)a2;
+                if (e.required()) {
+                    return 1L;
+                }
+            }
+        }
+        return null;
+    }
+
+    
 }