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 <[email protected]> 
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 <[email protected]> 
>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" <[email protected]> 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 <[email protected]> 
>>>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" <[email protected]> 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 
>>>>><[email protected]> 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 
>>>>>><[email protected]> 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 <[email protected]> wrote:
>>>>>>>
>>>>>>>simply via a CDI event probably?
>>>>>>>>
>>>>>>>>LieGrue,
>>>>>>>>strub
>>>>>>>>
>>>>>>>>
>>>>>>>>On Friday, 11 April 2014, 15:30, Lars-Fredrik Smedberg 
>>>>>>>><[email protected]> 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 <[email protected]> 
>>>>>>>>>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 
>>>>>>>>>><[email protected]> 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 [email protected], 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 [email protected], 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 [email protected], 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 [email protected], 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 [email protected], and destroy all copies of this 
>message and any attachments. 
>
>

Reply via email to