You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/07/10 12:30:21 UTC
[2/2] camel git commit: CAMEL-6338: camel-cdi shouldn't use
deltapsike bean manager provider in the CamelExtension. Thanks to Romain
Manni-Bucau for reporting.
CAMEL-6338: camel-cdi shouldn't use deltapsike bean manager provider in the CamelExtension. Thanks to Romain Manni-Bucau for reporting.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7250732a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7250732a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7250732a
Branch: refs/heads/master
Commit: 7250732a987c6abee590a5fada2b130246e18dc6
Parents: 88f0472
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Jul 10 12:36:28 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Jul 10 12:36:28 2015 +0200
----------------------------------------------------------------------
.../apache/camel/cdi/internal/BeanAdapter.java | 15 ++++-------
.../camel/cdi/internal/CamelExtension.java | 28 +++++++++++---------
2 files changed, 21 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/7250732a/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/BeanAdapter.java
----------------------------------------------------------------------
diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/BeanAdapter.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/BeanAdapter.java
index 6b5284e..3bab39a 100644
--- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/BeanAdapter.java
+++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/BeanAdapter.java
@@ -79,8 +79,7 @@ public class BeanAdapter {
Consume annotation = method.getAnnotation(Consume.class);
if (annotation != null) {
String contextName = CamelExtension.getCamelContextName(annotation.context(), startup);
- DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(
- contextName);
+ DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(contextName, null);
if (postProcessor != null) {
postProcessor.getPostProcessorHelper().consumerInjection(method, reference, beanName);
}
@@ -90,8 +89,7 @@ public class BeanAdapter {
Produce annotation = method.getAnnotation(Produce.class);
if (annotation != null) {
String contextName = CamelExtension.getCamelContextName(annotation.context(), startup);
- DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(
- contextName);
+ DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(contextName, null);
if (postProcessor != null && postProcessor.getPostProcessorHelper().matchContext(contextName)) {
postProcessor.setterInjection(method, reference, beanName, annotation.uri(), annotation.ref(),
annotation.property());
@@ -102,8 +100,7 @@ public class BeanAdapter {
EndpointInject annotation = method.getAnnotation(EndpointInject.class);
if (annotation != null) {
String contextName = CamelExtension.getCamelContextName(annotation.context(), startup);
- DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(
- contextName);
+ DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(contextName, null);
if (postProcessor != null && postProcessor.getPostProcessorHelper().matchContext(contextName)) {
postProcessor.setterInjection(method, reference, beanName, annotation.uri(), annotation.ref(),
annotation.property());
@@ -115,8 +112,7 @@ public class BeanAdapter {
Produce annotation = field.getAnnotation(Produce.class);
if (annotation != null) {
String contextName = CamelExtension.getCamelContextName(annotation.context(), startup);
- DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(
- contextName);
+ DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(contextName, null);
if (postProcessor != null && postProcessor.getPostProcessorHelper().matchContext(contextName)) {
postProcessor.injectField(field, annotation.uri(), annotation.ref(),
annotation.property(), reference, beanName);
@@ -126,8 +122,7 @@ public class BeanAdapter {
for (Field field : endpointFields) {
EndpointInject annotation = field.getAnnotation(EndpointInject.class);
String contextName = CamelExtension.getCamelContextName(annotation.context(), startup);
- DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(
- contextName);
+ DefaultCamelBeanPostProcessor postProcessor = camelExtension.getPostProcessor(contextName, null);
if (postProcessor != null && postProcessor.getPostProcessorHelper().matchContext(contextName)) {
postProcessor.injectField(field, annotation.uri(), annotation.ref(),
annotation.property(), reference, beanName);
http://git-wip-us.apache.org/repos/asf/camel/blob/7250732a/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java
----------------------------------------------------------------------
diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java
index c50aacb..f4b7ace 100644
--- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java
+++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/internal/CamelExtension.java
@@ -25,7 +25,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
@@ -56,7 +55,6 @@ import org.apache.camel.impl.DefaultCamelBeanPostProcessor;
import org.apache.camel.model.RouteContainer;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.ReflectionHelper;
-import org.apache.deltaspike.core.api.provider.BeanProvider;
import org.apache.deltaspike.core.util.metadata.builder.AnnotatedTypeBuilder;
/**
@@ -68,12 +66,12 @@ public class CamelExtension implements Extension {
private static final long serialVersionUID = 1L;
}
- CamelContextMap camelContextMap;
+ @Inject
+ BeanManager beanManager;
+ private CamelContextMap camelContextMap;
private final Set<Bean<?>> eagerBeans = new HashSet<Bean<?>>();
-
private final Map<String, CamelContextConfig> camelContextConfigMap = new HashMap<String, CamelContextConfig>();
-
private final List<CamelContextBean> camelContextBeans = new ArrayList<CamelContextBean>();
public CamelExtension() {
@@ -218,7 +216,7 @@ public class CamelExtension implements Extension {
public void startConsumeBeans(@Observes AfterDeploymentValidation event, BeanManager beanManager) throws Exception {
for (CamelContextBean bean : camelContextBeans) {
String name = bean.getCamelContextName();
- CamelContext context = getCamelContext(name);
+ CamelContext context = getCamelContext(name, beanManager);
if (context == null) {
throw new IllegalStateException(
"CamelContext '" + name + "' has not been injected into the CamelContextMap");
@@ -311,8 +309,8 @@ public class CamelExtension implements Extension {
return adapter;
}
- protected DefaultCamelBeanPostProcessor getPostProcessor(String context) {
- CamelContext camelContext = getCamelContext(context);
+ protected DefaultCamelBeanPostProcessor getPostProcessor(String context, BeanManager beanManager) {
+ CamelContext camelContext = getCamelContext(context, beanManager);
if (camelContext != null) {
return new DefaultCamelBeanPostProcessor(camelContext);
} else {
@@ -320,11 +318,17 @@ public class CamelExtension implements Extension {
}
}
- protected CamelContext getCamelContext(String context) {
- if (camelContextMap == null) {
- camelContextMap = BeanProvider.getContextualReference(CamelContextMap.class);
- ObjectHelper.notNull(camelContextMap, "Could not resolve CamelContextMap");
+ protected CamelContext getCamelContext(String context, BeanManager beanManager) {
+ BeanManager manager = this.beanManager != null ? this.beanManager : beanManager;
+ if (camelContextMap == null && manager != null) {
+ Set<Bean<?>> beans = manager.getBeans(CamelContextMap.class);
+ if (!beans.isEmpty()) {
+ Bean<?> bean = manager.resolve(beans);
+ CreationalContext<?> creationalContext = manager.createCreationalContext(bean);
+ camelContextMap = (CamelContextMap) manager.getReference(bean, CamelContextMap.class, creationalContext);
+ }
}
+ ObjectHelper.notNull(camelContextMap, "Could not resolve CamelContextMap");
return camelContextMap.getCamelContext(context);
}