Hi, can't you just listen to the ProcessAnnotatedType event, inspect it and if you find an @EndpointInject i.e. add an @Inject to the AnnotatedType?
Cheers, Arne -----Ursprüngliche Nachricht----- Von: Charles Moulliard [mailto:[email protected]] Gesendet: Donnerstag, 12. Juli 2012 14:22 An: [email protected]; [email protected] Betreff: Util class to find annotations in a class Hi, Is there a DeltaSpike or OpenWebbeans util class that I could use to scan classes and find annotations (which have been of course designed without CDI in mind) and next inject them ? Camel provides @EndpointInject(uri or ref), @Produce(uri) and @Consume annotations to inject Endpoint definition or Producer/ConsumerTemplate into CamelContext. We have to call getInjectionValue(type, uri, endpointRef, injectionPointName, null, null) method of CamelPostProcessorHelper tevery time such annotation is discovered o add such injected bean. Camel-guice, camel-spring and camel-blueprint projects proposes such impl (which is not CDI compliant). I would like to implement this in camel-cdi (where we already have defined a CamelInjector) and tries to find the best strategy. Is there something equivalent to what we have here in camel-guice ? bindAnnotationInjector(EndpointInject.class, EndpointInjector.class); where bindAnnotationInjector is a method of this class GuiceyFruitModule and EndpointInjectorClass is the class containing the code to find annotations wiithin a class public class EndpointInjector extends CamelPostProcessorHelper implements AnnotationMemberProvider<EndpointInject> { @Inject public EndpointInjector(CamelContext camelContext) { super(camelContext); } public Object provide(EndpointInject inject, TypeLiteral<?> typeLiteral, Field field) { Class<?> type = field.getType(); String injectionPointName = field.getName(); String uri = inject.uri(); String endpointRef = inject.ref(); return getInjectionValue(type, uri, endpointRef, injectionPointName, null, null); } Regards, Apache Committer Blog : http://cmoulliard.blogspot.com Twitter : http://twitter.com/cmoulliard Linkedin : http://www.linkedin.com/in/charlesmoulliard Skype: cmoulliard
