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 <angusyo...@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); + } }