openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: Question on @ApplicationScoped beans
Date Tue, 15 Apr 2014 16:44:25 GMT
see 11.5

"For each service provider, the container must provide a bean of scope @ApplicationScoped
and qualifier @Default, supporting injection of a reference to the service provider instance.
The bean types of this bean include the class of the service provider and all superclasses
and interfaces."


On Tuesday, 15 April 2014, 8:40, Lars-Fredrik Smedberg <itsmeden@gmail.com> wrote:
 
Hi Mark
>
>
>Thanks for the tip, works fine....
>
>
>Out of curiosity, I see in WELD Reference 16.1 that it says that Extensions can be injected
but I not find anything in JSR 299 about that. Have I missed it or is it written in a different
way?
>
>
>Thanks
>Lars-Fredrik
>
>
>
>On Mon, Apr 14, 2014 at 9:52 PM, Lars-Fredrik Smedberg <itsmeden@gmail.com> wrote:
>
>Hi Mark
>>So if I understood it correctly  @ApplicationScoped bean just @Inject MyExtension
myExt... and the MyExtension class could just examine the classes and their annotation in
the ProcessAnnotatedType event (as I already do)?
>>Thanks for pointing that out, will try it out, it will also simplify the code I think
>>Thanks again!
>>Regards
>>Lars-Fredrik
>>On Apr 14, 2014 9:46 PM, "Mark Struberg" <struberg@yahoo.de> wrote:
>>
>>Hi Lars!
>>>
>>>you don't need to do this. 
>>>
>>>
>>>You should be able to @Inject the Extension in any bean you like. And if your
Extension has a getter with the found beans, then you will have direct access.
>>>This is perfectly conform to the spec and must work on all containers. We use
the same trick in DeltaSpike.
>>>
>>>LieGrue,
>>>strub
>>>
>>>
>>>
>>>On Monday, 14 April 2014, 17:36, Lars-Fredrik Smedberg <itsmeden@gmail.com>
wrote:
>>> 
>>>Hi Mark
>>>>Sorry I misunderstood you. We want to at startup create a JAXBContext for
all classes that has a specific annotation. This JAXBContext we later want to use in a specific
factory class in a @Produces method.
>>>>The version we have now initialize an @ApplicationScoped bean in AfterbeanDiscovery
and sets the found classes in a method call to that bean. 
>>>>Regards
>>>>Lars-Fredrik
>>>>On Apr 14, 2014 5:23 PM, "Mark Struberg" <struberg@yahoo.de> wrote:
>>>>
>>>>Hi!
>>>>>
>>>>>Again: You should NOT fire a CDI event in AfterBeanDiscovery. The reason
is that the Contexts may not have been started at this stage. 
>>>>>
>>>>>E.g. you will not find any @SessionScoped contextual instance that way...
>>>>>
>>>>>
>>>>>
>>>>>Maybe you start explaining the use case you have. What is the problem
you like to solve?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>LieGrue,
>>>>>strub
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>On Monday, 14 April 2014, 16:33, Lars-Fredrik Smedberg <itsmeden@gmail.com>
wrote:
>>>>> 
>>>>>Hi again
>>>>>>
>>>>>>
>>>>>>Maybe I was not all clear in my question. My question is:
>>>>>>
>>>>>>
>>>>>>- In my extension class, when observering CDI container events when
(when observing what type of events) is it okay to fire an CDI event that will reach all CDI
managed beans observing the same event?
>>>>>>
>>>>>>
>>>>>>Regards
>>>>>>Lars-Fredrik Smedberg
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>On Fri, Apr 11, 2014 at 3:39 PM, Lars-Fredrik Smedberg <itsmeden@gmail.com>
wrote:
>>>>>>
>>>>>>Hi Mark
>>>>>>>
>>>>>>>
>>>>>>>So I could fire a CDI event in the AfterDeploymentValidation
method in my CDI Extension and @Observe the same type of event in my @ApplicationScoped bean?
Is there any possibility that the CDI event will be fired and not seen by the bean in this
case? I don't know the details here about when I can fire the events and who will see them
if its done in a CDI Extension during startup.
>>>>>>>
>>>>>>>
>>>>>>>Thanks for the help so far
>>>>>>>
>>>>>>>
>>>>>>>Regards
>>>>>>>Lars-Fredrik
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>On Fri, Apr 11, 2014 at 3:33 PM, Mark Struberg <struberg@yahoo.de>
wrote:
>>>>>>>
>>>>>>>simply via a CDI event probably?
>>>>>>>>
>>>>>>>>LieGrue,
>>>>>>>>strub
>>>>>>>>
>>>>>>>>
>>>>>>>>On Friday, 11 April 2014, 15:30, Lars-Fredrik Smedberg <itsmeden@gmail.com>
wrote:
>>>>>>>> 
>>>>>>>>Hi Mark
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>Thanks for the answer. Its a shared WAS environment so
we will see what happens when we do a "hard" restart of all EARs in that WAS.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>If I have CDI extension that needs to communicate to the
application all classes with a certain annotation, how would you suggest to do that 
>>>>>>>>>without doing it the way I do it now, that is initialize
a bean in a CDI extension in AfterDeploymentValidation?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>Regards
>>>>>>>>>Lars-Fredrik
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>On Fri, Apr 11, 2014 at 2:19 PM, Mark Struberg <struberg@yahoo.de>
wrote:
>>>>>>>>>
>>>>>>>>>Nope, this MUST NOT happen.
>>>>>>>>>>
>>>>>>>>>>Otoh it's also not supported to initialize any bean
in AfterDeploymentValidation, as only _after_ that event all the contexts will get started.
>>>>>>>>>>
>>>>>>>>>>It's by incident that the ApplicationContext is already
started before in OWB - but there is nothing in the spec which guarantees this!
>>>>>>>>>>
>>>>>>>>>>It might be some classloader issue as well. I'd open
a PMR for it.
>>>>>>>>>>
>>>>>>>>>>LieGrue,
>>>>>>>>>>strub
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>On Friday, 11 April 2014, 10:19, Lars-Fredrik Smedberg
<itsmeden@gmail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>>Hi!
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>We have an @ApplicationScoped bean that is first
created in a CDI Extension (in a method that @Observes AfterDeploymentValidation) .
>>>>>>>>>>>After creation the method calls an init-method
(together with some data collected in a method @Observes ProcessAnnotatedType) on the
>>>>>>>>>>>@ApplicationScoped bean which internally sets
a flag. This flag is checked by all business methods on the bean (a flag that marks the
>>>>>>>>>>>bean as initialized). 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>There are no other method that explicitly sets
the flag to false, the only time the flag is false is when the bean has been created the first 
>>>>>>>>>>>time.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>We are running WAS 8.5.5.1 and see in our trace
logs that after some time the flag is false which indicates that the @ApplicationScoped
>>>>>>>>>>>bean has been recreated.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>Questions:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>- Can @ApplicationScoped beans be recycled/reinitialized
somehow? And if so under what circumstances?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>Regards
>>>>>>>>>>>Lars-Fredrik
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>-- 
>>>>>>>>>>>Med vänlig hälsning / Best regards
>>>>>>>>>>>
>>>>>>>>>>>Lars-Fredrik Smedberg
>>>>>>>>>>>
>>>>>>>>>>>STATEMENT OF CONFIDENTIALITY:
>>>>>>>>>>>The information contained in this electronic message
and any
>>>>>>>>>>>attachments to this message are intended for the
exclusive use of the
>>>>>>>>>>>address(es) and may contain confidential or privileged
information. If
>>>>>>>>>>>you are not the intended recipient, please notify
Lars-Fredrik Smedberg
>>>>>>>>>>>immediately at itsmeden@gmail.com, and destroy
all copies of this 
>>>>>>>>>>>message and any attachments. 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>-- 
>>>>>>>>>Med vänlig hälsning / Best regards
>>>>>>>>>
>>>>>>>>>Lars-Fredrik Smedberg
>>>>>>>>>
>>>>>>>>>STATEMENT OF CONFIDENTIALITY:
>>>>>>>>>The information contained in this electronic message and
any
>>>>>>>>>attachments to this message are intended for the exclusive
use of the
>>>>>>>>>address(es) and may contain confidential or privileged
information. If
>>>>>>>>>you are not the intended recipient, please notify Lars-Fredrik
Smedberg
>>>>>>>>>immediately at itsmeden@gmail.com, and destroy all copies
of this 
>>>>>>>>>message and any attachments. 
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>-- 
>>>>>>>Med vänlig hälsning / Best regards
>>>>>>>
>>>>>>>Lars-Fredrik Smedberg
>>>>>>>
>>>>>>>STATEMENT OF CONFIDENTIALITY:
>>>>>>>The information contained in this electronic message and any
>>>>>>>attachments to this message are intended for the exclusive use
of the
>>>>>>>address(es) and may contain confidential or privileged information.
If
>>>>>>>you are not the intended recipient, please notify Lars-Fredrik
Smedberg
>>>>>>>immediately at itsmeden@gmail.com, and destroy all copies of this

>>>>>>>message and any attachments. 
>>>>>>
>>>>>>
>>>>>>
>>>>>>-- 
>>>>>>Med vänlig hälsning / Best regards
>>>>>>
>>>>>>Lars-Fredrik Smedberg
>>>>>>
>>>>>>STATEMENT OF CONFIDENTIALITY:
>>>>>>The information contained in this electronic message and any
>>>>>>attachments to this message are intended for the exclusive use of
the
>>>>>>address(es) and may contain confidential or privileged information.
If
>>>>>>you are not the intended recipient, please notify Lars-Fredrik Smedberg
>>>>>>immediately at itsmeden@gmail.com, and destroy all copies of this

>>>>>>message and any attachments. 
>>>>>>
>>>>>>
>>>>
>>>>
>
>
>
>-- 
>Med vänlig hälsning / Best regards
>
>Lars-Fredrik Smedberg
>
>STATEMENT OF CONFIDENTIALITY:
>The information contained in this electronic message and any
>attachments to this message are intended for the exclusive use of the
>address(es) and may contain confidential or privileged information. If
>you are not the intended recipient, please notify Lars-Fredrik Smedberg
>immediately at itsmeden@gmail.com, and destroy all copies of this 
>message and any attachments. 
>
>
Mime
View raw message