I've always used blueprint too and now feeling my way around CDI.

I'm loading a drools engine programatically using a kjar.
I want that in place before my routes start.

On Wed, Aug 10, 2016 at 3:13 PM, Brad Johnson <[email protected]>
wrote:

> If you don't need to initialized them you could override the start like
> that but then have a verify method.  That would make sure you aren't
> inadvertently changing any behavior.
>
> @Override
> public void start() throws Exception{
>
>    super.start();
>    verifyBeans();
> }
>
> private void verifyBeans()
> {
>     verify(myBean1);
>     verify(myBean2).
> }
>
> private void verify(Object o)
> {
>     if(o==null) throw new RuntimeException("Bean not found at start up.");
>
> }
>
> I'm curious as to how or where you're overriding the CamelContext.  Curious
> because I've always used Blueprint with Fuse and not CDI and only now
> looking at CDI with the latest version of Fuse which is due soon.
>
>
> Brad
>
> On Wed, Aug 10, 2016 at 2:00 PM, Rajith Muditha Attapattu <
> [email protected]> wrote:
>
> > I'm using Camel 2.15 bcos thats the version coming Fuse 6.2.1
> > But my understanding is that CDI events are not supported until 2.17
> >
> > What's the drawback of overriding start() ?
> >
> > On Wed, Aug 10, 2016 at 2:33 PM, Antonin Stefanutti <
> [email protected]
> > >
> > wrote:
> >
> > > One alternative is to observe for the CamelContextStartingEvent that’s
> > > fired before the corresponding Camel contexts get started, e.g.:
> > >
> > > void initMyBeansBeforeContextStart(@Observes CamelContextStartingEvent
> > > event, MyBean bean) {
> > >     bean.init();
> > > }
> > >
> > > Either method argument or class field injection will work. And that
> > avoids
> > > having to override the start method on the context.
> > >
> > > You can find more information in: http://camel.apache.org/cdi.
> html#CDI-
> > > CameleventstoCDIevents
> > >
> > > Antonin
> > >
> > > > On 10 Aug 2016, at 19:48, Rajith Muditha Attapattu <
> [email protected]
> > >
> > > wrote:
> > > >
> > > > I'm using CDI and want to make sure all my beans are loaded before
> the
> > > > context and properly initialized.
> > > >
> > > > I have them as attributes in my CamelContext class with @Inject.
> > > >
> > > > However I override the start method in the context to make sure I
> call
> > > the
> > > > various initi methods for those beans to make sure they are loaded
> and
> > > > ready when the routes start.
> > > >
> > > > @Override
> > > > public void start() throws Exception{
> > > >   myBean1.init();
> > > >   myBean2.init().
> > > >   super.start();
> > > > }
> > > >
> > > > Is this advisable ? is there a better way to do this ?
> > > >
> > > > Regards,
> > > >
> > > > Rajith Muditha Attapattu <http://rajith.2rlabs.com/>
> > >
> > >
> >
> >
> > --
> > Regards,
> >
> > Rajith Muditha Attapattu <http://rajith.2rlabs.com/>
> >
>



-- 
Regards,

Rajith Muditha Attapattu <http://rajith.2rlabs.com/>

Reply via email to