Hey Arne,
Thank you very much for information. I followed your instructions and it works 
as expected!

Wiadomość napisana przez Arne Limburg w dniu 27 cze 2012, o godz. 11:06:

> Using the deltaspike AnnotatedTypeBuilder the code within your Extension 
> roughly would look like:
> 
> public void addAtInject(@Observes ProcessAnnotatedType annotatedTypeEvent) {
>    AnnotatedType annotatedType = annotatedTypeEvent.getAnnotatedType();
>    if (CamelContextAware.class.isAssignableFrom(annotatedType.getJavaClass()) 
> {
>        AnnotatedTypeBuilder builder = new AnnotatedTypeBuilder();
>        builder.readFromType(annotatedType);
>        Method method = 
> annotatedType.getJavaClass().getMethod("setCamelContext", CamelContext.class);
>        builder.addToMethod(method, new AnnotationLiteral<Inject>() {});
>        annotatedTypeEvent.setAnnotatedType(builder.create());
>    }
> }
> 
> -----Ursprüngliche Nachricht-----
> Von: Arne Limburg 
> Gesendet: Mittwoch, 27. Juni 2012 10:46
> An: deltaspike-users@incubator.apache.org
> Betreff: AW: Spring style *ContextAware beans 
> 
> Hi Lukasz,
> 
> the CDI-way to implement this would be to write an Extension.
> The Extension could wrap the AnnotatedType and add an @Inject to the method 
> setCamelContext.
> 
> Regards,
> Arne
> 
> -----Ursprüngliche Nachricht-----
> Von: Łukasz Dywicki [mailto:l...@code-house.org] 
> Gesendet: Mittwoch, 27. Juni 2012 10:36
> An: deltaspike-users@incubator.apache.org; Mark Struberg
> Betreff: Re: Spring style *ContextAware beans 
> 
> Hey,
> It's related to injection. For example:
> 
> class MyRouteBuilder implements InitializingBean, CamelContextAware {
>   private CamelContext context;
>   public void setCamelContext(CamelContext ctx) { this.context = ctx; }
>   public void afterPropertiesSet() {
>       if (this.context == null) { throw new IllegalStateException("Context 
> must be set");
>       // do something
>   }
>   // other methods
> }
> 
> MyRouteBuilder have two behaviors defined by implements closures. It's really 
> simple to have the same effect with @PostConstruct and @Inject annotations, 
> but - this is some kind of legacy code shared between different containers - 
> Spring / OSGi Blueprint. Both of them have similar lifecycle like CDI and 
> offer hooks to process beans before and after initialization. In this case I 
> need to find all CamelContextAware beans before initialization and inject 
> camel context without direct @Inject declarations (create injection targets?).
> 
> Best regards,
> Lukasz
> 
> Wiadomość napisana przez Mark Struberg w dniu 27 cze 2012, o godz. 01:47:
> 
>> 
>> 
>> Hi Lukasz!
>> 
>> Please elaborate a bite more about this functionality!
>> 
>> LieGrue,
>> strub
>> 
>> 
>> 
>>> ________________________________
>>> From: Łukasz Dywicki <l...@code-house.org>
>>> To: deltaspike-users@incubator.apache.org 
>>> Sent: Tuesday, June 26, 2012 9:16 PM
>>> Subject: Spring style *ContextAware beans 
>>> 
>>> Hey,
>>> I try to extend support for CDI in Apache Camel and I came to an problem - 
>>> I don't know how to handle a CamelContextAware beans. CamelContextAware is 
>>> some kind of marker interface and it means that POJO is interested in 
>>> getting an instance of CamelContext. Typically it is implemented as spring 
>>> bean post processor. How I could achieve something similar with CDI?
>>> 
>>> Best regards,
>>> Lukasz Dywicki
>>> --
>>> Code-House
>>> http://code-house.org
>>> 
>>> 
>>> 
>>> 
> 

Reply via email to