[cdi-dev] [JBoss JIRA] (CDI-573) Review code of CDI class to switch to ServiceLoader
Antonin Stefanutti (JIRA)
issues at jboss.org
Fri Apr 29 04:57:00 EDT 2016
[ https://issues.jboss.org/browse/CDI-573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13198888#comment-13198888 ]
Antonin Stefanutti commented on CDI-573:
----------------------------------------
As I moved from {{2.0-EDR1}} to {{2.0-EDR2}} and the {{getCDIProvider}} method visibility changed to become private, is the following code the expected way for a client to get a reference to the container:
{code}
CDI container = StreamSupport.stream(
ServiceLoader.load(CDIProvider.class, CDI.class.getClassLoader()).spliterator(), false)
.findFirst()
.map(CDIProvider::initialize)
.orElseThrow(() -> new IllegalStateException("No CDIProvider found in the classpath!"));
{code}
Instead of {{CDI.getCDIProvider().initialize()}}?
> Review code of CDI class to switch to ServiceLoader
> ---------------------------------------------------
>
> Key: CDI-573
> URL: https://issues.jboss.org/browse/CDI-573
> Project: CDI Specification Issues
> Issue Type: Feature Request
> Components: Concepts
> Affects Versions: 2.0-EDR1
> Reporter: Antoine Sabot-Durand
> Assignee: Antoine Sabot-Durand
> Fix For: 2.0 (proposed)
>
>
> Right now {{CDI}} seems to mimics the JDK service loader mechanism in the the private {{findAllProviders}} method.
> In order to get rid of useless code in the API and to limit compatibility issues with JDK9 and jigsaw, I think we should change this code and use Service Loader instead of doing something similar.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the cdi-dev
mailing list