deltaspike-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Antoine Sabot-Durand <anto...@sabot-durand.net>
Subject Re: Observer in DeltaSpike 1.2.0/Weld 1.1.19.Final Not Working
Date Mon, 12 Jan 2015 14:26:23 GMT
Hi Deven,

More a CDI user question than a Deltaspike ;)

You need to provide an instance of your qualifier. As java doesn’t provide a way to create
such an instance easily, CDI provides an AnnotationLiteral class to do so. As your qualifier
doesn’t contain member you can create an anonymous class to do so :

beanMgr.fireEvent(this.config, new AnnotationLiteral<AppConfig>(){});

Antoine




> Le 12 janv. 2015 à 14:45, Deven Phillips <deven.phillips@gmail.com> a écrit :
> 
> Next question... I have created a qualifier:
> 
> import static java.lang.annotation.RetentionPolicy.*;
> import static java.lang.annotation.ElementType.*;
> 
> import java.lang.annotation.Retention;
> import java.lang.annotation.Target;
> import javax.inject.Qualifier;
> 
> /**
> * An annotation to allow for differentiation between
> * differing instances of the Configuration bean
> */
> @Qualifier
> @Retention(RUNTIME)
> @Target({METHOD, FIELD, PARAMETER, TYPE})
> public @interface AppConfig {
> }
> 
> And I want to use it with a fireEvent() call... Is there a good reference
> of how to accomplish that?
> 
> What I was thinking might work, but which does not:
> 
> beanMgr.fireEvent(this.config, AppConfig);
> 
> Thanks in advance!!
> 
> Deven
> 
> On Sun, Jan 11, 2015 at 1:46 AM, Deven Phillips <deven.phillips@gmail.com>
> wrote:
> 
>> NVM! I figured out my problem... I forgot to add an empty "beans.xml" file
>> to the META-INF directory!!!
>> 
>> Doh!
>> 
>> Deven
>> 
>> On Sun, Jan 11, 2015 at 1:30 AM, Deven Phillips <deven.phillips@gmail.com>
>> wrote:
>> 
>>> I have created a simple example to demonstrate the problem I am having:
>>> 
>>> https://github.com/InfoSec812/deltaspike-observer-example
>>> 
>>> Just clone the repo, and run:
>>> 
>>>    mvn exec:java -Dexec:args="this can be anything"
>>> 
>>> You will see some log output which shows that the "fireEvent" method was
>>> called, but the event is never received.
>>> 
>>> I hope that someone can help, as this is holding up my project.
>>> 
>>> Thanks in advance!!
>>> 
>>> Deven
>>> 
>>> On Sun, Jan 11, 2015 at 12:21 AM, Deven Phillips <
>>> deven.phillips@gmail.com> wrote:
>>> 
>>>> I'm trying to implement a suggestion from John Ament based this gist:
>>>> 
>>>> https://gist.github.com/johnament/442e0aa78b7557535545
>>>> 
>>>> My code looks something like:
>>>> 
>>>>            // Initialize DeltaSpike Dependency Injection of JavaSE
>>>>            // This will also cause some back-end setup to begin
>>>>            LOG.debug("Starting CDI Container and Contexts");
>>>>            CdiContainer cdiContainer =
>>>> CdiContainerLoader.getCdiContainer();
>>>>            cdiContainer.boot();
>>>>            ContextControl ctxControl = cdiContainer.getContextControl();
>>>>            ctxControl.startContexts();
>>>> 
>>>>            // Create an ObjectFactory for the JaxRsApplication to be
>>>> able
>>>>            // to inject dependencies
>>>>            CdiObjectFactory objFactory = new CdiObjectFactory();
>>>> 
>>>>            // Send an event to DeltaSpike to load the config into
>>>>            // the application scope
>>>>            LOG.debug("Firing event to load configuration into
>>>> Application scope");
>>>>            try {
>>>>                BeanManager bm =
>>>> objFactory.getInstance(BeanManager.class);
>>>>                bm.fireEvent(config);
>>>>            } catch (InstantiateException ex) {
>>>>                LOG.error("Error getting BeanManager from objFactory",
>>>> ex);
>>>>                throw new RuntimeException(ex);
>>>>            }
>>>> 
>>>> The problem is, the observer bean never sees the event. I can trace and
>>>> step through and it never receives the event... Any thoughts on what I may
>>>> be doing wrong?
>>>> 
>>>> Thanks in advance!!
>>>> 
>>>> Deven
>>>> 
>>> 
>>> 
>> 


Mime
View raw message