deltaspike-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Moulliard <cmoulli...@gmail.com>
Subject Util class to find annotations in a class
Date Thu, 12 Jul 2012 12:21:38 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message