[cdi-dev] [JBoss JIRA] (CDI-377) automatic JSR-330 annotation processing problematic

Reuben Pasquini (JIRA) jira-events at lists.jboss.org
Tue Sep 17 14:46:04 EDT 2013


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

Reuben Pasquini commented on CDI-377:
-------------------------------------

@Mark - Maven 3.1 may be ok with @Inject annotations - for example - guice is lazy in its annotation processing, so guice will only inject a mavin class if it's required by some class needed at runtime:

     class Plugin { ... @Inject() public Plugin( MavinThing thing, ... ) { ... } ... }

In other words - mavin's IOC world can exist along side some plugin's IOC world 
assuming the two worlds are working with their own set of classes.
I guess OSGi is designed for this kind of plugin dso hell ...

I think CDI is causing problems, because it eagerly allocates @Singleton classes that may not be needed at runtime, and may not have all dependencies available either.
There are several ways CDI could make itself a more friendly JSR330 neighbor.
It would be great if either or both of:

  o. CDI ignored jars that do not include a beans.xml
  o. CDI provided some outside-the-jar override mechanism in a .war or .ear or whatever
    file like WEB-INF/web.xml or the app-root META-INF/beans.xml:
          <cdi-config><exclude-jar>guava.jar</...></cdi-config>

Something like that ...

                
> automatic JSR-330 annotation processing problematic
> ---------------------------------------------------
>
>                 Key: CDI-377
>                 URL: https://issues.jboss.org/browse/CDI-377
>             Project: CDI Specification Issues
>          Issue Type: Bug
>          Components: Java EE integration
>    Affects Versions: 1.1.PFD
>         Environment: glassfish-4
>            Reporter: Reuben Pasquini
>              Labels: CDI, guava, guice
>             Fix For: 1.1.PFD
>
>
> The jsr-330 dependency injection annotations (javax.inject.*) find use in javase environments using IOC packages like guice.
> Adding a dependency on a jar that uses guice or whatever in a javase environment
> to a war deployed to a jee7 container 
> results in CDI processing annotated classes intended for 
> app-managed injection.  See this ticket filed with guava for a concrete example:
>     https://code.google.com/p/guava-libraries/issues/detail?id=1433

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the cdi-dev mailing list