cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dk...@apache.org
Subject svn commit: r810234 - in /cxf/branches/2.2.x-fixes: ./ common/common/src/main/java/org/apache/cxf/common/util/ rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/ systests/uncategorized/src/test/...
Date Tue, 01 Sep 2009 20:55:39 GMT
Author: dkulp
Date: Tue Sep  1 20:55:38 2009
New Revision: 810234

URL: http://svn.apache.org/viewvc?rev=810234&view=rev
Log:
Merged revisions 810143 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r810143 | dkulp | 2009-09-01 13:53:18 -0400 (Tue, 01 Sep 2009) | 1 line
  
  [CXF-2411] Fix some issues with parameratized types and JAXB
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/ASMHelper.java
    cxf/branches/2.2.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
    cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
    cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep  1 20:55:38 2009
@@ -1 +1 @@
-/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771,794778-794780,794892,795044,795104,795160,795583,795907,796022-796023,796352,796593,796741,796780,796994-796997,797117,797159,797192,797194,797231-797233,797442,797505,797517,797534,797581-797583,797587,797640,797651,797699,797882-797883,798344-798346,798363,798461,798479,798533,798551,798557,798561-798562,798570,798573,79858
 4,798654,798748-798749,798816,798891,798929-798930,799245,799267,799439,799448,799637,799723-799724,799792,800453,800497-800498,801380-801381,801447,801962,802892,803056,803129,803174,803419,803460,803493,803689,804002,804175,804276,805784,805907,805909,806020-806021,806023,806405-806406,806576,806602-806604,806620,806627,806631,806633,806638,806687,806876,806922,806979-806982,807181,807205,807295,807748,807807,808035,808069,808085,808107,808464,808488,808731,808885,808925,809082-809083,809162,809190,809417-809626,809631,809663,809706,809738,809962,810090
+/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771,794778-794780,794892,795044,795104,795160,795583,795907,796022-796023,796352,796593,796741,796780,796994-796997,797117,797159,797192,797194,797231-797233,797442,797505,797517,797534,797581-797583,797587,797640,797651,797699,797882-797883,798344-798346,798363,798461,798479,798533,798551,798557,798561-798562,798570,798573,79858
 4,798654,798748-798749,798816,798891,798929-798930,799245,799267,799439,799448,799637,799723-799724,799792,800453,800497-800498,801380-801381,801447,801962,802892,803056,803129,803174,803419,803460,803493,803689,804002,804175,804276,805784,805907,805909,806020-806021,806023,806405-806406,806576,806602-806604,806620,806627,806631,806633,806638,806687,806876,806922,806979-806982,807181,807205,807295,807748,807807,808035,808069,808085,808107,808464,808488,808731,808885,808925,809082-809083,809162,809190,809417-809626,809631,809663,809706,809738,809962,810090,810143

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/ASMHelper.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/ASMHelper.java?rev=810234&r1=810233&r2=810234&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/ASMHelper.java
(original)
+++ cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/common/util/ASMHelper.java
Tue Sep  1 20:55:38 2009
@@ -24,6 +24,7 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -99,6 +100,14 @@
         } else if (type instanceof GenericArrayType) {
             GenericArrayType at = (GenericArrayType)type;
             return "[" + getClassCode(at.getGenericComponentType());
+        } else if (type instanceof TypeVariable) {
+            TypeVariable tv = (TypeVariable)type;
+            Type[] bounds = tv.getBounds();
+            if (bounds != null && bounds.length == 1) {
+                return getClassCode(bounds[0]);
+            } else {
+                throw new IllegalArgumentException("Unable to determine type for: " + tv);
+            }
         } else if (type instanceof ParameterizedType) {
             ParameterizedType pt = (ParameterizedType)type;
             StringBuilder a = new StringBuilder(getClassCode(pt.getRawType()));

Modified: cxf/branches/2.2.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java?rev=810234&r1=810233&r2=810234&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
Tue Sep  1 20:55:38 2009
@@ -27,6 +27,7 @@
 import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
 import java.util.Collection;
 import java.util.Set;
 
@@ -181,8 +182,24 @@
                 addType(t2);
             }
         } else if (cls instanceof GenericArrayType) {
+            Class ct;
             GenericArrayType gt = (GenericArrayType)cls;
-            Class ct = (Class) gt.getGenericComponentType();
+            Type componentType = gt.getGenericComponentType();
+            if (componentType instanceof Class) {
+                ct = (Class)componentType;
+            } else {
+                TypeVariable tv = (TypeVariable)componentType;
+                Type[] bounds = tv.getBounds();
+                if (bounds != null && bounds.length == 1) {
+                    if (bounds[0] instanceof Class) {
+                        ct = (Class)bounds[0];
+                    } else {
+                        throw new IllegalArgumentException("Unable to determine type for:
" + tv);
+                    }
+                } else {
+                    throw new IllegalArgumentException("Unable to determine type for: " +
tv);
+                }
+            }
             ct = Array.newInstance(ct, 0).getClass();
 
             addClass(ct);

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java?rev=810234&r1=810233&r2=810234&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/WrapperClassGenerator.java
Tue Sep  1 20:55:38 2009
@@ -277,21 +277,25 @@
         String classCode = getClassCode(clz);
         String fieldDescriptor = null;
         
-        if (genericType instanceof ParameterizedType
-            && (Collection.class.isAssignableFrom(clz) || clz.isArray())) {
-            ParameterizedType ptype = (ParameterizedType)genericType;
+        if (genericType instanceof ParameterizedType) {
+            if (Collection.class.isAssignableFrom(clz) || clz.isArray()) {
+                ParameterizedType ptype = (ParameterizedType)genericType;
 
-            Type[] types = ptype.getActualTypeArguments();
-            // TODO: more complex Parameterized type
-            if (types.length > 0) {
-                if (types[0] instanceof Class) {
-                    fieldDescriptor = getClassCode(genericType);
-                } else if (types[0] instanceof GenericArrayType) {
-                    fieldDescriptor = getClassCode(genericType);
-                } else if (types[0] instanceof ParameterizedType) {
-                    classCode = getClassCode(((ParameterizedType)types[0]).getRawType());
-                    fieldDescriptor = getClassCode(genericType);
+                Type[] types = ptype.getActualTypeArguments();
+                // TODO: more complex Parameterized type
+                if (types.length > 0) {
+                    if (types[0] instanceof Class) {
+                        fieldDescriptor = getClassCode(genericType);
+                    } else if (types[0] instanceof GenericArrayType) {
+                        fieldDescriptor = getClassCode(genericType);
+                    } else if (types[0] instanceof ParameterizedType) {
+                        classCode = getClassCode(((ParameterizedType)types[0]).getRawType());
+                        fieldDescriptor = getClassCode(genericType);
+                    }
                 }
+            } else {
+                classCode = getClassCode(((ParameterizedType)genericType).getRawType());
+                fieldDescriptor = getClassCode(genericType);
             }
         }
         String fieldName = JavaUtils.isJavaKeyword(name) ? JavaUtils.makeNonJavaKeyword(name)
: name;

Modified: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java?rev=810234&r1=810233&r2=810234&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
(original)
+++ cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
Tue Sep  1 20:55:38 2009
@@ -59,6 +59,8 @@
 import org.apache.cxf.ordered_param_holder.ComplexStruct;
 import org.apache.cxf.ordered_param_holder.OrderedParamHolder;
 import org.apache.cxf.ordered_param_holder.OrderedParamHolder_Service;
+import org.apache.cxf.systest.jaxws.DocLitWrappedCodeFirstService.CXF2411Result;
+import org.apache.cxf.systest.jaxws.DocLitWrappedCodeFirstService.CXF2411SubClass;
 import org.apache.cxf.systest.jaxws.DocLitWrappedCodeFirstService.Foo;
 import org.apache.cxf.tests.inherit.Inherit;
 import org.apache.cxf.tests.inherit.InheritService;
@@ -265,7 +267,7 @@
     private void setASM(boolean b) throws Exception {
         Field f = ASMHelper.class.getDeclaredField("oldASM");
         f.setAccessible(true);
-        f.set(null, b);
+        f.set(null, !b);
     }
     
     @Test
@@ -328,6 +330,11 @@
         assertEquals("Hello", echoMsg);
     }
     private void runDocLitTest(DocLitWrappedCodeFirstService port) throws Exception {
+        CXF2411Result<CXF2411SubClass> o = port.doCXF2411();
+        assertNotNull(o);
+        assertNotNull(o.getContent());
+        Object[] ar = o.getContent(); 
+        assertTrue(ar[0] instanceof CXF2411SubClass);
         Foo foo = new Foo();
         foo.setName("blah");
         assertEquals("blah", port.modifyFoo(foo).getName());

Modified: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java?rev=810234&r1=810233&r2=810234&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
(original)
+++ cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstService.java
Tue Sep  1 20:55:38 2009
@@ -166,4 +166,22 @@
             return dbReves;
         }
     }
+    
+    CXF2411Result<CXF2411SubClass> doCXF2411();
+    
+    public class CXF2411Result<T extends CXF2411Base> {
+        private T[] content;
+        public T[] getContent() {
+            return content;
+        }
+        public void setContent(T[] content) {
+            this.content = content;
+        }
+    }
+
+    public class CXF2411Base {
+    }
+
+    public class CXF2411SubClass extends CXF2411Base {
+    }
 }

Modified: cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java?rev=810234&r1=810233&r2=810234&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
(original)
+++ cxf/branches/2.2.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
Tue Sep  1 20:55:38 2009
@@ -222,5 +222,13 @@
         }
         return f;
     }
+
+    public CXF2411Result<CXF2411SubClass> doCXF2411() {
+        CXF2411Result<CXF2411SubClass> ret = new CXF2411Result<CXF2411SubClass>();
+        CXF2411SubClass content[] = new CXF2411SubClass[1];
+        content[0] = new CXF2411SubClass();
+        ret.setContent(content);
+        return ret;
+    }
     
 }



Mime
View raw message