Search in sources :

Example 11 with EndpointInject

use of org.apache.camel.EndpointInject in project camel by apache.

the class CdiCamelBeanPostProcessor method injectFields.

protected void injectFields(final Object bean, final String beanName) {
    ReflectionHelper.doWithFields(bean.getClass(), field -> {
        PropertyInject propertyInject = field.getAnnotation(PropertyInject.class);
        if (propertyInject != null) {
            try {
                injectFieldProperty(field, propertyInject.value(), propertyInject.defaultValue(), propertyInject.context(), bean, beanName);
            } catch (Exception cause) {
                throw new InjectionException("Injection of [" + propertyInject + "] for field [" + field + "] failed!", cause);
            }
        }
        BeanInject beanInject = field.getAnnotation(BeanInject.class);
        if (beanInject != null && getPostProcessorHelper().matchContext(beanInject.context())) {
            try {
                injectFieldBean(field, beanInject.value(), bean, beanName);
            } catch (Exception cause) {
                throw new InjectionException("Injection of [" + beanInject + "] for field [" + field + "] failed!", cause);
            }
        }
        EndpointInject endpointInject = field.getAnnotation(EndpointInject.class);
        if (endpointInject != null) {
            try {
                injectField(field, endpointInject.uri(), endpointInject.ref(), endpointInject.property(), endpointInject.context(), bean, beanName);
            } catch (Exception cause) {
                throw new InjectionException("Injection of [" + endpointInject + "] for field [" + field + "] failed!", cause);
            }
        }
        Produce produce = field.getAnnotation(Produce.class);
        if (produce != null) {
            try {
                injectField(field, produce.uri(), produce.ref(), produce.property(), produce.context(), bean, beanName);
            } catch (Exception cause) {
                throw new InjectionException("Injection of [" + produce + "] for field [" + field + "] failed!", cause);
            }
        }
    });
}
Also used : InjectionException(javax.enterprise.inject.InjectionException) EndpointInject(org.apache.camel.EndpointInject) BeanInject(org.apache.camel.BeanInject) Produce(org.apache.camel.Produce) PropertyInject(org.apache.camel.PropertyInject) UnsatisfiedResolutionException(javax.enterprise.inject.UnsatisfiedResolutionException) InjectionException(javax.enterprise.inject.InjectionException)

Aggregations

EndpointInject (org.apache.camel.EndpointInject)11 Field (java.lang.reflect.Field)6 MockEndpoint (org.apache.camel.component.mock.MockEndpoint)6 Exchange (org.apache.camel.Exchange)5 Method (java.lang.reflect.Method)3 BeanInject (org.apache.camel.BeanInject)2 Produce (org.apache.camel.Produce)2 PropertyInject (org.apache.camel.PropertyInject)2 InjectionException (javax.enterprise.inject.InjectionException)1 UnsatisfiedResolutionException (javax.enterprise.inject.UnsatisfiedResolutionException)1 NoSuchBeanException (org.apache.camel.NoSuchBeanException)1 ResolveEndpointFailedException (org.apache.camel.ResolveEndpointFailedException)1