[webbeans-commits] Webbeans SVN: r3549 - in ri/trunk: tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Aug 18 11:26:57 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-08-18 11:26:57 -0400 (Tue, 18 Aug 2009)
New Revision: 3549

Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java
   ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/DeclaringTypeTest.java
Log:
WBRI-369

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java	2009-08-18 13:18:51 UTC (rev 3548)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/introspector/jlr/WBClassImpl.java	2009-08-18 15:26:57 UTC (rev 3549)
@@ -19,6 +19,7 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
+import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.Type;
@@ -201,7 +202,7 @@
             {
                field.setAccessible(true);
             }
-            WBField<?, ?> annotatedField = WBFieldImpl.of(field, this, classTransformer);
+            WBField<?, ?> annotatedField = WBFieldImpl.of(field, getDeclaringWBClass(field, classTransformer), classTransformer);
             this.fields.add(annotatedField);
             if (c == rawType)
             {
@@ -249,11 +250,10 @@
         
       });
       this.declaredConstructorsBySignature = new HashMap<ConstructorSignature, WBConstructor<?>>();
-      for (Constructor<?> constructor : rawType.getDeclaredConstructors())
+      for (Constructor<Object> constructor : rawType.getDeclaredConstructors())
       {
-         @SuppressWarnings("unchecked")
-         Constructor<T> c = (Constructor<T>) constructor;
-         WBConstructor<T> annotatedConstructor = WBConstructorImpl.of(c, this, classTransformer);
+         // TODO Fix this cast
+         WBConstructor<T> annotatedConstructor = (WBConstructor<T>) WBConstructorImpl.of(constructor, getDeclaringWBClass(constructor, classTransformer), classTransformer);
          if (!constructor.isAccessible())
          {
             constructor.setAccessible(true);
@@ -330,7 +330,7 @@
                method.setAccessible(true);
             }
 
-            WBMethod<?, ?> annotatedMethod = WBMethodImpl.of(method, this, classTransformer);
+            WBMethod<?, ?> annotatedMethod = WBMethodImpl.of(method, getDeclaringWBClass(method, classTransformer), classTransformer);
             this.methods.add(annotatedMethod);
             this.methodsBySignature.put(annotatedMethod.getSignature(), annotatedMethod);
             if (c == rawType)
@@ -360,6 +360,20 @@
          }
       }
    }
+   
+   @SuppressWarnings("unchecked")
+   private <X> WBClass<X> getDeclaringWBClass(Member member, ClassTransformer transformer)
+   {
+      if (member.getDeclaringClass().equals(getJavaClass()))
+      {
+         return (WBClass<X>) this;
+      }
+      else
+      {
+         WBClass<X> loadClass = transformer.loadClass(member.getDeclaringClass());
+         return loadClass;
+      }
+   }
 
    /**
     * Gets the implementing class

Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/DeclaringTypeTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/DeclaringTypeTest.java	2009-08-18 13:18:51 UTC (rev 3548)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/annotatedItem/DeclaringTypeTest.java	2009-08-18 15:26:57 UTC (rev 3549)
@@ -33,7 +33,7 @@
 public class DeclaringTypeTest extends AbstractWebBeansTest
 {
 
-   @Test(groups="broken")
+   @Test
    public void testInheritance()
    {
       AnnotatedType<Child> type = getCurrentManager().createAnnotatedType(Child.class);




More information about the weld-commits mailing list