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);
}
}
});
}
Aggregations