The CDIProvider serves as a kind of SPI for CDI's static methods to be
able to call into the implementation. I don't think reusing it also as a
user-facing code is a good idea. What people suggesting to reuse
CDIProvider had in mind, I think, was to reuse it as the SPI for talking
to the CDI implementation instead. That way, the initialize() static
method of CDIContainer/StartedCDI/whatever we call it can use
CDIProvider internally to actually start the container.
In addition, the current proposal does not make it possible to implement
parallel container instances.
Jozef
On 03/15/2015 05:03 PM, John D. Ament wrote:
HI all,
Apologies for being a week late on getting this doc together. I had
some personal issues pop up after my leg came out of its cast that
consumed most of my week last week.
Anywho, I've updated the doc with a summary of what was discussed with
CDI SE bootstrap support. You can find that here:
https://docs.google.com/document/d/1LgsGT-AAlrF72Z5pW4xNQiVjUHGUME46ZmB-w...
There are two minor changes that I made from where we last discussed,
as when I was putting together code I found some gaps and figured it
best to fix them here than later.
1. CDIProvider does not implement AutoCloseable. Since CDI class
maintains a reference to the provider, implementing AutoCloseable was
not adding anything.
2. I added a method boolean isInitialized() so that the caller can
know if they need to start the container (or if it's already running).
Locally, I've also modified the CDI.current() method to use
getCDIProvider() instead of internally finding the provider since we
now have a getter.
One thing I'd like to get feedback on is if calling
initialize/shutdown in a container should throw IllegalStateException,
or probably better to throw UnsupportedOperationException when called
in EE containers.
Let me know your thoughts.
John
_______________________________________________
cdi-dev mailing list
cdi-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/cdi-dev
Note that for all code provided on this list, the provider licenses the code under the
Apache License, Version 2 (
http://www.apache.org/licenses/LICENSE-2.0.html). For all other
ideas provided on this list, the provider waives all patent and other intellectual
property rights inherent in such information.