[
https://issues.jboss.org/browse/SOLDER-116?page=com.atlassian.jira.plugin...
]
Jozef Hartinger reassigned SOLDER-116:
--------------------------------------
Assignee: Jozef Hartinger
BeanBuilder create beans that don't support InjectionPoint
injection
--------------------------------------------------------------------
Key: SOLDER-116
URL:
https://issues.jboss.org/browse/SOLDER-116
Project: Seam Solder
Issue Type: Bug
Components: Builders
Affects Versions: 3.0.0.Final
Environment: MacOS X 10.7 (apple jdk 6) with Arquillian and weld-ee-embedded-1.1
container or JBoss AS 7
Reporter: Antoine Sabot-Durand
Assignee: Jozef Hartinger
Priority: Critical
I wrote a bean like this one :
{code:java}
@MyQualifier
public class MyBean {
@Inject
InjectionPoint ip;
public String saySomething() {
String value = "";
if (ip != null)
value = ip.getAnnotated().getAnnotation(MyQualifier.class).value();
return "Hello CDI World " + value;
}
}
{code}
with MyQualifier being a simple qualifier with a non binding parameter value.
And I wrote an extension which register another version of this bean without Qualifier
{code:java}
public class MyExtension implements Extension {
@SuppressWarnings({ "unchecked", "rawtypes" })
public void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager bm) {
AnnotatedTypeBuilder annoBuilder = new
AnnotatedTypeBuilder().readFromType(MyBean.class).removeFromClass(
MyQualifier.class);
AnnotatedType myAnnotatedType = annoBuilder.create();
BeanBuilder beanBuilder = new BeanBuilder(bm).readFromType(myAnnotatedType);
abd.addBean(beanBuilder.create());
}
}
{code}
When bootstrapping Weld I have the following exception :
{noformat}
org.jboss.weld.exceptions.DefinitionException: WELD-001405 Cannot inject [field] @Inject
org.jboss.solderbug.MyBean.ip in a class which isnt a bean
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:280)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:139)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:389)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:371)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:390)
at
org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.TestContainer.startContainer(TestContainer.java:257)
at
org.jboss.arquillian.container.weld.ee.embedded_1_1.WeldEEMockContainer.deploy(WeldEEMockContainer.java:98)
...
{noformat}
If I comment the @Inject line in the bean everything is fine and I can use both version
of the bean (with or without qualifier)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira