Author: pete.muir(a)jboss.org
Date: 2010-02-17 10:05:41 -0500 (Wed, 17 Feb 2010)
New Revision: 5867
Modified:
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/enterprise/nonstatic/NonStaticFieldOfSessionBeanTest.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java
core/trunk/impl/src/main/java/org/jboss/weld/logging/messages/BeanMessage.java
core/trunk/impl/src/main/resources/org/jboss/weld/messages/bean_en.properties
Log:
WELD-432
Modified:
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/enterprise/nonstatic/NonStaticFieldOfSessionBeanTest.java
===================================================================
---
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/enterprise/nonstatic/NonStaticFieldOfSessionBeanTest.java 2010-02-17
15:05:04 UTC (rev 5866)
+++
cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/enterprise/nonstatic/NonStaticFieldOfSessionBeanTest.java 2010-02-17
15:05:41 UTC (rev 5867)
@@ -32,7 +32,6 @@
{
@Test
@SpecAssertion(section = "3.4.2", id = "h")
- //WELD-432
public void testNonStaticFieldOfSessionBeanCannotBeProducerField()
{
assert false;
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java 2010-02-17
15:05:04 UTC (rev 5866)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/ProducerField.java 2010-02-17
15:05:41 UTC (rev 5867)
@@ -19,6 +19,7 @@
import static org.jboss.weld.logging.Category.BEAN;
import static org.jboss.weld.logging.LoggerFactory.loggerFactory;
import static
org.jboss.weld.logging.messages.BeanMessage.INJECTED_FIELD_CANNOT_BE_PRODUCER;
+import static
org.jboss.weld.logging.messages.BeanMessage.PRODUCER_FIELD_ON_SESSION_BEAN_MUST_BE_STATIC;
import java.lang.reflect.Field;
import java.util.Set;
@@ -131,17 +132,21 @@
}
});
- checkProducerFieldAnnotations();
+ checkProducerField();
}
}
- protected void checkProducerFieldAnnotations()
+ protected void checkProducerField()
{
if (getWeldAnnotated().isAnnotationPresent(Inject.class))
{
throw new DefinitionException(INJECTED_FIELD_CANNOT_BE_PRODUCER,
getWeldAnnotated(), getWeldAnnotated().getDeclaringType());
}
+ if (getDeclaringBean() instanceof SessionBean<?> &&
!field.isStatic())
+ {
+ throw new DefinitionException(PRODUCER_FIELD_ON_SESSION_BEAN_MUST_BE_STATIC,
getWeldAnnotated(), getWeldAnnotated().getDeclaringType());
+ }
}
protected void defaultDispose(T instance)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/logging/messages/BeanMessage.java
===================================================================
---
core/trunk/impl/src/main/java/org/jboss/weld/logging/messages/BeanMessage.java 2010-02-17
15:05:04 UTC (rev 5866)
+++
core/trunk/impl/src/main/java/org/jboss/weld/logging/messages/BeanMessage.java 2010-02-17
15:05:41 UTC (rev 5867)
@@ -129,6 +129,7 @@
@MessageId("000092") PARAM_NOT_IN_PARAM_LIST,
@MessageId("000093") CANNOT_READ_OBJECT,
@MessageId("000094") INJECTED_FIELD_CANNOT_BE_PRODUCER,
- @MessageId("000095") GENERIC_SESSION_BEAN_MUST_BE_DEPENDENT;
+ @MessageId("000095") GENERIC_SESSION_BEAN_MUST_BE_DEPENDENT,
+ @MessageId("000096") PRODUCER_FIELD_ON_SESSION_BEAN_MUST_BE_STATIC;
}
Modified: core/trunk/impl/src/main/resources/org/jboss/weld/messages/bean_en.properties
===================================================================
---
core/trunk/impl/src/main/resources/org/jboss/weld/messages/bean_en.properties 2010-02-17
15:05:04 UTC (rev 5866)
+++
core/trunk/impl/src/main/resources/org/jboss/weld/messages/bean_en.properties 2010-02-17
15:05:41 UTC (rev 5867)
@@ -94,3 +94,4 @@
CANNOT_READ_OBJECT=Cannot read object
INJECTED_FIELD_CANNOT_BE_PRODUCER=Injected field {0} cannot be annotated @Produces on
{1}
GENERIC_SESSION_BEAN_MUST_BE_DEPENDENT=Session bean with generic class {0} must be
@Depedent scope
+PRODUCER_FIELD_ON_SESSION_BEAN_MUST_BE_STATIC=Producer fields on session beans must be
static. Field {0} declared on {1}
Show replies by date