[cdi-dev] [JBoss JIRA] (CDI-245) Promote the right way how extensions should communicate with each other during container initialization

Mark Struberg (JIRA) jira-events at lists.jboss.org
Sat Aug 25 03:38:16 EDT 2012

    [ https://issues.jboss.org/browse/CDI-245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12713686#comment-12713686 ] 

Mark Struberg commented on CDI-245:

>  as extensions are not defined as beans
au contraire! Extensions are exactly defined as @ApplicationScoped @Default beans in CDI-1.0:

An extension is a service provider of the service javax.enterprise.inject.spi.Extension declared in META-INF/services. ...

For each service provider, the container must provide a bean of scope @ApplicationScoped and qualifier @Default,

I'm also not sure if the re-wording is clear enough. You changed:
- If other beans are injected into service providers
+ If other beans are injected into an extension's observer methods

But this leaves out direct injection into CDI-Extensions

public class BrokenExtension implements Extension {
  private @Inject OtherExtension notAllowed;

  private @Inject BeanManager holymolyIsThisAllowedQuestionmark;
The question whether the direct injection of a BeanManager into an Extension is ok for CDI-1.0 remains. Not that I think this is supported by neither Weld nor OWB... ;)

I also completely miss the change where you define firing CDI lifecycle events as non-portable.
> Promote the right way how extensions should communicate with each other during container initialization
> -------------------------------------------------------------------------------------------------------
>                 Key: CDI-245
>                 URL: https://issues.jboss.org/browse/CDI-245
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>    Affects Versions: 1.0, 1.1.EDR
>            Reporter: Martin Kouba
>            Assignee: Pete Muir
>             Fix For: 1.1.PRD
> This is not clear right now. The spec allows (does not forbid) extensions to fire regular events via {{BeanManager}} and I believe this should be _the right way_. See also CDI-109 discussion. However we should also state that extensions _may not fire container lifecycle events_ as this could lead to unexpected results (and it's pretty broken imho).

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


More information about the cdi-dev mailing list