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 96e117391ef39240cf7249f0f295fdff2d812ce3 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Thu Mar 30 15:51:17 2023 +0200 CAMEL-15105: make the NodeIdFactory a plugin of the context --- .../org/apache/camel/openapi/RestOpenApiReader.java | 3 ++- .../org/apache/camel/spring/EndpointReferenceTest.java | 3 ++- .../java/org/apache/camel/ExtendedCamelContext.java | 15 --------------- .../apache/camel/impl/engine/AbstractCamelContext.java | 7 ++----- .../impl/engine/DefaultCamelContextExtension.java | 18 ------------------ .../impl/engine/DefaultExecutorServiceManager.java | 2 +- .../camel/impl/ExtendedCamelContextConfigurer.java | 6 ------ .../main/java/org/apache/camel/impl/DefaultModel.java | 7 ++++--- .../impl/lw/LightweightCamelContextExtension.java | 11 ----------- .../org/apache/camel/model/RouteDefinitionHelper.java | 5 +++-- .../org/apache/camel/model/rest/RestDefinition.java | 3 ++- .../java/org/apache/camel/reifier/BeanReifier.java | 3 ++- .../org/apache/camel/reifier/ProcessorReifier.java | 5 +++-- .../java/org/apache/camel/reifier/RouteReifier.java | 6 ++++-- .../core/xml/AbstractCamelContextFactoryBean.java | 2 +- .../org/apache/camel/impl/CustomIdFactoryTest.java | 10 +++++----- .../issues/RouteIdAnonymousAndFixedClashTest.java | 2 +- .../camel/main/DefaultConfigurationConfigurer.java | 2 +- .../camel/management/mbean/ManagedProcessor.java | 6 ++++-- .../apache/camel/management/ManagementTestSupport.java | 11 +++++++---- 20 files changed, 44 insertions(+), 83 deletions(-) diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java index 61a59573b33..fef5043faef 100644 --- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java +++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java @@ -97,6 +97,7 @@ import org.apache.camel.model.rest.RestSecurityDefinition; import org.apache.camel.model.rest.SecurityDefinition; import org.apache.camel.model.rest.VerbDefinition; import org.apache.camel.spi.ClassResolver; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.ObjectHelper; import org.apache.camel.util.FileUtil; @@ -541,7 +542,7 @@ public class RestOpenApiReader { } else if (rest.getId() != null) { operationId = getValue(camelContext, rest.getId()); } else { - verb.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()); + verb.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); operationId = verb.getId(); } op.operationId = operationId; diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/EndpointReferenceTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/EndpointReferenceTest.java index 67f199bf25c..74b628f55e8 100644 --- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/EndpointReferenceTest.java +++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/EndpointReferenceTest.java @@ -21,6 +21,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.NoSuchEndpointException; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.model.RouteDefinition; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spring.example.DummyBean; import org.apache.camel.support.CamelContextHelper; import org.junit.jupiter.api.Test; @@ -80,7 +81,7 @@ public class EndpointReferenceTest extends SpringTestSupport { public void testReferenceEndpointFromOtherCamelContext() throws Exception { CamelContext context = applicationContext.getBean("camel2", CamelContext.class); RouteDefinition route = new RouteDefinition("temporary"); - String routeId = route.idOrCreate(context.getCamelContextExtension().getNodeIdFactory()); + String routeId = route.idOrCreate(context.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); try { CamelContextHelper.resolveEndpoint(context, null, "endpoint1"); fail("Should have thrown exception"); 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 3be8a02ab16..faccf2112d4 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 @@ -54,7 +54,6 @@ import org.apache.camel.spi.ManagementMBeanAssembler; import org.apache.camel.spi.ModelJAXBContextFactory; import org.apache.camel.spi.ModelToXMLDumper; import org.apache.camel.spi.ModelineFactory; -import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.spi.PackageScanClassResolver; import org.apache.camel.spi.PackageScanResourceResolver; @@ -314,20 +313,6 @@ public interface ExtendedCamelContext { */ void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory); - /** - * Gets the node id factory - * - * @return the node id factory - */ - NodeIdFactory getNodeIdFactory(); - - /** - * Uses a custom node id factory when generating auto assigned ids to the nodes in the route definitions - * - * @param factory custom factory to use - */ - void setNodeIdFactory(NodeIdFactory factory); - /** * Gets the {@link ComponentResolver} to use. */ 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 e4aee514ac0..4440b794930 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 @@ -234,7 +234,6 @@ public abstract class AbstractCamelContext extends BaseService volatile RuntimeCamelCatalog runtimeCamelCatalog; volatile PackageScanClassResolver packageScanClassResolver; volatile PackageScanResourceResolver packageScanResourceResolver; - volatile NodeIdFactory nodeIdFactory; volatile ModelineFactory modelineFactory; volatile ProcessorFactory processorFactory; volatile PeriodTaskResolver periodTaskResolver; @@ -2130,6 +2129,8 @@ public abstract class AbstractCamelContext extends BaseService public void doBuild() throws Exception { final StopWatch watch = new StopWatch(); + getCamelContextExtension().addContextPlugin(NodeIdFactory.class, createNodeIdFactory()); + // auto-detect step recorder from classpath if none has been explicit configured if (startupStepRecorder.getClass().getSimpleName().equals("DefaultStartupStepRecorder")) { StartupStepRecorder fr = camelContextExtension.getBootstrapFactoryFinder() @@ -4177,10 +4178,6 @@ public abstract class AbstractCamelContext extends BaseService camelContextExtension.setBeanPostProcessor(beanPostProcessor); } - public void setNodeIdFactory(NodeIdFactory factory) { - camelContextExtension.setNodeIdFactory(factory); - } - public void setDataFormatResolver(DataFormatResolver dataFormatResolver) { camelContextExtension.setDataFormatResolver(dataFormatResolver); } 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 4f32d2f5b16..de7e1b81270 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 @@ -73,7 +73,6 @@ import org.apache.camel.spi.ManagementStrategyFactory; import org.apache.camel.spi.ModelJAXBContextFactory; import org.apache.camel.spi.ModelToXMLDumper; import org.apache.camel.spi.ModelineFactory; -import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.spi.PackageScanClassResolver; import org.apache.camel.spi.PackageScanResourceResolver; @@ -584,23 +583,6 @@ class DefaultCamelContextExtension implements ExtendedCamelContext { camelContext.modelJAXBContextFactory = camelContext.getInternalServiceManager().addService(modelJAXBContextFactory); } - @Override - public NodeIdFactory getNodeIdFactory() { - if (camelContext.nodeIdFactory == null) { - synchronized (camelContext.lock) { - if (camelContext.nodeIdFactory == null) { - setNodeIdFactory(camelContext.createNodeIdFactory()); - } - } - } - return camelContext.nodeIdFactory; - } - - @Override - public void setNodeIdFactory(NodeIdFactory idFactory) { - camelContext.nodeIdFactory = camelContext.getInternalServiceManager().addService(idFactory); - } - @Override public ModelineFactory getModelineFactory() { if (camelContext.modelineFactory == null) { diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultExecutorServiceManager.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultExecutorServiceManager.java index 1433bdf8102..dfb6c06acf7 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultExecutorServiceManager.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultExecutorServiceManager.java @@ -52,7 +52,7 @@ public class DefaultExecutorServiceManager extends BaseExecutorServiceManager { protected Object forceId(Object source) { if (source instanceof NamedNode && source instanceof IdAware) { NamedNode node = (NamedNode) source; - NodeIdFactory factory = getCamelContext().getCamelContextExtension().getNodeIdFactory(); + NodeIdFactory factory = getCamelContext().getCamelContextExtension().getContextPlugin(NodeIdFactory.class); if (node.getId() == null) { String id = factory.createId(node); // we auto generated an id to be assigned 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 42281836564..699c2707cf3 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 @@ -81,8 +81,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "ModelineFactory": target.setModelineFactory(property(camelContext, org.apache.camel.spi.ModelineFactory.class, value)); return true; case "name": case "Name": target.setName(property(camelContext, java.lang.String.class, value)); return true; - case "nodeidfactory": - case "NodeIdFactory": target.setNodeIdFactory(property(camelContext, org.apache.camel.spi.NodeIdFactory.class, value)); return true; case "packagescanclassresolver": case "PackageScanClassResolver": target.setPackageScanClassResolver(property(camelContext, org.apache.camel.spi.PackageScanClassResolver.class, value)); return true; case "packagescanresourceresolver": @@ -182,8 +180,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "ModelineFactory": return org.apache.camel.spi.ModelineFactory.class; case "name": case "Name": return java.lang.String.class; - case "nodeidfactory": - case "NodeIdFactory": return org.apache.camel.spi.NodeIdFactory.class; case "packagescanclassresolver": case "PackageScanClassResolver": return org.apache.camel.spi.PackageScanClassResolver.class; case "packagescanresourceresolver": @@ -284,8 +280,6 @@ public class ExtendedCamelContextConfigurer extends org.apache.camel.support.com case "ModelineFactory": return target.getModelineFactory(); case "name": case "Name": return target.getName(); - case "nodeidfactory": - case "NodeIdFactory": return target.getNodeIdFactory(); case "packagescanclassresolver": case "PackageScanClassResolver": return target.getPackageScanClassResolver(); case "packagescanresourceresolver": diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java index 0498e614b97..2800aee4a9f 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java @@ -65,6 +65,7 @@ import org.apache.camel.model.validator.ValidatorDefinition; import org.apache.camel.spi.ExchangeFactory; import org.apache.camel.spi.Language; import org.apache.camel.spi.ModelReifierFactory; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.PropertyConfigurer; import org.apache.camel.spi.RouteTemplateLoaderListener; import org.apache.camel.spi.RouteTemplateParameterSource; @@ -162,7 +163,7 @@ public class DefaultModel implements Model { @Override public synchronized RouteConfigurationDefinition getRouteConfigurationDefinition(String id) { for (RouteConfigurationDefinition def : routesConfigurations) { - if (def.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()).equals(id)) { + if (def.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)).equals(id)) { return def; } } @@ -294,7 +295,7 @@ public class DefaultModel implements Model { @Override public synchronized RouteDefinition getRouteDefinition(String id) { for (RouteDefinition route : routeDefinitions) { - if (route.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()).equals(id)) { + if (route.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)).equals(id)) { return route; } } @@ -309,7 +310,7 @@ public class DefaultModel implements Model { @Override public RouteTemplateDefinition getRouteTemplateDefinition(String id) { for (RouteTemplateDefinition route : routeTemplateDefinitions) { - if (route.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()).equals(id)) { + if (route.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)).equals(id)) { return route; } } 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 c2247b833f0..fa436742ee0 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 @@ -68,7 +68,6 @@ import org.apache.camel.spi.ManagementMBeanAssembler; import org.apache.camel.spi.ModelJAXBContextFactory; import org.apache.camel.spi.ModelToXMLDumper; import org.apache.camel.spi.ModelineFactory; -import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.spi.PackageScanClassResolver; import org.apache.camel.spi.PackageScanResourceResolver; @@ -682,16 +681,6 @@ class LightweightCamelContextExtension implements ExtendedCamelContext { throw new UnsupportedOperationException(); } - @Override - public NodeIdFactory getNodeIdFactory() { - throw new UnsupportedOperationException(); - } - - @Override - public void setNodeIdFactory(NodeIdFactory factory) { - throw new UnsupportedOperationException(); - } - @Override public void setLightweight(boolean lightweight) { throw new UnsupportedOperationException(); diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java index 41eb7ab589d..cd85a2781c3 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java @@ -34,6 +34,7 @@ import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.VerbDefinition; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.EndpointHelper; import org.apache.camel.util.ObjectHelper; @@ -179,7 +180,7 @@ public final class RouteDefinitionHelper { int attempts = 0; while (!done && attempts < 1000) { attempts++; - id = route.idOrCreate(ecc.getNodeIdFactory()); + id = route.idOrCreate(ecc.getContextPlugin(NodeIdFactory.class)); if (customIds.contains(id)) { // reset id and try again route.setId(null); @@ -745,7 +746,7 @@ public final class RouteDefinitionHelper { */ public static void forceAssignIds(CamelContext context, final ProcessorDefinition processor) { // force id on the child - processor.idOrCreate(context.getCamelContextExtension().getNodeIdFactory()); + processor.idOrCreate(context.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); // if there was a custom id assigned, then make sure to support property // placeholders diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java index bcd4cd9615b..bf400dbfcfe 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/model/rest/RestDefinition.java @@ -38,6 +38,7 @@ import org.apache.camel.model.OptionalIdentifiedDefinition; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.ToDefinition; import org.apache.camel.spi.Metadata; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.RestConfiguration; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.util.FileUtil; @@ -815,7 +816,7 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition> String from = "rest-api:" + configuration.getApiContextPath(); String routeId = configuration.getApiContextRouteId(); if (routeId == null) { - routeId = answer.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()); + routeId = answer.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); } // append options diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/BeanReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/BeanReifier.java index 786a3dbe8f2..1c8e7c7d4e5 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/BeanReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/BeanReifier.java @@ -23,6 +23,7 @@ import org.apache.camel.model.BeanDefinition; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.spi.BeanProcessorFactory; import org.apache.camel.spi.IdAware; +import org.apache.camel.spi.NodeIdFactory; public class BeanReifier extends ProcessorReifier<BeanDefinition> { @@ -46,7 +47,7 @@ public class BeanReifier extends ProcessorReifier<BeanDefinition> { } Processor answer = fac.createBeanProcessor(camelContext, bean, beanType, beanClass, ref, method, scope); if (answer instanceof IdAware) { - String id = camelContext.getCamelContextExtension().getNodeIdFactory().createId(definition); + String id = camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class).createId(definition); ((IdAware) answer).setId(id); } return answer; diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java index 0a0fe1b0bd3..0d233c8e967 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ProcessorReifier.java @@ -114,6 +114,7 @@ import org.apache.camel.spi.ErrorHandlerAware; import org.apache.camel.spi.ExecutorServiceManager; import org.apache.camel.spi.IdAware; import org.apache.camel.spi.InterceptStrategy; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.ReifierStrategy; import org.apache.camel.spi.RouteIdAware; import org.apache.camel.support.CamelContextHelper; @@ -814,7 +815,7 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends protected Processor createProcessor(ProcessorDefinition<?> output) throws Exception { // ensure node has id assigned - String outputId = output.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()); + String outputId = output.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); StartupStep step = camelContext.getCamelContextExtension().getStartupStepRecorder().beginStep(ProcessorReifier.class, outputId, "Create processor"); Processor processor = null; @@ -883,7 +884,7 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> extends } protected String getId(OptionalIdentifiedDefinition<?> def) { - return def.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()); + return def.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); } /** diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java index 1de338a742d..e72df220d57 100644 --- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java +++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/RouteReifier.java @@ -46,6 +46,7 @@ import org.apache.camel.spi.ErrorHandlerAware; import org.apache.camel.spi.InternalProcessor; import org.apache.camel.spi.LifecycleStrategy; import org.apache.camel.spi.ManagementInterceptStrategy; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.RoutePolicy; import org.apache.camel.spi.RoutePolicyFactory; import org.slf4j.Logger; @@ -96,7 +97,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { } // create route - String id = definition.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()); + String id = definition.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); String desc = definition.getDescriptionText(); Route route = camelContext.getCamelContextExtension().getRouteFactory().createRoute(camelContext, definition, id, desc, endpoint, definition.getResource()); @@ -202,7 +203,8 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { ProcessorReifier<?> reifier = ProcessorReifier.reifier(route, output); // ensure node has id assigned - String outputId = output.idOrCreate(camelContext.getCamelContextExtension().getNodeIdFactory()); + String outputId + = output.idOrCreate(camelContext.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); String eip = reifier.getClass().getSimpleName().replace("Reifier", ""); StartupStep step = camelContext.getCamelContextExtension().getStartupStepRecorder() .beginStep(ProcessorReifier.class, outputId, "Create " + eip + " Processor"); diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java index fbc5c103ac2..4d2b6bf21ed 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java @@ -1516,7 +1516,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex NodeIdFactory nodeIdFactory = getBeanForType(NodeIdFactory.class); if (nodeIdFactory != null) { LOG.info("Using custom NodeIdFactory: {}", nodeIdFactory); - getContext().getCamelContextExtension().setNodeIdFactory(nodeIdFactory); + getContext().getCamelContextExtension().addContextPlugin(NodeIdFactory.class, nodeIdFactory); } StreamCachingStrategy streamCachingStrategy = getBeanForType(StreamCachingStrategy.class); if (streamCachingStrategy != null) { diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java index 4c53797e98c..a32919f8f47 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java @@ -58,11 +58,7 @@ public class CustomIdFactoryTest extends ContextTestSupport { public void configure() throws Exception { // use our own id factory so we can generate the keys we like to // use - context.getCamelContextExtension().setNodeIdFactory(new NodeIdFactory() { - public String createId(NamedNode definition) { - return "#" + definition.getShortName() + ++counter + "#"; - } - }); + context.getCamelContextExtension().addContextPlugin(NodeIdFactory.class, buildNodeIdFactory()); // add our debugger so we can debug camel routes when we send in // messages @@ -76,6 +72,10 @@ public class CustomIdFactoryTest extends ContextTestSupport { }; } + private static NodeIdFactory buildNodeIdFactory() { + return definition -> "#" + definition.getShortName() + ++counter + "#"; + } + /** * Test path 1 */ diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/RouteIdAnonymousAndFixedClashTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/RouteIdAnonymousAndFixedClashTest.java index 378da1c0caa..f3476b92825 100644 --- a/core/camel-core/src/test/java/org/apache/camel/issues/RouteIdAnonymousAndFixedClashTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/issues/RouteIdAnonymousAndFixedClashTest.java @@ -43,7 +43,7 @@ public class RouteIdAnonymousAndFixedClashTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { DefaultCamelContext ctx = new DefaultCamelContext(true); - ctx.setNodeIdFactory(new NodeIdFactory() { + ctx.getCamelContextExtension().addContextPlugin(NodeIdFactory.class, new NodeIdFactory() { AtomicInteger counter = new AtomicInteger(); @Override diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java index 30e8ef8115b..67e4bc57fff 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java @@ -442,7 +442,7 @@ public final class DefaultConfigurationConfigurer { } NodeIdFactory nif = getSingleBeanOfType(registry, NodeIdFactory.class); if (nif != null) { - ecc.getCamelContextExtension().setNodeIdFactory(nif); + ecc.getCamelContextExtension().addContextPlugin(NodeIdFactory.class, nif); } MessageHistoryFactory mhf = getSingleBeanOfType(registry, MessageHistoryFactory.class); if (mhf != null) { diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java index dfd15d382b6..8c6d42b6671 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java @@ -30,6 +30,7 @@ import org.apache.camel.model.ProcessorDefinitionHelper; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.StepDefinition; import org.apache.camel.spi.ManagementStrategy; +import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.RouteIdAware; import org.apache.camel.support.service.ServiceHelper; @@ -50,14 +51,15 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag this.processor = processor; this.definition = definition; this.nodeLevel = ProcessorDefinitionHelper.getNodeLevel(definition); - this.id = definition.idOrCreate(context.getCamelContextExtension().getNodeIdFactory()); + this.id = definition.idOrCreate(context.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)); StepDefinition step; if (definition instanceof StepDefinition) { step = (StepDefinition) definition; } else { step = ProcessorDefinitionHelper.findFirstParentOfType(StepDefinition.class, definition, true); } - this.stepId = step != null ? step.idOrCreate(context.getCamelContextExtension().getNodeIdFactory()) : null; + this.stepId = step != null + ? step.idOrCreate(context.getCamelContextExtension().getContextPlugin(NodeIdFactory.class)) : null; this.sourceLocation = definition.getLocation(); if (sourceLocation == null) { RouteDefinition rd = ProcessorDefinitionHelper.getRoute(definition); diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagementTestSupport.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagementTestSupport.java index 3fa57e984b1..a1aacf9621f 100644 --- a/core/camel-management/src/test/java/org/apache/camel/management/ManagementTestSupport.java +++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagementTestSupport.java @@ -30,7 +30,6 @@ import javax.management.ReflectionException; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; import org.apache.camel.NamedNode; -import org.apache.camel.impl.engine.AbstractCamelContext; import org.apache.camel.spi.NodeIdFactory; import static org.apache.camel.management.DefaultManagementAgent.DEFAULT_DOMAIN; @@ -81,15 +80,19 @@ public abstract class ManagementTestSupport extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext ctx = super.createCamelContext(); - ((AbstractCamelContext) ctx).setNodeIdFactory(new NodeIdFactory() { + ctx.getCamelContextExtension().addContextPlugin(NodeIdFactory.class, buildNodeIdFactory()); + return ctx; + } + + private static NodeIdFactory buildNodeIdFactory() { + return new NodeIdFactory() { private AtomicInteger counter = new AtomicInteger(); @Override public String createId(NamedNode definition) { return definition.getShortName() + counter.incrementAndGet(); } - }); - return ctx; + }; } public ObjectName getContextObjectName() throws MalformedObjectNameException {