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 2012/01/19 18:25:37 UTC

svn commit: r1233488 - in /cxf/branches/2.3.x-fixes: ./ rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/

Author: dkulp
Date: Thu Jan 19 17:25:37 2012
New Revision: 1233488

URL: http://svn.apache.org/viewvc?rev=1233488&view=rev
Log:
Merged revisions 1232519 via svnmerge from 
https://svn.us.apache.org/repos/asf/cxf/branches/2.4.x-fixes

................
  r1232519 | dkulp | 2012-01-17 13:15:53 -0500 (Tue, 17 Jan 2012) | 17 lines
  
  Merged revisions 1232501 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
  
  ................
    r1232501 | dkulp | 2012-01-17 12:31:04 -0500 (Tue, 17 Jan 2012) | 10 lines
    
    Merged revisions 1232495 via svnmerge from 
    https://svn.apache.org/repos/asf/cxf/trunk
    
    ........
      r1232495 | dkulp | 2012-01-17 12:25:06 -0500 (Tue, 17 Jan 2012) | 2 lines
      
      [CXF-4027] Omit Enum, Clonable, Serializable from Aegis class searching
      Patch from James Phillpotts  applied
    ........
  ................
................

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java
    cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java
    cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java

Propchange: cxf/branches/2.3.x-fixes/
            ('svn:mergeinfo' removed)

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

Modified: cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java?rev=1233488&r1=1233487&r2=1233488&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java (original)
+++ cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java Thu Jan 19 17:25:37 2012
@@ -19,6 +19,7 @@
 package org.apache.cxf.aegis.type.basic;
 
 import java.beans.PropertyDescriptor;
+import java.io.Serializable;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
@@ -578,7 +579,8 @@ public class BeanType extends AegisType 
         /*
          * Don't dig any deeper than Object or Exception
          */
-        if (c != null && c != Object.class && c != Exception.class && c != RuntimeException.class) {
+        if (c != null && c != Object.class && c != Exception.class && c != RuntimeException.class 
+            && c != Enum.class && c != Serializable.class && c != Cloneable.class) {
             TypeMapping tm = inf.getTypeMapping();
             AegisType superType = tm.getType(c);
             if (superType == null) {

Modified: cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java?rev=1233488&r1=1233487&r2=1233488&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java (original)
+++ cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java Thu Jan 19 17:25:37 2012
@@ -271,6 +271,8 @@ public class BeanTypeInfo {
         try {
             if (beanClass.isInterface() || beanClass.isPrimitive()) {
                 descriptors = getInterfacePropertyDescriptors(beanClass);
+            } else if (beanClass.isEnum()) {
+                // do nothing
             } else if (beanClass == Object.class || beanClass == Throwable.class) {
                 // do nothing
             } else if (beanClass == Throwable.class) {

Modified: cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java?rev=1233488&r1=1233487&r2=1233488&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java (original)
+++ cxf/branches/2.3.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java Thu Jan 19 17:25:37 2012
@@ -21,7 +21,9 @@ package org.apache.cxf.aegis.type.basic;
 import java.beans.PropertyDescriptor;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.Serializable;
 import java.util.Date;
+import java.util.Set;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.namespace.QName;
@@ -606,6 +608,55 @@ public class BeanTest extends AbstractAe
         assertFalse(type.getTypeInfo().getElements().iterator().hasNext());
     }
 
+    @Test
+    public void testInterfaceBeans() throws Exception {
+        defaultContext();
+        BeanType type = new BeanType();
+        type.setTypeClass(SerializableBean.class);
+        type.setTypeMapping(mapping);
+        type.setSchemaType(new QName("urn:foo", "SerializableBean"));
+
+        AegisType stringType = mapping.getType(String.class);
+        assertTrue(type.getDependencies().contains(stringType));
+
+        type = new BeanType();
+        type.setTypeClass(CloneableBean.class);
+        type.setTypeMapping(mapping);
+        type.setSchemaType(new QName("urn:foo", "CloneableBean"));
+
+        assertEquals(1, type.getDependencies().size());
+        assertTrue(type.getDependencies().contains(stringType));
+
+        type = new BeanType();
+        type.setTypeClass(SimpleInterface.class);
+        type.setTypeMapping(mapping);
+        type.setSchemaType(new QName("urn:foo", "SimpleInterface"));
+
+        assertEquals(1, type.getDependencies().size());
+        assertTrue(type.getDependencies().contains(stringType));
+
+        type = new BeanType();
+        type.setTypeClass(ExtendingInterface.class);
+        type.setTypeMapping(mapping);
+        type.setSchemaType(new QName("urn:foo", "ExtendingInterface"));
+
+        Set<AegisType> dependencies = type.getDependencies();
+        assertEquals(2, dependencies.size());
+        dependencies.remove(stringType);
+        assertEquals(SimpleInterface.class, dependencies.iterator().next().getTypeClass());
+    }
+
+    @Test
+    public void testEnumBean() throws Exception {
+        defaultContext();
+        BeanType type = new BeanType();
+        type.setTypeClass(EnumBean.class);
+        type.setTypeMapping(mapping);
+        type.setSchemaType(new QName("urn:foo", "EnumBean"));
+
+        assertTrue(type.getDependencies().isEmpty());
+    }
+
     public static class DateBean {
         private Date date;
 
@@ -706,4 +757,24 @@ public class BeanTest extends AbstractAe
             this.howdy = howdy;
         }
     }
+    
+    public interface SerializableBean extends Serializable {
+        String getString();
+    }
+    
+    public interface CloneableBean extends Cloneable {
+        String getString();
+    }
+    
+    public interface SimpleInterface {
+        String getString();
+    }
+    
+    public interface ExtendingInterface extends SimpleInterface {
+        String getAnotherString();
+    }
+    
+    public enum EnumBean {
+        VALUE1, VALUE2;
+    }
 }