You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/04/03 16:15:19 UTC
[camel] 02/02: CAMEL-15105: make the AnnotationBasedProcessorFactory a plugin of the context
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 5483a4a31dbc164546d1dbafe925724e19006e9d
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Apr 3 16:30:47 2023 +0200
CAMEL-15105: make the AnnotationBasedProcessorFactory a plugin of the context
---
.../org/apache/camel/component/bean/MethodInfo.java | 7 ++++---
.../java/org/apache/camel/ExtendedCamelContext.java | 11 -----------
.../apache/camel/impl/engine/AbstractCamelContext.java | 2 +-
.../camel/impl/engine/DefaultCamelContextExtension.java | 17 -----------------
.../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------
.../camel/impl/lw/LightweightCamelContextExtension.java | 11 -----------
.../java/org/apache/camel/support/PluginHelper.java | 16 ++++++++++++++++
7 files changed, 21 insertions(+), 49 deletions(-)
diff --git a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
index 1cf57a77722..0a402f2e334 100644
--- a/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
+++ b/components/camel-bean/src/main/java/org/apache/camel/component/bean/MethodInfo.java
@@ -54,6 +54,7 @@ import org.apache.camel.support.ExchangeHelper;
import org.apache.camel.support.ExpressionAdapter;
import org.apache.camel.support.MessageHelper;
import org.apache.camel.support.ObjectHelper;
+import org.apache.camel.support.PluginHelper;
import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.StringHelper;
import org.apache.camel.util.StringQuoteHelper;
@@ -132,7 +133,7 @@ public class MethodInfo {
org.apache.camel.RoutingSlip routingSlipAnnotation
= (org.apache.camel.RoutingSlip) collectedMethodAnnotation.get(org.apache.camel.RoutingSlip.class);
if (routingSlipAnnotation != null) {
- routingSlip = camelContext.getCamelContextExtension().getAnnotationBasedProcessorFactory()
+ routingSlip = PluginHelper.getAnnotationBasedProcessorFactory(camelContext)
.createRoutingSlip(camelContext, routingSlipAnnotation);
// add created routingSlip as a service so we have its lifecycle managed
try {
@@ -145,7 +146,7 @@ public class MethodInfo {
org.apache.camel.DynamicRouter dynamicRouterAnnotation
= (org.apache.camel.DynamicRouter) collectedMethodAnnotation.get(org.apache.camel.DynamicRouter.class);
if (dynamicRouterAnnotation != null) {
- dynamicRouter = camelContext.getCamelContextExtension().getAnnotationBasedProcessorFactory()
+ dynamicRouter = PluginHelper.getAnnotationBasedProcessorFactory(camelContext)
.createDynamicRouter(camelContext, dynamicRouterAnnotation);
// add created dynamicRouter as a service so we have its lifecycle managed
try {
@@ -158,7 +159,7 @@ public class MethodInfo {
org.apache.camel.RecipientList recipientListAnnotation
= (org.apache.camel.RecipientList) collectedMethodAnnotation.get(org.apache.camel.RecipientList.class);
if (recipientListAnnotation != null) {
- recipientList = camelContext.getCamelContextExtension().getAnnotationBasedProcessorFactory()
+ recipientList = PluginHelper.getAnnotationBasedProcessorFactory(camelContext)
.createRecipientList(camelContext, recipientListAnnotation);
// add created recipientList as a service so we have its lifecycle managed
try {
diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
index a3940f1f9b6..375b41825fc 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
@@ -22,7 +22,6 @@ import java.util.Set;
import java.util.function.Supplier;
import org.apache.camel.catalog.RuntimeCamelCatalog;
-import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.BootstrapCloseable;
import org.apache.camel.spi.EndpointStrategy;
import org.apache.camel.spi.EndpointUriFactory;
@@ -303,16 +302,6 @@ public interface ExtendedCamelContext {
*/
FactoryFinder getFactoryFinder(String path);
- /**
- * Gets the {@link AnnotationBasedProcessorFactory} to use.
- */
- AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory();
-
- /**
- * Sets a custom {@link AnnotationBasedProcessorFactory} to use.
- */
- void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory);
-
/**
* Adds the given interceptor strategy
*
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index abce5f670db..2f2580ce098 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -204,7 +204,6 @@ public abstract class AbstractCamelContext extends BaseService
final Object lock = new Object();
final RouteController internalRouteController = new InternalRouteController(this);
- volatile AnnotationBasedProcessorFactory annotationBasedProcessorFactory;
volatile ReactiveExecutor reactiveExecutor;
volatile Registry registry;
volatile ManagementStrategy managementStrategy;
@@ -379,6 +378,7 @@ public abstract class AbstractCamelContext extends BaseService
camelContextExtension.lazyAddContextPlugin(BeanProcessorFactory.class, this::createBeanProcessorFactory);
camelContextExtension.lazyAddContextPlugin(ModelToXMLDumper.class, this::createModelToXMLDumper);
camelContextExtension.lazyAddContextPlugin(DeferServiceFactory.class, this::createDeferServiceFactory);
+ camelContextExtension.lazyAddContextPlugin(AnnotationBasedProcessorFactory.class, this::createAnnotationBasedProcessorFactory);
if (build) {
try {
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index 013254cf89f..7854f12f610 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -35,7 +35,6 @@ import org.apache.camel.ResolveEndpointFailedException;
import org.apache.camel.Route;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.Service;
-import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.BootstrapCloseable;
import org.apache.camel.spi.Debugger;
import org.apache.camel.spi.DebuggerFactory;
@@ -487,22 +486,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext {
camelContext.reactiveExecutor = camelContext.getInternalServiceManager().addService(reactiveExecutor, false);
}
- @Override
- public AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory() {
- if (camelContext.annotationBasedProcessorFactory == null) {
- synchronized (camelContext.lock) {
- if (camelContext.annotationBasedProcessorFactory == null) {
- setAnnotationBasedProcessorFactory(camelContext.createAnnotationBasedProcessorFactory());
- }
- }
- }
- return camelContext.annotationBasedProcessorFactory;
- }
-
- public void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory) {
- camelContext.annotationBasedProcessorFactory = annotationBasedProcessorFactory;
- }
-
@Override
public RouteController getInternalRouteController() {
return camelContext.internalRouteController;
diff --git a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
index 0f1916a275a..91e4bd7b0f2 100644
--- a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
+++ b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
@@ -21,8 +21,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
org.apache.camel.ExtendedCamelContext target = (org.apache.camel.ExtendedCamelContext) obj;
switch (ignoreCase ? name.toLowerCase() : name) {
- case "annotationbasedprocessorfactory":
- case "AnnotationBasedProcessorFactory": target.setAnnotationBasedProcessorFactory(property(camelContext, org.apache.camel.spi.AnnotationBasedProcessorFactory.class, value)); return true;
case "basepackagescan":
case "BasePackageScan": target.setBasePackageScan(property(camelContext, java.lang.String.class, value)); return true;
case "bootstrapfactoryfinder":
@@ -58,8 +56,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
@Override
public Class<?> getOptionType(String name, boolean ignoreCase) {
switch (ignoreCase ? name.toLowerCase() : name) {
- case "annotationbasedprocessorfactory":
- case "AnnotationBasedProcessorFactory": return org.apache.camel.spi.AnnotationBasedProcessorFactory.class;
case "basepackagescan":
case "BasePackageScan": return java.lang.String.class;
case "bootstrapfactoryfinder":
@@ -96,8 +92,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com
public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
org.apache.camel.ExtendedCamelContext target = (org.apache.camel.ExtendedCamelContext) obj;
switch (ignoreCase ? name.toLowerCase() : name) {
- case "annotationbasedprocessorfactory":
- case "AnnotationBasedProcessorFactory": return target.getAnnotationBasedProcessorFactory();
case "basepackagescan":
case "BasePackageScan": return target.getBasePackageScan();
case "bootstrapfactoryfinder":
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
index d802ce22560..a93330ad9c9 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
@@ -36,7 +36,6 @@ import org.apache.camel.ResolveEndpointFailedException;
import org.apache.camel.Route;
import org.apache.camel.Service;
import org.apache.camel.ServiceStatus;
-import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.BootstrapCloseable;
import org.apache.camel.spi.EndpointStrategy;
import org.apache.camel.spi.EndpointUriFactory;
@@ -228,16 +227,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext {
throw new UnsupportedOperationException();
}
- @Override
- public AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setAnnotationBasedProcessorFactory(AnnotationBasedProcessorFactory annotationBasedProcessorFactory) {
- throw new UnsupportedOperationException();
- }
-
@Override
public List<InterceptStrategy> getInterceptStrategies() {
throw new UnsupportedOperationException();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
index e9083557545..37e6ac4679b 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
@@ -24,6 +24,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.catalog.RuntimeCamelCatalog;
import org.apache.camel.console.DevConsoleResolver;
import org.apache.camel.health.HealthCheckResolver;
+import org.apache.camel.spi.AnnotationBasedProcessorFactory;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.spi.BeanProcessorFactory;
@@ -591,4 +592,19 @@ public final class PluginHelper {
public static DeferServiceFactory getDeferServiceFactory(ExtendedCamelContext extendedCamelContext) {
return extendedCamelContext.getContextPlugin(DeferServiceFactory.class);
}
+
+ /**
+ * Gets the {@link AnnotationBasedProcessorFactory} to use.
+ */
+ public static AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory(CamelContext camelContext) {
+ return getAnnotationBasedProcessorFactory(camelContext.getCamelContextExtension());
+ }
+
+ /**
+ * Gets the {@link AnnotationBasedProcessorFactory} to use.
+ */
+ public static AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory(
+ ExtendedCamelContext extendedCamelContext) {
+ return extendedCamelContext.getContextPlugin(AnnotationBasedProcessorFactory.class);
+ }
}