0

I try to get spring boot working with cdi events. I have the following class which fires the event.

@Component
@UIScope
public class Login extends LoginOverlay
{

    @Autowired
    private UserInfo userInfo;

    @Inject
    private Event<UpdateCWViewEvent> cwevent;

    @PostConstruct
    public void init()
    {
        addLoginListener(new ComponentEventListener<LoginEvent>()
        {

            @Override
            public void onComponentEvent(LoginEvent event)
            {
                userInfo.login(event.getUsername(), event.getPassword());
                if (userInfo.isLoggedIn())
                {
                    setButtonLabel();
                    close();
                    cwevent.fire(new UpdateCWViewEvent());
                }
            }
        });     
    }
}

And in another class the following method

public void update(@Observes(notifyObserver=Reception.IF_EXISTS) UpdateCWViewEvent event)
{
    //do something
}

Now I have the following problem. I need an Implementation of javax.enterprise.event.Event. I tried to take weld and use the standard Eventimpl. Now, I tried to configure a Spring Configuration class to tell my application, there is an implementation of my event.

@Configuration
public class Config
{

    @Bean
    public Event<UpdateCWViewEvent> cwEvent()
    {
        //return EventImpl.of(injectionPoint, beanManagerImpl);
    }
}

I dont know what to do with the injectionPoint and beanManagerImpl. Does anybody of you had the same problem and solved it? Or does anybody have an alternative to fire easy cdi events in a spring boot application?

Thank you very much and stay healthy!

0 Answers0