Author: pete.muir(a)jboss.org
Date: 2009-01-22 19:52:16 -0500 (Thu, 22 Jan 2009)
New Revision: 1185
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java
Log:
One more :-)
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java 2009-01-23
00:47:31 UTC (rev 1184)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java 2009-01-23
00:52:16 UTC (rev 1185)
@@ -216,8 +216,7 @@
@Override
protected void preCheckSpecialization()
{
- // Need to do getDeclaredMethod!
- if
(declaringBean.getAnnotatedItem().getSuperclass().getMethod(getAnnotatedItem().getAnnotatedMethod())
== null)
+ if
(declaringBean.getAnnotatedItem().getSuperclass().getDeclaredMethod(getAnnotatedItem().getAnnotatedMethod())
== null)
{
throw new DefinitionException("Specialized producer method does not
override a method on the direct superclass");
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java 2009-01-23
00:47:31 UTC (rev 1184)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java 2009-01-23
00:52:16 UTC (rev 1185)
@@ -118,6 +118,8 @@
*/
public AnnotatedMethod<?> getMethod(Method method);
+ public AnnotatedMethod<?> getDeclaredMethod(Method method);
+
/**
* Gets all with parameters annotated with annotationType
*
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java 2009-01-23
00:47:31 UTC (rev 1184)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java 2009-01-23
00:52:16 UTC (rev 1185)
@@ -85,4 +85,9 @@
return delegate().isParameterizedType();
}
+ public AnnotatedMethod<?> getDeclaredMethod(Method method)
+ {
+ return delegate().getDeclaredMethod(method);
+ }
+
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2009-01-23
00:47:31 UTC (rev 1184)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2009-01-23
00:52:16 UTC (rev 1185)
@@ -598,6 +598,19 @@
return null;
}
+ public AnnotatedMethod<?> getDeclaredMethod(Method method)
+ {
+ // TODO Cache?
+ for (AnnotatedMethod<?> annotatedMethod : declaredMethods)
+ {
+ if (annotatedMethod.getName().equals(method.getName()) &&
Arrays.equals(annotatedMethod.getParameterTypesAsArray(), method.getParameterTypes()))
+ {
+ return annotatedMethod;
+ }
+ }
+ return null;
+ }
+
/**
* Gets a string representation of the class
*
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java 2009-01-23
00:47:31 UTC (rev 1184)
+++
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java 2009-01-23
00:52:16 UTC (rev 1185)
@@ -96,7 +96,7 @@
deployBeans(FurnitureShop_Broken.class);
}
- @Test(groups="broken", expectedExceptions=DefinitionException.class)
@SpecAssertion(section="3.4.5")
+ @Test(expectedExceptions=DefinitionException.class)
@SpecAssertion(section="3.4.5")
public void testSpecializedMethodIndirectlyOverridesAnotherProducerMethod()
{
deployBeans(ShoeShop_Broken.class);
Show replies by date