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