I see. What you did is to leverage the existing CDI-1.1 API and enhance it with new
functionality.
But actually it is not in the CDI spec yet. That was the part which confused me.
Regarding shutdown: well that's not a small issue I fear. And you still have no
whatever control over the contexts. Which is another blocker imo.
It's always good to re-think other usages of our APIs. Let me sleep a few days
thinking about it.
LieGrue,
strub
On Saturday, 20 December 2014, 17:40, Antoine Sabot-Durand
<antoine(a)sabot-durand.net> wrote:
>
> Le 19 déc. 2014 à 23:48, Mark Struberg <struberg(a)yahoo.de> a écrit :
>
> This is nowhere near portable as far as I can see.
That’s probably why it took me 5 minutes to port it successfully to OpenWebBeans
1.5.0 ;)
look at the modified file :
https://github.com/antoinesd/openwebbeans/blob/1.5.0-with-se/webbeans-imp...
It probably needs something nicer to detect if OWB is running in SE or EE but
the idea is here
> And we had container specific hacks since day 1 so to say…
I’m not talking about container. After having added specific part in each
implementation, we have the same way to start CDI
I demonstrated that CDI 1.1+ this piece of code could boot CDI in SE if the
implementation has what is required
Look at new version of OWB standalone-sample:
https://github.com/antoinesd/openwebbeans/blob/1.5.0-with-se/samples/stan...
No more import of OWB specific classes and yet it runs.
> Or maybe I don't get it? How would that work in OWB?
> Would it even work in older Weld versions (1.2.x)?
Of course not because Weld 1.2 -> CDI 1.0. I’m talking about CDI 1.1 and 1.2
as it is written in this email subject.
Of course there are limitation especially regarding shutdown. But it is portable
way of booting CDI at spec level. Could be interesting to addd this trick to our
simple and communicate on it to say that portable CDI support for SE is already
here.
We’ll provide a better support in CDI 2.0 but in the meantime this can be
useful.
Antoine
>
> LieGrue,
> strub
>
>
>
> On Friday, 19 December 2014, 12:45, Antoine Sabot-Durand
<antoine(a)sabot-durand.net> wrote:
>
>
>>
>>
>> Of course Jozef: We need something more controllable in CDI 2.0. But it
can be a basic alternative that works right now in CDI 1.2.
>>
>> Antoine Sabot-Durand
>>
>> Le 19 déc. 2014 à 12:24, Jozef Hartinger <jharting(a)redhat.com> a
écrit :
>>
>>
>> Interesting idea (for CDI 1.2 containers running in SE). As you wrote
for CDI 2.0 we need much more.
>>
>>
>> On 12/19/2014 12:03 PM, Antoine Sabot-Durand wrote:
>>
>> Hi guys,
>>
>>
>> As I said during last meeting I was puzzled by the non use of CDI and
CDIProvider to address CDI boot in Java SE.
>>
>>
>> I just made a small test adding this class to weld-se :
>>
>>
>> public class WeldSEProvider extends WeldProvider {
>>
>> private static boolean firstTime = true;
>>
>> @Override
>> public CDI<Object> getCDI() {
>> if (firstTime) {
>> new Weld().initialize();
>> firstTime = false;
>> }
>>
>> return super.getCDI();
>> }
>>
>> }
>>
>>
>>
>> and replaced the content of
META-INF/services/javax.enterprise.inject.spi.CDIProvider by my provider
>>
>>
>> org.jboss.weld.environment.se.WeldSEProvider
>>
>>
>> Using this new version of Weld-se in my project Iw as able to boot CDI
without implementation classes :
>>
>>
>> public class Main {
>>
>> public static void main(String[] args) throws Exception {
>> CDI cdi = CDI.current();
>> BeanManager bm = cdi.getBeanManager();
>>
>> }
>>
>> }
>>
>>
>> Code is available in my weld fork :
https://github.com/antoinesd/weld-core/blob/2.2-SE/environments/se/core/s...
>>
>>
>> Similar CDIProvider can be written for OWB as well.
>>
>>
>> I may have missed something, but I think we can figure out something
like that to provide SE support in CDI today, even if it’s not as complete as
the one we plan to push in CDI 2.0
>>
>>
>> Antoine
>>
>>
>> _______________________________________________
>> 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.
>>
>>