[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