Re: [pax-cdi] Application scoped bean and its lifecycle

2017-05-22 Thread Pavel
Weld developers suggested another way with using weld 2.3.5:

@ApplicationScoped
class Test {

public Test() {
System.out.println("Test was created.");
}

void appContextInit(@Observes @Initialized(ApplicationScoped.class) 
Object init) {
  // Empty body - force eager instantiation
}

@PostConstruct
void onInit() {
  // logic... will only be called once
  System.out.println("Test was initialized");
}

@PreDestroy
void onDestroy() {
  // logic will be called once before
System.out.println("Test was destroyed.");
}

}

They say that Weld 2.4.4.Final (that should fix this bug) will 
approximately released Jun/17.

понедельник, 22 мая 2017 г., 13:37:33 UTC+3 пользователь Marc Schlegel 
написал:
>
> Hi Pavel. Thanks for your findings regarding the Weld issues and providing 
> a workaround.
>
> BTW: I doubt that you will get more answers by posting jokes about the 
> community. Please keep in mind that PAX-CDI 1.0.0 is not released yet, so 
> there are probably not many people using it yet. 
>
> regards
> Marc
>
> Am Montag, 22. Mai 2017 12:15:34 UTC+2 schrieb Pavel:
>>
>> Hi all
>>
>> With developers of WELD the problem was found out. 
>>
>> Up to version 2.2 Weld did not fire @Initialized/@Destroyed events for
>>   @ApplicationScoped for non-web modules. The behavior changed in 2.3 -
>>  see also WELD-1821 [2]. Issue WELD-2389 [3] was created.
>>
>> So, @ApplicationScoped events are broken in PAX-CDI 1.0.0.RC2 
>> that uses weld 2.3.5.Final and such beans are not singletons.
>>
>> As a workaround I replaced 2.3.5.Final with 2.2.16.Final. Besides in 
>> 2.2.16 in
>> manifest I had to export package org.jboss.weld.config which is used by 
>> pax-cdi.  
>>
>> Now  on bundle start:
>> Test was created.
>> Test was initialized
>>
>> Now  on bundle stop:
>> Test was destroyed.
>>
>> JOKE: What is common in working with PAX-CDI and searching for 
>> extraterrestrial civilizations?
>> You send messages and hope to get answer. But... no, not any message 
>> ever...
>>
>> [2] https://issues.jboss.org/browse/WELD-1821
>>
>> [3] https://issues.jboss.org/browse/WELD-2389
>>
>>
>> воскресенье, 21 мая 2017 г., 21:51:26 UTC+3 пользователь Pavel написал:
>>>
>>> Hi all
>>>
>>> Sorry for one more message but I have rather strange situation.  I use 
>>> pax-cdi -1.0.0.RC2 and weld 2.3.5.Final.
>>>
>>> This is the test class: 
>>>
>>> import javax.enterprise.context.ApplicationScoped;
>>> import javax.enterprise.context.Destroyed;
>>> import javax.enterprise.context.Initialized;
>>> import javax.enterprise.event.Observes;
>>>
>>> @ApplicationScoped
>>> public class Test {
>>>
>>> public Test() {
>>> System.out.println("Test was created.");
>>> }
>>>
>>> public void init(@Observes @Initialized(ApplicationScoped.class) 
>>> Object init) {
>>> System.out.println("Test was initialized");
>>> }
>>>
>>> public void destroy(@Observes @Destroyed(ApplicationScoped.class) 
>>> Object init) {
>>> System.out.println("Test was destroyed.");
>>> }
>>> }
>>>
>>> When I start test-bundle I see the following output:
>>> Test was created.
>>> Test was initialized
>>> Test was initialized
>>> When I stop test-bundle I see the following output:
>>> Test was destroyed.
>>> Test was created.
>>> Test was destroyed.
>>>
>>> So as result this bean was two times created, two times initialized and 
>>> two times destroyed.
>>>
>>> I expected that this bean must be once created, one initialized and once 
>>> destroyed.
>>>
>>> Is this a bug that must be reported or my mistake?
>>>
>>> Best regards, Pavel
>>>
>>>
>>>

-- 
-- 
--
OPS4J - http://www.ops4j.org - ops4j@googlegroups.com

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ops4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [pax-cdi] Application scoped bean and its lifecycle

2017-05-22 Thread Marc Schlegel
Hi Pavel. Thanks for your findings regarding the Weld issues and providing 
a workaround.

BTW: I doubt that you will get more answers by posting jokes about the 
community. Please keep in mind that PAX-CDI 1.0.0 is not released yet, so 
there are probably not many people using it yet. 

regards
Marc

Am Montag, 22. Mai 2017 12:15:34 UTC+2 schrieb Pavel:
>
> Hi all
>
> With developers of WELD the problem was found out. 
>
> Up to version 2.2 Weld did not fire @Initialized/@Destroyed events for
>   @ApplicationScoped for non-web modules. The behavior changed in 2.3 -
>  see also WELD-1821 [2]. Issue WELD-2389 [3] was created.
>
> So, @ApplicationScoped events are broken in PAX-CDI 1.0.0.RC2 
> that uses weld 2.3.5.Final and such beans are not singletons.
>
> As a workaround I replaced 2.3.5.Final with 2.2.16.Final. Besides in 
> 2.2.16 in
> manifest I had to export package org.jboss.weld.config which is used by 
> pax-cdi.  
>
> Now  on bundle start:
> Test was created.
> Test was initialized
>
> Now  on bundle stop:
> Test was destroyed.
>
> JOKE: What is common in working with PAX-CDI and searching for 
> extraterrestrial civilizations?
> You send messages and hope to get answer. But... no, not any message 
> ever...
>
> [2] https://issues.jboss.org/browse/WELD-1821
>
> [3] https://issues.jboss.org/browse/WELD-2389
>
>
> воскресенье, 21 мая 2017 г., 21:51:26 UTC+3 пользователь Pavel написал:
>>
>> Hi all
>>
>> Sorry for one more message but I have rather strange situation.  I use 
>> pax-cdi -1.0.0.RC2 and weld 2.3.5.Final.
>>
>> This is the test class: 
>>
>> import javax.enterprise.context.ApplicationScoped;
>> import javax.enterprise.context.Destroyed;
>> import javax.enterprise.context.Initialized;
>> import javax.enterprise.event.Observes;
>>
>> @ApplicationScoped
>> public class Test {
>>
>> public Test() {
>> System.out.println("Test was created.");
>> }
>>
>> public void init(@Observes @Initialized(ApplicationScoped.class) 
>> Object init) {
>> System.out.println("Test was initialized");
>> }
>>
>> public void destroy(@Observes @Destroyed(ApplicationScoped.class) 
>> Object init) {
>> System.out.println("Test was destroyed.");
>> }
>> }
>>
>> When I start test-bundle I see the following output:
>> Test was created.
>> Test was initialized
>> Test was initialized
>> When I stop test-bundle I see the following output:
>> Test was destroyed.
>> Test was created.
>> Test was destroyed.
>>
>> So as result this bean was two times created, two times initialized and 
>> two times destroyed.
>>
>> I expected that this bean must be once created, one initialized and once 
>> destroyed.
>>
>> Is this a bug that must be reported or my mistake?
>>
>> Best regards, Pavel
>>
>>
>>

-- 
-- 
--
OPS4J - http://www.ops4j.org - ops4j@googlegroups.com

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ops4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[pax-cdi] Application scoped bean and its lifecycle

2017-05-21 Thread Pavel
Hi all

Sorry for one more message but I have rather strange situation.  I use 
pax-cdi -1.0.0.RC2 and weld 2.3.5.Final.

This is the test class: 

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Destroyed;
import javax.enterprise.context.Initialized;
import javax.enterprise.event.Observes;

@ApplicationScoped
public class Test {

public Test() {
System.out.println("Test was created.");
}

public void init(@Observes @Initialized(ApplicationScoped.class) Object 
init) {
System.out.println("Test was initialized");
}

public void destroy(@Observes @Destroyed(ApplicationScoped.class) 
Object init) {
System.out.println("Test was destroyed.");
}
}

When I start test-bundle I see the following output:
Test was created.
Test was initialized
Test was initialized
When I stop test-bundle I see the following output:
Test was destroyed.
Test was created.
Test was destroyed.

So as result this bean was two times created, two times initialized and two 
times destroyed.

I expected that this bean must be once created, one initialized and once 
destroyed.

Is this a bug that must be reported or my mistake?

Best regards, Pavel


-- 
-- 
--
OPS4J - http://www.ops4j.org - ops4j@googlegroups.com

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ops4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.