This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch extended in repository https://gitbox.apache.org/repos/asf/camel.git
commit d99ecec8a3d7c4f2d24eec40533367cbb7647a52 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon May 20 12:53:22 2019 +0200 CAMEL-13456: CamelContext - Move API that are not related to end users to an ExtendedCamelContext --- .../main/java/org/apache/camel/CamelContext.java | 122 +---------------- .../org/apache/camel/ExtendedCamelContext.java | 146 +++++++++++++++++++++ .../camel/impl/engine/AbstractCamelContext.java | 3 +- .../apache/camel/impl/engine/DefaultInjector.java | 3 +- .../impl/engine/SubscribeMethodProcessor.java | 4 +- .../impl/cloud/DefaultServiceCallProcessor.java | 3 +- .../core/xml/AbstractCamelContextFactoryBean.java | 13 +- .../camel/builder/ErrorHandlerBuilderRef.java | 3 +- .../org/apache/camel/builder/ProxyBuilder.java | 3 +- .../org/apache/camel/builder/RouteBuilder.java | 5 +- .../camel/impl/CamelPostProcessorHelper.java | 5 +- .../camel/impl/DefaultExecutorServiceManager.java | 5 +- .../java/org/apache/camel/impl/DefaultModel.java | 3 +- .../org/apache/camel/impl/DefaultRouteContext.java | 5 +- .../apache/camel/impl/ReloadStrategySupport.java | 3 +- .../java/org/apache/camel/impl/RouteService.java | 3 +- .../java/org/apache/camel/main/MainSupport.java | 5 +- .../java/org/apache/camel/model/ModelHelper.java | 3 +- .../model/RestContextRefDefinitionHelper.java | 3 +- .../model/RouteContextRefDefinitionHelper.java | 3 +- .../apache/camel/model/RouteDefinitionHelper.java | 9 +- .../apache/camel/model/rest/RestDefinition.java | 3 +- .../java/org/apache/camel/reifier/BeanReifier.java | 3 +- .../org/apache/camel/reifier/ProcessorReifier.java | 20 +-- .../org/apache/camel/reifier/RouteReifier.java | 5 +- .../java/org/apache/camel/reifier/StepReifier.java | 3 +- .../camel/builder/ContextErrorHandlerTest.java | 3 +- .../camel/builder/ErrorHandlerBuilderRefTest.java | 3 +- .../camel/impl/BeanInjectRouteBuilderTest.java | 3 +- .../CamelContextAddRestDefinitionsFromXmlTest.java | 3 +- ...CamelContextAddRouteDefinitionsFromXmlTest.java | 3 +- .../CamelProduceInterfaceEventNotifierTest.java | 3 +- .../org/apache/camel/impl/CustomIdFactoryTest.java | 5 +- .../impl/DefaultCamelBeanPostProcessorTest.java | 3 +- .../camel/impl/model/RouteIdFactoryTest.java | 3 +- ...ScopedOnExceptionMultipleRouteBuildersTest.java | 3 +- .../issues/OnExceptionContinuedIssueTest.java | 3 +- ...ScopedOnExceptionMultipleRouteBuildersTest.java | 3 +- .../processor/CustomProcessorFactoryTest.java | 3 +- .../camel/management/DefaultManagementAgent.java | 3 +- .../camel/management/mbean/ManagedProcessor.java | 5 +- 41 files changed, 254 insertions(+), 181 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java index 5712d40..34d6caf 100644 --- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java @@ -20,21 +20,15 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; -import org.apache.camel.spi.AnnotationBasedProcessorFactory; import org.apache.camel.spi.AsyncProcessorAwaitManager; -import org.apache.camel.spi.BeanProcessorFactory; -import org.apache.camel.spi.BeanProxyFactory; -import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelContextNameStrategy; import org.apache.camel.spi.ClassResolver; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.DataFormatResolver; import org.apache.camel.spi.DataType; import org.apache.camel.spi.Debugger; -import org.apache.camel.spi.DeferServiceFactory; import org.apache.camel.spi.EndpointRegistry; import org.apache.camel.spi.EndpointStrategy; import org.apache.camel.spi.ExecutorServiceManager; @@ -47,14 +41,10 @@ import org.apache.camel.spi.InterceptStrategy; import org.apache.camel.spi.Language; import org.apache.camel.spi.LifecycleStrategy; import org.apache.camel.spi.LogListener; -import org.apache.camel.spi.ManagementMBeanAssembler; import org.apache.camel.spi.ManagementNameStrategy; import org.apache.camel.spi.ManagementStrategy; import org.apache.camel.spi.MessageHistoryFactory; -import org.apache.camel.spi.ModelJAXBContextFactory; -import org.apache.camel.spi.NodeIdFactory; import org.apache.camel.spi.PackageScanClassResolver; -import org.apache.camel.spi.ProcessorFactory; import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spi.Registry; import org.apache.camel.spi.ReloadStrategy; @@ -97,6 +87,8 @@ import org.apache.camel.support.jsse.SSLContextParameters; * <p/> * End users are advised to use suspend/resume. Using stop is for shutting down Camel and it's not guaranteed that * when it's being started again using the start method that Camel will operate consistently. + * <p/> + * For more advanced APIs with {@link CamelContext} see {@link ExtendedCamelContext}. */ public interface CamelContext extends StatefulService, RuntimeConfiguration { @@ -655,14 +647,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { boolean removeRoute(String routeId) throws Exception; /** - * Method to signal to {@link CamelContext} that the process to initialize setup routes is in progress. - * - * @param done <tt>false</tt> to start the process, call again with <tt>true</tt> to signal its done. - * @see #isSetupRoutes() - */ - void setupRoutes(boolean done); - - /** * Indicates whether current thread is setting up route(s) as part of starting Camel from spring/blueprint. * <p/> * This can be useful to know by {@link LifecycleStrategy} or the likes, in case @@ -725,20 +709,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { Injector getInjector(); /** - * Returns the bean post processor used to do any bean customization. - * - * @return the bean post processor. - */ - CamelBeanPostProcessor getBeanPostProcessor(); - - /** - * Returns the management mbean assembler - * - * @return the mbean assembler - */ - ManagementMBeanAssembler getManagementMBeanAssembler(); - - /** * Returns the lifecycle strategies used to handle lifecycle notifications * * @return the lifecycle strategies @@ -912,16 +882,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { ConsumerTemplate createConsumerTemplate(int maximumCacheSize); /** - * Creates a new multicast processor which sends an exchange to all the processors. - * - * @param processors the list of processors to send to - * @param executor the executor to use - * @return a multicasting processor - */ - AsyncProcessor createMulticast(Collection<Processor> processors, - ExecutorService executor, boolean shutdownExecutorService); - - /** * Adds the given interceptor strategy * * @param interceptStrategy the strategy @@ -936,20 +896,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { List<InterceptStrategy> getInterceptStrategies(); /** - * Gets the default error handler builder which is inherited by the routes - * - * @return the builder - */ - ErrorHandlerFactory getErrorHandlerFactory(); - - /** - * Sets the default error handler builder which is inherited by the routes - * - * @param errorHandlerFactory the builder - */ - void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory); - - /** * Gets the default shared thread pool for error handlers which * leverages this for asynchronous redelivery tasks. */ @@ -1110,20 +1056,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { void setPackageScanClassResolver(PackageScanClassResolver resolver); /** - * 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 node id factory - * - * @return the node id factory - */ - NodeIdFactory getNodeIdFactory(); - - /** * Gets the management strategy * * @return the management strategy @@ -1175,7 +1107,7 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { AsyncProcessorAwaitManager getAsyncProcessorAwaitManager(); /** - * Sets a custom {@link org.apache.camel.AsyncProcessor} await manager. + * Sets a custom {@link org.apache.camel.AsyncProcessor} await manager. * * @param manager the manager */ @@ -1224,20 +1156,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { void setExecutorServiceManager(ExecutorServiceManager executorServiceManager); /** - * Gets the current {@link org.apache.camel.spi.ProcessorFactory} - * - * @return the factory, can be <tt>null</tt> if no custom factory has been set - */ - ProcessorFactory getProcessorFactory(); - - /** - * Sets a custom {@link org.apache.camel.spi.ProcessorFactory} - * - * @param processorFactory the custom factory - */ - void setProcessorFactory(ProcessorFactory processorFactory); - - /** * Gets the current {@link org.apache.camel.spi.MessageHistoryFactory} * * @return the factory @@ -1426,20 +1344,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { List<RoutePolicyFactory> getRoutePolicyFactories(); /** - * Returns the JAXB Context factory used to create Models. - * - * @return the JAXB Context factory used to create Models. - */ - ModelJAXBContextFactory getModelJAXBContextFactory(); - - /** - * Sets a custom JAXB Context factory to be used - * - * @param modelJAXBContextFactory a JAXB Context factory - */ - void setModelJAXBContextFactory(ModelJAXBContextFactory modelJAXBContextFactory); - - /** * Returns the {@link ReloadStrategy} if in use. * * @return the strategy, or <tt>null</tt> if none has been configured. @@ -1481,24 +1385,4 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { */ void setHeadersMapFactory(HeadersMapFactory factory); - /** - * Gets the {@link DeferServiceFactory} to use. - */ - DeferServiceFactory getDeferServiceFactory(); - - /** - * Gets the {@link AnnotationBasedProcessorFactory} to use. - */ - AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory(); - - /** - * Gets the {@link BeanProxyFactory} to use. - */ - BeanProxyFactory getBeanProxyFactory(); - - /** - * Gets the {@link BeanProcessorFactory} to use. - */ - BeanProcessorFactory getBeanProcessorFactory(); - } 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 new file mode 100644 index 0000000..352d5c7 --- /dev/null +++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java @@ -0,0 +1,146 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel; + +import java.util.Collection; +import java.util.concurrent.ExecutorService; + +import org.apache.camel.spi.AnnotationBasedProcessorFactory; +import org.apache.camel.spi.BeanProcessorFactory; +import org.apache.camel.spi.BeanProxyFactory; +import org.apache.camel.spi.CamelBeanPostProcessor; +import org.apache.camel.spi.DeferServiceFactory; +import org.apache.camel.spi.ManagementMBeanAssembler; +import org.apache.camel.spi.ModelJAXBContextFactory; +import org.apache.camel.spi.NodeIdFactory; +import org.apache.camel.spi.ProcessorFactory; + +/** + * Extended {@link CamelContext} which contains the methods and APIs that are not primary intended for Camel end users + * but for SPI, custom components, or more advanced used-cases with Camel. + */ +public interface ExtendedCamelContext extends CamelContext { + + /** + * Method to signal to {@link CamelContext} that the process to initialize setup routes is in progress. + * + * @param done <tt>false</tt> to start the process, call again with <tt>true</tt> to signal its done. + * @see #isSetupRoutes() + */ + void setupRoutes(boolean done); + + /** + * Returns the bean post processor used to do any bean customization. + * + * @return the bean post processor. + */ + CamelBeanPostProcessor getBeanPostProcessor(); + + /** + * Returns the management mbean assembler + * + * @return the mbean assembler + */ + ManagementMBeanAssembler getManagementMBeanAssembler(); + + /** + * Creates a new multicast processor which sends an exchange to all the processors. + * + * @param processors the list of processors to send to + * @param executor the executor to use + * @return a multicasting processor + */ + AsyncProcessor createMulticast(Collection<Processor> processors, + ExecutorService executor, boolean shutdownExecutorService); + + /** + * Gets the default error handler builder which is inherited by the routes + * + * @return the builder + */ + ErrorHandlerFactory getErrorHandlerFactory(); + + /** + * Sets the default error handler builder which is inherited by the routes + * + * @param errorHandlerFactory the builder + */ + void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory); + + /** + * 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 node id factory + * + * @return the node id factory + */ + NodeIdFactory getNodeIdFactory(); + + /** + * Gets the current {@link org.apache.camel.spi.ProcessorFactory} + * + * @return the factory, can be <tt>null</tt> if no custom factory has been set + */ + ProcessorFactory getProcessorFactory(); + + /** + * Sets a custom {@link org.apache.camel.spi.ProcessorFactory} + * + * @param processorFactory the custom factory + */ + void setProcessorFactory(ProcessorFactory processorFactory); + + /** + * Returns the JAXB Context factory used to create Models. + * + * @return the JAXB Context factory used to create Models. + */ + ModelJAXBContextFactory getModelJAXBContextFactory(); + + /** + * Sets a custom JAXB Context factory to be used + * + * @param modelJAXBContextFactory a JAXB Context factory + */ + void setModelJAXBContextFactory(ModelJAXBContextFactory modelJAXBContextFactory); + + /** + * Gets the {@link DeferServiceFactory} to use. + */ + DeferServiceFactory getDeferServiceFactory(); + + /** + * Gets the {@link AnnotationBasedProcessorFactory} to use. + */ + AnnotationBasedProcessorFactory getAnnotationBasedProcessorFactory(); + + /** + * Gets the {@link BeanProxyFactory} to use. + */ + BeanProxyFactory getBeanProxyFactory(); + + /** + * Gets the {@link BeanProcessorFactory} to use. + */ + BeanProcessorFactory getBeanProcessorFactory(); + +} diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index 83a5c28..f44e3a7 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -50,6 +50,7 @@ import org.apache.camel.Consumer; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.ExtendedStartupListener; import org.apache.camel.FailedToStartRouteException; import org.apache.camel.FluentProducerTemplate; @@ -161,7 +162,7 @@ import static org.apache.camel.spi.UnitOfWork.MDC_CAMEL_CONTEXT_ID; /** * Represents the context used to configure routes and the policies to use. */ -public abstract class AbstractCamelContext extends ServiceSupport implements CamelContext, Suspendable { +public abstract class AbstractCamelContext extends ServiceSupport implements ExtendedCamelContext, Suspendable { public enum Initialization { Eager, Default, Lazy diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java index c85a956..76f583b 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultInjector.java @@ -17,6 +17,7 @@ package org.apache.camel.impl.engine; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.Injector; @@ -35,7 +36,7 @@ public class DefaultInjector implements Injector { private final CamelBeanPostProcessor postProcessor; public DefaultInjector(CamelContext context) { - postProcessor = context.getBeanPostProcessor(); + postProcessor = context.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); } @Override diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java index 683efd3..b010417 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SubscribeMethodProcessor.java @@ -26,6 +26,7 @@ import org.apache.camel.AsyncCallback; import org.apache.camel.AsyncProcessor; import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Navigate; import org.apache.camel.Predicate; import org.apache.camel.Processor; @@ -53,7 +54,8 @@ public final class SubscribeMethodProcessor extends AsyncProcessorSupport implem } public void addMethod(final Object pojo, final Method method, final Endpoint endpoint, String predicate) throws Exception { - Processor answer = endpoint.getCamelContext().getBeanProcessorFactory().createBeanProcessor(endpoint.getCamelContext(), pojo, method); + Processor answer = endpoint.getCamelContext().adapt(ExtendedCamelContext.class) + .getBeanProcessorFactory().createBeanProcessor(endpoint.getCamelContext(), pojo, method); // must ensure the consumer is being executed in an unit of work so synchronization callbacks etc is invoked CamelInternalProcessor internal = new CamelInternalProcessor(answer); internal.addAdvice(new CamelInternalProcessor.UnitOfWorkProcessorAdvice(null)); diff --git a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java index 5603f19..6d438e3 100644 --- a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java +++ b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/DefaultServiceCallProcessor.java @@ -25,6 +25,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.ExchangePattern; import org.apache.camel.Expression; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Message; import org.apache.camel.Processor; import org.apache.camel.cloud.ServiceCallConstants; @@ -130,7 +131,7 @@ public class DefaultServiceCallProcessor extends AsyncProcessorSupport { args.put("expression", expression); args.put("exchangePattern", exchangePattern); - Processor send = camelContext.getProcessorFactory().createProcessor(camelContext, "SendDynamicProcessor", args); + Processor send = camelContext.adapt(ExtendedCamelContext.class).getProcessorFactory().createProcessor(camelContext, "SendDynamicProcessor", args); processor = AsyncProcessorConverterHelper.convert(send); // Start services if needed 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 94f2de6..d64cc5b 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 @@ -30,6 +30,7 @@ import javax.xml.bind.annotation.XmlTransient; import org.apache.camel.CamelContext; import org.apache.camel.CamelException; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.LoggingLevel; import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.RoutesBuilder; @@ -411,7 +412,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex LOG.debug("Setting up routes"); // mark that we are setting up routes - getContext().setupRoutes(false); + getContext().adapt(ExtendedCamelContext.class).setupRoutes(false); // must init route refs before we prepare the routes below initRouteRefs(); @@ -462,7 +463,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex installRoutes(); // and we are now finished setting up the routes - getContext().setupRoutes(true); + getContext().adapt(ExtendedCamelContext.class).setupRoutes(true); } } @@ -867,7 +868,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex context.setHandleFault(CamelContextHelper.parseBoolean(context, getHandleFault())); } if (getErrorHandlerRef() != null) { - context.setErrorHandlerFactory(new ErrorHandlerBuilderRef(getErrorHandlerRef())); + context.adapt(ExtendedCamelContext.class).setErrorHandlerFactory(new ErrorHandlerBuilderRef(getErrorHandlerRef())); } if (getAutoStartup() != null) { context.setAutoStartup(CamelContextHelper.parseBoolean(context, getAutoStartup())); @@ -1113,7 +1114,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex ModelJAXBContextFactory modelJAXBContextFactory = getBeanForType(ModelJAXBContextFactory.class); if (modelJAXBContextFactory != null) { LOG.info("Using custom ModelJAXBContextFactory: {}", modelJAXBContextFactory); - getContext().setModelJAXBContextFactory(modelJAXBContextFactory); + getContext().adapt(ExtendedCamelContext.class).setModelJAXBContextFactory(modelJAXBContextFactory); } ClassResolver classResolver = getBeanForType(ClassResolver.class); if (classResolver != null) { @@ -1138,7 +1139,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex ProcessorFactory processorFactory = getBeanForType(ProcessorFactory.class); if (processorFactory != null) { LOG.info("Using custom ProcessorFactory: {}", processorFactory); - getContext().setProcessorFactory(processorFactory); + getContext().adapt(ExtendedCamelContext.class).setProcessorFactory(processorFactory); } Debugger debugger = getBeanForType(Debugger.class); if (debugger != null) { @@ -1153,7 +1154,7 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex NodeIdFactory nodeIdFactory = getBeanForType(NodeIdFactory.class); if (nodeIdFactory != null) { LOG.info("Using custom NodeIdFactory: {}", nodeIdFactory); - getContext().setNodeIdFactory(nodeIdFactory); + getContext().adapt(ExtendedCamelContext.class).setNodeIdFactory(nodeIdFactory); } StreamCachingStrategy streamCachingStrategy = getBeanForType(StreamCachingStrategy.class); if (streamCachingStrategy != null) { diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java b/core/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java index d7aa51f..8cfcec2 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.model.OnExceptionDefinition; import org.apache.camel.model.RouteDefinition; @@ -157,7 +158,7 @@ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport { } protected static ErrorHandlerFactory lookupErrorHandlerBuilder(CamelContext camelContext) { - ErrorHandlerFactory answer = camelContext.getErrorHandlerFactory(); + ErrorHandlerFactory answer = camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory(); if (answer instanceof ErrorHandlerBuilderRef) { ErrorHandlerBuilderRef other = (ErrorHandlerBuilderRef) answer; String otherRef = other.getRef(); diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/ProxyBuilder.java b/core/camel-core/src/main/java/org/apache/camel/builder/ProxyBuilder.java index 263135a..4c861d8 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/ProxyBuilder.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/ProxyBuilder.java @@ -18,6 +18,7 @@ package org.apache.camel.builder; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.spi.BeanProxyFactory; import org.apache.camel.util.ObjectHelper; @@ -81,7 +82,7 @@ public final class ProxyBuilder { public <T> T build(Class<T>... interfaceClasses) throws Exception { ObjectHelper.notNull(endpoint, "endpoint"); // use proxy service - BeanProxyFactory factory = camelContext.getBeanProxyFactory(); + BeanProxyFactory factory = camelContext.adapt(ExtendedCamelContext.class).getBeanProxyFactory(); if (factory == null) { throw new IllegalArgumentException("Cannot find BeanProxyFactory. Make sure camel-bean is on the classpath."); } diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java b/core/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java index 668e2c2..fade2e4 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java @@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Route; import org.apache.camel.RoutesBuilder; import org.apache.camel.model.FromDefinition; @@ -427,8 +428,8 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild if (initialized.compareAndSet(false, true)) { // Set the CamelContext ErrorHandler here CamelContext camelContext = getContext(); - if (camelContext.getErrorHandlerFactory() instanceof ErrorHandlerBuilder) { - setErrorHandlerBuilder((ErrorHandlerBuilder) camelContext.getErrorHandlerFactory()); + if (camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory() instanceof ErrorHandlerBuilder) { + setErrorHandlerBuilder((ErrorHandlerBuilder) camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory()); } configure(); // mark all route definitions as custom prepared because diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java b/core/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java index 8432d25..569b924 100644 --- a/core/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java +++ b/core/camel-core/src/main/java/org/apache/camel/impl/CamelPostProcessorHelper.java @@ -26,6 +26,7 @@ import org.apache.camel.Consumer; import org.apache.camel.ConsumerTemplate; import org.apache.camel.DelegateEndpoint; import org.apache.camel.Endpoint; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.FluentProducerTemplate; import org.apache.camel.IsSingleton; import org.apache.camel.MultipleConsumersSupport; @@ -251,7 +252,7 @@ public class CamelPostProcessorHelper implements CamelContextAware { // lets create a proxy try { // use proxy service - BeanProxyFactory factory = endpoint.getCamelContext().getBeanProxyFactory(); + BeanProxyFactory factory = endpoint.getCamelContext().adapt(ExtendedCamelContext.class).getBeanProxyFactory(); if (factory == null) { throw new IllegalArgumentException("Cannot find BeanProxyFactory. Make sure camel-bean is on the classpath."); } @@ -400,7 +401,7 @@ public class CamelPostProcessorHelper implements CamelContextAware { */ protected Producer createInjectionProducer(Endpoint endpoint, Object bean, String beanName) { try { - return endpoint.getCamelContext().getDeferServiceFactory().createProducer(endpoint); + return endpoint.getCamelContext().adapt(ExtendedCamelContext.class).getDeferServiceFactory().createProducer(endpoint); } catch (Exception e) { throw RuntimeCamelException.wrapRuntimeCamelException(e); } diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java index d0b4534..532fd68 100644 --- a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java +++ b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java @@ -30,6 +30,7 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.NamedNode; import org.apache.camel.StaticService; import org.apache.camel.model.OptionalIdentifiedDefinition; @@ -500,7 +501,7 @@ public class DefaultExecutorServiceManager extends ServiceSupport implements Exe // extract id from source if (source instanceof NamedNode) { - id = ((OptionalIdentifiedDefinition<?>) source).idOrCreate(this.camelContext.getNodeIdFactory()); + id = ((OptionalIdentifiedDefinition<?>) source).idOrCreate(this.camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); // and let source be the short name of the pattern sourceId = ((NamedNode) source).getShortName(); } else if (source instanceof String) { @@ -525,7 +526,7 @@ public class DefaultExecutorServiceManager extends ServiceSupport implements Exe if (source instanceof ProcessorDefinition) { RouteDefinition route = ProcessorDefinitionHelper.getRoute((ProcessorDefinition<?>) source); if (route != null) { - routeId = route.idOrCreate(this.camelContext.getNodeIdFactory()); + routeId = route.idOrCreate(this.camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); } } diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java index 56b4f86..a639d38 100644 --- a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java +++ b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.FailedToStartRouteException; import org.apache.camel.Route; import org.apache.camel.impl.engine.AbstractCamelContext; @@ -108,7 +109,7 @@ public class DefaultModel implements Model { public synchronized RouteDefinition getRouteDefinition(String id) { for (RouteDefinition route : routeDefinitions) { - if (route.idOrCreate(camelContext.getNodeIdFactory()).equals(id)) { + if (route.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()).equals(id)) { return route; } } diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java index 2c9663d..061adbe 100644 --- a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java +++ b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java @@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.NamedNode; import org.apache.camel.NoSuchEndpointException; import org.apache.camel.Processor; @@ -83,7 +84,7 @@ public class DefaultRouteContext implements RouteContext { this.camelContext = camelContext; this.route = route; this.from = from; - this.routeId = route.idOrCreate(camelContext.getNodeIdFactory()); + this.routeId = route.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); } public Endpoint getEndpoint() { @@ -168,7 +169,7 @@ public class DefaultRouteContext implements RouteContext { Processor target = Pipeline.newInstance(getCamelContext(), eventDrivenProcessors); // force creating the route id so its known ahead of the route is started - String routeId = route.idOrCreate(getCamelContext().getNodeIdFactory()); + String routeId = route.idOrCreate(getCamelContext().adapt(ExtendedCamelContext.class).getNodeIdFactory()); // and wrap it in a unit of work so the UoW is on the top, so the entire route will be in the same UoW CamelInternalProcessor internal = new CamelInternalProcessor(target); diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/ReloadStrategySupport.java b/core/camel-core/src/main/java/org/apache/camel/impl/ReloadStrategySupport.java index 81cf3f8..3e0ade7 100644 --- a/core/camel-core/src/main/java/org/apache/camel/impl/ReloadStrategySupport.java +++ b/core/camel-core/src/main/java/org/apache/camel/impl/ReloadStrategySupport.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.apache.camel.ExtendedCamelContext; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -139,7 +140,7 @@ public abstract class ReloadStrategySupport extends ServiceSupport implements Re // collect route ids and force assign ids if not in use for (RouteDefinition route : routes) { unassignedRouteIds |= !route.hasCustomIdAssigned(); - String id = route.idOrCreate(camelContext.getNodeIdFactory()); + String id = route.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); csb.append(id); } log.debug("Reloading routes: [{}] from XML resource: {}", csb, name); diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/RouteService.java b/core/camel-core/src/main/java/org/apache/camel/impl/RouteService.java index b4e02e6..9cde665 100644 --- a/core/camel-core/src/main/java/org/apache/camel/impl/RouteService.java +++ b/core/camel-core/src/main/java/org/apache/camel/impl/RouteService.java @@ -19,6 +19,7 @@ package org.apache.camel.impl; import java.util.List; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.Route; import org.apache.camel.Service; @@ -76,7 +77,7 @@ public class RouteService extends BaseRouteService { // the XML DSL will configure error handlers using refs, so we need this additional test if (routeDefinition.getErrorHandlerRef() != null) { ErrorHandlerFactory routeScoped = getRouteContext().getErrorHandlerFactory(); - ErrorHandlerFactory contextScoped = getCamelContext().getErrorHandlerFactory(); + ErrorHandlerFactory contextScoped = getCamelContext().adapt(ExtendedCamelContext.class).getErrorHandlerFactory(); return routeScoped != null && contextScoped != null && routeScoped == contextScoped; } diff --git a/core/camel-core/src/main/java/org/apache/camel/main/MainSupport.java b/core/camel-core/src/main/java/org/apache/camel/main/MainSupport.java index b4152b3..c526a5f 100644 --- a/core/camel-core/src/main/java/org/apache/camel/main/MainSupport.java +++ b/core/camel-core/src/main/java/org/apache/camel/main/MainSupport.java @@ -41,6 +41,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.Component; import org.apache.camel.Exchange; import org.apache.camel.Expression; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.ProducerTemplate; import org.apache.camel.TypeConverters; import org.apache.camel.builder.RouteBuilder; @@ -726,7 +727,7 @@ public abstract class MainSupport extends ServiceSupport { protected void loadRouteBuilders(CamelContext camelContext) throws Exception { // lets use Camel's bean post processor on any existing route builder classes // so the instance has some support for dependency injection - CamelBeanPostProcessor postProcessor = camelContext.getBeanPostProcessor(); + CamelBeanPostProcessor postProcessor = camelContext.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); for (RouteBuilder routeBuilder : getRouteBuilders()) { postProcessor.postProcessBeforeInitialization(routeBuilder, routeBuilder.getClass().getName()); postProcessor.postProcessAfterInitialization(routeBuilder, routeBuilder.getClass().getName()); @@ -750,7 +751,7 @@ public abstract class MainSupport extends ServiceSupport { protected void loadConfigurations(CamelContext camelContext) throws Exception { // lets use Camel's bean post processor on any existing configuration classes // so the instance has some support for dependency injection - CamelBeanPostProcessor postProcessor = camelContext.getBeanPostProcessor(); + CamelBeanPostProcessor postProcessor = camelContext.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); for (Object configuration : getConfigurations()) { postProcessor.postProcessBeforeInitialization(configuration, configuration.getClass().getName()); postProcessor.postProcessAfterInitialization(configuration, configuration.getClass().getName()); diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java index 5a7f399..3c375a3 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java @@ -36,6 +36,7 @@ import javax.xml.bind.Unmarshaller; import javax.xml.transform.OutputKeys; import javax.xml.transform.TransformerException; +import org.apache.camel.ExtendedCamelContext; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; @@ -340,7 +341,7 @@ public final class ModelHelper { } private static JAXBContext getJAXBContext(CamelContext context) throws JAXBException { - ModelJAXBContextFactory factory = context.getModelJAXBContextFactory(); + ModelJAXBContextFactory factory = context.adapt(ExtendedCamelContext.class).getModelJAXBContextFactory(); return factory.newJAXBContext(); } diff --git a/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinitionHelper.java index cb47f78..0f0e7a7 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinitionHelper.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinitionHelper.java @@ -30,6 +30,7 @@ import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.model.language.NamespaceAwareExpression; import org.apache.camel.model.rest.RestDefinition; @@ -92,7 +93,7 @@ public final class RestContextRefDefinitionHelper { private static synchronized JAXBContext getOrCreateJAXBContext(final CamelContext camelContext) throws JAXBException { if (jaxbContext == null) { // must use classloader from CamelContext to have JAXB working - jaxbContext = camelContext.getModelJAXBContextFactory().newJAXBContext(); + jaxbContext = camelContext.adapt(ExtendedCamelContext.class).getModelJAXBContextFactory().newJAXBContext(); } return jaxbContext; } diff --git a/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinitionHelper.java index 967390e..45d570c 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinitionHelper.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinitionHelper.java @@ -30,6 +30,7 @@ import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.model.language.NamespaceAwareExpression; import org.apache.camel.support.CamelContextHelper; @@ -89,7 +90,7 @@ public final class RouteContextRefDefinitionHelper { private static synchronized JAXBContext getOrCreateJAXBContext(final CamelContext camelContext) throws JAXBException { if (jaxbContext == null) { - jaxbContext = camelContext.getModelJAXBContextFactory().newJAXBContext(); + jaxbContext = camelContext.adapt(ExtendedCamelContext.class).getModelJAXBContextFactory().newJAXBContext(); } return jaxbContext; } diff --git a/core/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java index afbc382..62cc273 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java @@ -29,6 +29,7 @@ import java.util.Set; import org.apache.camel.CamelContext; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.builder.ErrorHandlerBuilder; import org.apache.camel.model.rest.RestDefinition; @@ -166,7 +167,7 @@ public final class RouteDefinitionHelper { boolean done = false; String id = null; while (!done) { - id = route.idOrCreate(context.getNodeIdFactory()); + id = route.idOrCreate(context.adapt(ExtendedCamelContext.class).getNodeIdFactory()); done = !customIds.contains(id); } route.setId(id); @@ -184,7 +185,7 @@ public final class RouteDefinitionHelper { if (rest != null && route.isRest()) { VerbDefinition verb = findVerbDefinition(rest, route.getInput().getUri()); if (verb != null) { - String id = verb.idOrCreate(context.getNodeIdFactory()); + String id = verb.idOrCreate(context.adapt(ExtendedCamelContext.class).getNodeIdFactory()); if (!verb.getUsedForGeneratingNodeId()) { id = route.getId(); } @@ -448,7 +449,7 @@ public final class RouteDefinitionHelper { // let the route inherit the error handler builder from camel context if none already set // must clone to avoid side effects while building routes using multiple RouteBuilders - ErrorHandlerFactory builder = context.getErrorHandlerFactory(); + ErrorHandlerFactory builder = context.adapt(ExtendedCamelContext.class).getErrorHandlerFactory(); if (builder != null) { if (builder instanceof ErrorHandlerBuilder) { builder = ((ErrorHandlerBuilder) builder).cloneBuilder(); @@ -694,7 +695,7 @@ public final class RouteDefinitionHelper { */ public static void forceAssignIds(CamelContext context, final ProcessorDefinition processor) { // force id on the child - processor.idOrCreate(context.getNodeIdFactory()); + processor.idOrCreate(context.adapt(ExtendedCamelContext.class).getNodeIdFactory()); // if there was a custom id assigned, then make sure to support property placeholders if (processor.hasCustomIdAssigned()) { diff --git a/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java index eb22f4b..314e17c 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java @@ -32,6 +32,7 @@ import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.model.OptionalIdentifiedDefinition; import org.apache.camel.model.ProcessorDefinition; @@ -732,7 +733,7 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition> String routeId = configuration.getApiContextRouteId(); if (routeId == null) { - routeId = answer.idOrCreate(camelContext.getNodeIdFactory()); + routeId = answer.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory()); } options.put("routeId", routeId); if (configuration.getComponent() != null && !configuration.getComponent().isEmpty()) { diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/BeanReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/BeanReifier.java index 67c0617..7b1a1d0 100644 --- a/core/camel-core/src/main/java/org/apache/camel/reifier/BeanReifier.java +++ b/core/camel-core/src/main/java/org/apache/camel/reifier/BeanReifier.java @@ -17,6 +17,7 @@ package org.apache.camel.reifier; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.model.BeanDefinition; import org.apache.camel.model.ProcessorDefinition; @@ -38,7 +39,7 @@ class BeanReifier extends ProcessorReifier<BeanDefinition> { String beanType = definition.getBeanType(); Class<?> beanClass = definition.getBeanClass(); - return camelContext.getBeanProcessorFactory().createBeanProcessor(camelContext, + return camelContext.adapt(ExtendedCamelContext.class).getBeanProcessorFactory().createBeanProcessor(camelContext, bean, beanType, beanClass, ref, method, isCacheBean()); } diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java index 9cce0d2..5e82784 100644 --- a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java +++ b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java @@ -25,6 +25,7 @@ import java.util.function.Function; import org.apache.camel.Channel; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.model.AggregateDefinition; import org.apache.camel.model.BeanDefinition; @@ -222,8 +223,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> { protected Processor createChildProcessor(RouteContext routeContext, boolean mandatory) throws Exception { Processor children = null; // at first use custom factory - if (routeContext.getCamelContext().getProcessorFactory() != null) { - children = routeContext.getCamelContext().getProcessorFactory().createChildProcessor(routeContext, definition, mandatory); + if (routeContext.getCamelContext().adapt(ExtendedCamelContext.class).getProcessorFactory() != null) { + children = routeContext.getCamelContext().adapt(ExtendedCamelContext.class) + .getProcessorFactory().createChildProcessor(routeContext, definition, mandatory); } // fallback to default implementation if factory did not create the child if (children == null) { @@ -448,7 +450,7 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> { // inject id if (processor instanceof IdAware) { - String id = output.idOrCreate(routeContext.getCamelContext().getNodeIdFactory()); + String id = output.idOrCreate(routeContext.getCamelContext().adapt(ExtendedCamelContext.class).getNodeIdFactory()); ((IdAware) processor).setId(id); } @@ -476,8 +478,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> { protected Processor createProcessor(RouteContext routeContext, ProcessorDefinition<?> output) throws Exception { Processor processor = null; // at first use custom factory - if (routeContext.getCamelContext().getProcessorFactory() != null) { - processor = routeContext.getCamelContext().getProcessorFactory().createProcessor(routeContext, output); + if (routeContext.getCamelContext().adapt(ExtendedCamelContext.class).getProcessorFactory() != null) { + processor = routeContext.getCamelContext().adapt(ExtendedCamelContext.class) + .getProcessorFactory().createProcessor(routeContext, output); } // fallback to default implementation if factory did not create the processor if (processor == null) { @@ -527,8 +530,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> { } // at first use custom factory - if (routeContext.getCamelContext().getProcessorFactory() != null) { - processor = routeContext.getCamelContext().getProcessorFactory().createProcessor(routeContext, definition); + if (routeContext.getCamelContext().adapt(ExtendedCamelContext.class).getProcessorFactory() != null) { + processor = routeContext.getCamelContext().adapt(ExtendedCamelContext.class) + .getProcessorFactory().createProcessor(routeContext, definition); } // fallback to default implementation if factory did not create the processor if (processor == null) { @@ -537,7 +541,7 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> { // inject id if (processor instanceof IdAware) { - String id = definition.idOrCreate(routeContext.getCamelContext().getNodeIdFactory()); + String id = definition.idOrCreate(routeContext.getCamelContext().adapt(ExtendedCamelContext.class).getNodeIdFactory()); ((IdAware) processor).setId(id); } diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java index 2f6ca2a..9932134 100644 --- a/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java +++ b/core/camel-core/src/main/java/org/apache/camel/reifier/RouteReifier.java @@ -23,6 +23,7 @@ import java.util.StringTokenizer; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.FailedToCreateRouteException; import org.apache.camel.NoSuchEndpointException; import org.apache.camel.Processor; @@ -89,7 +90,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { public Route createRoute(CamelContext camelContext) throws Exception { @SuppressWarnings("deprecation") - ErrorHandlerFactory handler = camelContext.getErrorHandlerFactory(); + ErrorHandlerFactory handler = camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory(); if (handler != null) { definition.setErrorHandlerBuilderIfNull(handler); } @@ -161,7 +162,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { // we must check the error handler on builder is not the same as on camel context, as that would be the default // context scoped error handler, in case no error handlers was configured if (builder.getRouteCollection().getErrorHandlerFactory() != null - && camelContext.getErrorHandlerFactory() != builder.getRouteCollection().getErrorHandlerFactory()) { + && camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory() != builder.getRouteCollection().getErrorHandlerFactory()) { throw new IllegalArgumentException("You can not advice with error handlers. Remove the error handlers from the route builder."); } diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/StepReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/StepReifier.java index 2960c5f..71d8880 100644 --- a/core/camel-core/src/main/java/org/apache/camel/reifier/StepReifier.java +++ b/core/camel-core/src/main/java/org/apache/camel/reifier/StepReifier.java @@ -18,6 +18,7 @@ package org.apache.camel.reifier; import java.util.List; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.StepDefinition; @@ -37,7 +38,7 @@ class StepReifier extends ProcessorReifier<StepDefinition> { @Override protected Processor createCompositeProcessor(RouteContext routeContext, List<Processor> list) throws Exception { - String stepId = definition.idOrCreate(routeContext.getCamelContext().getNodeIdFactory()); + String stepId = definition.idOrCreate(routeContext.getCamelContext().adapt(ExtendedCamelContext.class).getNodeIdFactory()); return StepProcessor.newInstance(routeContext.getCamelContext(), list, stepId); } } diff --git a/core/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java b/core/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java index b625a39..fd72b23 100644 --- a/core/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/builder/ContextErrorHandlerTest.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.camel.Channel; import org.apache.camel.ContextTestSupport; import org.apache.camel.Endpoint; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.Route; import org.apache.camel.impl.engine.EventDrivenConsumerRoute; @@ -41,7 +42,7 @@ public class ContextErrorHandlerTest extends ContextTestSupport { redeliveryPolicy.setUseExponentialBackOff(true); DeadLetterChannelBuilder deadLetterChannelBuilder = new DeadLetterChannelBuilder("mock:error"); deadLetterChannelBuilder.setRedeliveryPolicy(redeliveryPolicy); - context.setErrorHandlerFactory(deadLetterChannelBuilder); + context.adapt(ExtendedCamelContext.class).setErrorHandlerFactory(deadLetterChannelBuilder); } protected void startCamelContext() throws Exception { diff --git a/core/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerBuilderRefTest.java b/core/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerBuilderRefTest.java index 726d919..2479629 100644 --- a/core/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerBuilderRefTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/builder/ErrorHandlerBuilderRefTest.java @@ -22,6 +22,7 @@ import java.util.UUID; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.impl.JndiRegistry; import org.junit.Test; @@ -43,7 +44,7 @@ public class ErrorHandlerBuilderRefTest extends ContextTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.setErrorHandlerFactory(errorHandlerBuilderRef); + context.adapt(ExtendedCamelContext.class).setErrorHandlerFactory(errorHandlerBuilderRef); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java index 21c8a27..2aa96ae 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/BeanInjectRouteBuilderTest.java @@ -20,6 +20,7 @@ import org.apache.camel.BeanInject; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.spi.CamelBeanPostProcessor; @@ -42,7 +43,7 @@ public class BeanInjectRouteBuilderTest extends ContextTestSupport { CamelContext context = super.createCamelContext(); // manual post process us as ContextTestSupport in camel-core doesn't do that out of the box - CamelBeanPostProcessor post = context.getBeanPostProcessor(); + CamelBeanPostProcessor post = context.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); post.postProcessBeforeInitialization(this, "MyRoute"); post.postProcessAfterInitialization(this, "MyRoute"); return context; diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRestDefinitionsFromXmlTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRestDefinitionsFromXmlTest.java index 8a5844c..82a82cb 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRestDefinitionsFromXmlTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRestDefinitionsFromXmlTest.java @@ -23,6 +23,7 @@ import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.rest.DummyRestConsumerFactory; import org.apache.camel.component.rest.DummyRestProcessorFactory; @@ -47,7 +48,7 @@ public class CamelContextAddRestDefinitionsFromXmlTest extends ContextTestSuppor @Before public void setUp() throws Exception { super.setUp(); - jaxbContext = context.getModelJAXBContextFactory().newJAXBContext(); + jaxbContext = context.adapt(ExtendedCamelContext.class).getModelJAXBContextFactory().newJAXBContext(); } protected Object parseUri(String uri) throws JAXBException { diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRouteDefinitionsFromXmlTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRouteDefinitionsFromXmlTest.java index 13ab63d..cda3d8e 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRouteDefinitionsFromXmlTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/CamelContextAddRouteDefinitionsFromXmlTest.java @@ -23,6 +23,7 @@ import javax.xml.bind.Unmarshaller; import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.RouteDefinition; @@ -37,7 +38,7 @@ public class CamelContextAddRouteDefinitionsFromXmlTest extends ContextTestSuppo @Before public void setUp() throws Exception { super.setUp(); - jaxbContext = context.getModelJAXBContextFactory().newJAXBContext(); + jaxbContext = context.adapt(ExtendedCamelContext.class).getModelJAXBContextFactory().newJAXBContext(); } protected Object parseUri(String uri) throws JAXBException { diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java index 48eb89e..5b549b0 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/CamelProduceInterfaceEventNotifierTest.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Produce; import org.apache.camel.spi.CamelBeanPostProcessor; import org.apache.camel.spi.CamelEvent; @@ -76,7 +77,7 @@ public class CamelProduceInterfaceEventNotifierTest extends ContextTestSupport { @Before public void setUp() throws Exception { super.setUp(); - postProcessor = context.getBeanPostProcessor(); + postProcessor = context.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); } interface FooService { 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 6bcb218..33a351c 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 @@ -19,6 +19,7 @@ package org.apache.camel.impl; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.NamedNode; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; @@ -58,7 +59,7 @@ public class CustomIdFactoryTest extends ContextTestSupport { @Override public void configure() throws Exception { // use our own id factory so we can generate the keys we like to use - context.setNodeIdFactory(new NodeIdFactory() { + context.adapt(ExtendedCamelContext.class).setNodeIdFactory(new NodeIdFactory() { public String createId(NamedNode definition) { return "#" + definition.getShortName() + ++counter + "#"; } @@ -117,7 +118,7 @@ public class CustomIdFactoryTest extends ContextTestSupport { // MUST DO THIS // force id creation as sub nodes have lazy assigned ids - ((OptionalIdentifiedDefinition<?>) definition).idOrCreate(context.getNodeIdFactory()); + ((OptionalIdentifiedDefinition<?>) definition).idOrCreate(context.adapt(ExtendedCamelContext.class).getNodeIdFactory()); return new DelegateProcessor(target) { @Override diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java index 0c9b282..e27c206 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelBeanPostProcessorTest.java @@ -19,6 +19,7 @@ package org.apache.camel.impl; import org.apache.camel.BindToRegistry; import org.apache.camel.Consume; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; import org.apache.camel.spi.CamelBeanPostProcessor; @@ -58,7 +59,7 @@ public class DefaultCamelBeanPostProcessorTest extends ContextTestSupport { @Before public void setUp() throws Exception { super.setUp(); - postProcessor = context.getBeanPostProcessor(); + postProcessor = context.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); } @BindToRegistry diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/model/RouteIdFactoryTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/model/RouteIdFactoryTest.java index 621804d..5bc0d17 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/model/RouteIdFactoryTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/model/RouteIdFactoryTest.java @@ -17,6 +17,7 @@ package org.apache.camel.impl.model; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.rest.DummyRestConsumerFactory; import org.apache.camel.component.rest.DummyRestProcessorFactory; @@ -39,7 +40,7 @@ public class RouteIdFactoryTest extends ContextTestSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - context.setNodeIdFactory(new RouteIdFactory()); + context.adapt(ExtendedCamelContext.class).setNodeIdFactory(new RouteIdFactory()); from("direct:start1?timeout=30000").to("mock:result"); from("direct:start2").to("mock:result"); rest("/say/hello").get("/bar").to("mock:result"); diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java index 1632898..27f7672 100644 --- a/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java @@ -18,6 +18,7 @@ package org.apache.camel.issues; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.RouteBuilder; import org.junit.Test; @@ -51,7 +52,7 @@ public class ContextScopedOnExceptionMultipleRouteBuildersTest extends ContextTe @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.setErrorHandlerFactory(new DeadLetterChannelBuilder("mock:dead")); + context.adapt(ExtendedCamelContext.class).setErrorHandlerFactory(new DeadLetterChannelBuilder("mock:dead")); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/OnExceptionContinuedIssueTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/OnExceptionContinuedIssueTest.java index 8194078..68b065f 100644 --- a/core/camel-core/src/test/java/org/apache/camel/issues/OnExceptionContinuedIssueTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/issues/OnExceptionContinuedIssueTest.java @@ -18,6 +18,7 @@ package org.apache.camel.issues; import org.apache.camel.ContextTestSupport; import org.apache.camel.Exchange; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.DefaultErrorHandlerBuilder; @@ -37,7 +38,7 @@ public class OnExceptionContinuedIssueTest extends ContextTestSupport { defaultErrorHandlerBuilder.redeliveryDelay(0); // run fast defaultErrorHandlerBuilder.maximumRedeliveries(2); - context.setErrorHandlerFactory(defaultErrorHandlerBuilder); + context.adapt(ExtendedCamelContext.class).setErrorHandlerFactory(defaultErrorHandlerBuilder); context.addRoutes(new RouteBuilder() { @Override public void configure() throws Exception { diff --git a/core/camel-core/src/test/java/org/apache/camel/issues/RouteScopedOnExceptionMultipleRouteBuildersTest.java b/core/camel-core/src/test/java/org/apache/camel/issues/RouteScopedOnExceptionMultipleRouteBuildersTest.java index 0f2ca93..66cb4d8 100644 --- a/core/camel-core/src/test/java/org/apache/camel/issues/RouteScopedOnExceptionMultipleRouteBuildersTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/issues/RouteScopedOnExceptionMultipleRouteBuildersTest.java @@ -18,6 +18,7 @@ package org.apache.camel.issues; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.builder.DeadLetterChannelBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; @@ -53,7 +54,7 @@ public class RouteScopedOnExceptionMultipleRouteBuildersTest extends ContextTest @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = new DefaultCamelContext(createRegistry()); - context.setErrorHandlerFactory(new DeadLetterChannelBuilder("mock:dead")); + context.adapt(ExtendedCamelContext.class).setErrorHandlerFactory(new DeadLetterChannelBuilder("mock:dead")); return context; } diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java index 6f97c5a..986df4b 100644 --- a/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/processor/CustomProcessorFactoryTest.java @@ -20,6 +20,7 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.NamedNode; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; @@ -38,7 +39,7 @@ public class CustomProcessorFactoryTest extends ContextTestSupport { protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); // register our custom factory - context.setProcessorFactory(new MyFactory()); + context.adapt(ExtendedCamelContext.class).setProcessorFactory(new MyFactory()); return context; } // END SNIPPET: e1 diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementAgent.java index e35ca5a..0906df0 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementAgent.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementAgent.java @@ -44,6 +44,7 @@ import javax.management.remote.JMXServiceURL; import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.api.management.JmxSystemPropertyKeys; import org.apache.camel.spi.ManagementAgent; @@ -393,7 +394,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management } // ensure assembler is started - assembler = camelContext.getManagementMBeanAssembler(); + assembler = camelContext.adapt(ExtendedCamelContext.class).getManagementMBeanAssembler(); if (assembler == null) { assembler = new DefaultManagementMBeanAssembler(camelContext); } diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java index ac60b5b..c7186ad 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java @@ -17,6 +17,7 @@ package org.apache.camel.management.mbean; import org.apache.camel.CamelContext; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Processor; import org.apache.camel.Route; import org.apache.camel.ServiceStatus; @@ -45,14 +46,14 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag this.context = context; this.processor = processor; this.definition = definition; - this.id = definition.idOrCreate(context.getNodeIdFactory()); + this.id = definition.idOrCreate(context.adapt(ExtendedCamelContext.class).getNodeIdFactory()); StepDefinition step; if (definition instanceof StepDefinition) { step = (StepDefinition) definition; } else { step = ProcessorDefinitionHelper.findFirstParentOfType(StepDefinition.class, definition, true); } - this.stepId = step != null ? step.idOrCreate(context.getNodeIdFactory()) : null; + this.stepId = step != null ? step.idOrCreate(context.adapt(ExtendedCamelContext.class).getNodeIdFactory()) : null; } @Override