[
https://issues.jboss.org/browse/CDI-573?page=com.atlassian.jira.plugin.sy...
]
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)