[
https://issues.jboss.org/browse/CDI-671?page=com.atlassian.jira.plugin.sy...
]
Martin Kouba edited comment on CDI-671 at 12/16/16 3:13 AM:
------------------------------------------------------------
The other approach would be to simulate injection of {{Instance}} (this is what Weld
does):
||Injection point||Required type||Required qualifier||{{CDI}} equivalent||
|{{@Inject Instance<Object>}}|Object|(a)Default|CDI.current()|
|{{@Inject @Any
Instance<Object>}}|Object|(a)Any|CDI.current().select(Any.Literal.INSTANCE)|
|{{@Inject Instance<Foo>}}|Foo|(a)Default|CDI.current().select(Foo.class)|
|{{@Inject @Any
Instance<Foo>}}|Foo|(a)Any|CDI.current().select(Foo.class,Any.Literal.INSTANCE)|
|{{@Inject @MyQualifier
Instance<Foo>}}|Foo|(a)MyQualifier|CDI.current().select(Foo.class,MyQualifier.Literal.INSTANCE)|
In this case, we would have to specify that there are no required qualifiers by default
and {{@Default}} is added automatically during resolution if no qualifier selected.
was (Author: mkouba):
The other approach would be to simulate injection of {{Instance}} (this is what Weld
does):
||Injection point||Required type||Required qualifier||{{CDI}} equivalent||
|{{@Inject Instance<Object>}}|Object|(a)Default|CDI.current()|
|{{@Inject @Any
Instance<Object>}}|Object|(a)Any|CDI.current().select(Any.Literal.INSTANCE)|
|{{@Inject Instance<Foo>}}|Foo|(a)Default|CDI.current().select(Foo.class)|
|{{@Inject @Any
Instance<Foo>}}|Foo|(a)Any|CDI.current().select(Foo.class,Any.Literal.INSTANCE)|
In this case, we would have to specify that there are no required qualifiers by default
and {{@Default}} is added automatically during resolution if no qualifier selected.
SPI element related to Instance are missing info about their
qualifier
----------------------------------------------------------------------
Key: CDI-671
URL:
https://issues.jboss.org/browse/CDI-671
Project: CDI Specification Issues
Issue Type: Clarification
Components: Javadoc and API
Affects Versions: 2.0.Beta1
Reporter: Antoine Sabot-Durand
Fix For: 2.0 .Final
Following elements are related to {{Instance}} interface:
* {{CDI}} class implements {{Instance}}
* {{SeContainer}} extends {{Instance}}
* {{BeanManager.createInstance()}} returns and {{Instance}} object
If these {{Instance}} usage are all {{Instance<Object>}} there's no information
regarding their qualifier.
We should state in Javadoc and spec that these Instance behaves like an injected instance
with {{@Inject @Any Instance<Object>}} to allow access to all beans instance in the
container.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)