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 2022/02/01 17:39:11 UTC
[camel] 11/13: CAMEL-17571: camel-core - Add SPI for dependency injection annotations which allows to plugin custom behaviour.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 97e384adb50615c70cca1d43c91b90ae9d02702b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Feb 1 18:12:25 2022 +0100
CAMEL-17571: camel-core - Add SPI for dependency injection annotations which allows to plugin custom behaviour.
---
.../camel/spi/CamelDependencyInjectionAnnotationFactory.java | 3 ++-
.../camel/impl/engine/DefaultCamelBeanPostProcessor.java | 12 ++++++------
.../engine/DefaultDependencyInjectionAnnotationFactory.java | 5 +----
3 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/CamelDependencyInjectionAnnotationFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/CamelDependencyInjectionAnnotationFactory.java
index 8713a15..6e68dc6 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/CamelDependencyInjectionAnnotationFactory.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/CamelDependencyInjectionAnnotationFactory.java
@@ -31,7 +31,8 @@ public interface CamelDependencyInjectionAnnotationFactory {
* @param bean the bean instance
* @param beanName the bean name
* @param beanPostProcess whether bean post processor should be performed
+ * @return the created task to use for binding the bean
*/
- Supplier<Void> createBindToRegistryFactory(String id, Object bean, String beanName, boolean beanPostProcess);
+ Runnable createBindToRegistryFactory(String id, Object bean, String beanName, boolean beanPostProcess);
}
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java
index 24e02ee..37c863c 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelBeanPostProcessor.java
@@ -476,9 +476,9 @@ public class DefaultCamelBeanPostProcessor implements CamelBeanPostProcessor, Ca
}
// use dependency injection factory to perform the task of binding the bean to registry
- Supplier<Void> task = getOrLookupCamelContext().adapt(ExtendedCamelContext.class)
+ Runnable task = getOrLookupCamelContext().adapt(ExtendedCamelContext.class)
.getDependencyInjectionAnnotationFactory().createBindToRegistryFactory(name, bean, beanName, beanPostProcess);
- task.get();
+ task.run();
}
private void bindToRegistry(Field field, String name, Object bean, String beanName, boolean beanPostProcess) {
@@ -489,10 +489,10 @@ public class DefaultCamelBeanPostProcessor implements CamelBeanPostProcessor, Ca
// use dependency injection factory to perform the task of binding the bean to registry
if (value != null) {
- Supplier<Void> task = getOrLookupCamelContext().adapt(ExtendedCamelContext.class)
+ Runnable task = getOrLookupCamelContext().adapt(ExtendedCamelContext.class)
.getDependencyInjectionAnnotationFactory()
.createBindToRegistryFactory(name, value, beanName, beanPostProcess);
- task.get();
+ task.run();
}
}
@@ -516,10 +516,10 @@ public class DefaultCamelBeanPostProcessor implements CamelBeanPostProcessor, Ca
}
// use dependency injection factory to perform the task of binding the bean to registry
if (value != null) {
- Supplier<Void> task = getOrLookupCamelContext().adapt(ExtendedCamelContext.class)
+ Runnable task = getOrLookupCamelContext().adapt(ExtendedCamelContext.class)
.getDependencyInjectionAnnotationFactory()
.createBindToRegistryFactory(name, value, beanName, beanPostProcess);
- task.get();
+ task.run();
}
}
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java
index 7687d38..f963430 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultDependencyInjectionAnnotationFactory.java
@@ -16,8 +16,6 @@
*/
package org.apache.camel.impl.engine;
-import java.util.function.Supplier;
-
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.ExtendedCamelContext;
@@ -47,7 +45,7 @@ public class DefaultDependencyInjectionAnnotationFactory
}
@Override
- public Supplier<Void> createBindToRegistryFactory(String id, Object bean, String beanName, boolean beanPostProcess) {
+ public Runnable createBindToRegistryFactory(String id, Object bean, String beanName, boolean beanPostProcess) {
return () -> {
if (beanPostProcess) {
try {
@@ -61,7 +59,6 @@ public class DefaultDependencyInjectionAnnotationFactory
}
CamelContextAware.trySetCamelContext(bean, camelContext);
camelContext.getRegistry().bind(id, bean);
- return null;
};
}
}