This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 396cab2 [CAMEL-13511] Introduce a Model interface to hold definitions related methods 396cab2 is described below commit 396cab268fe2c6afec606a95a894350e994f5433 Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Mon May 13 16:36:26 2019 +0200 [CAMEL-13511] Introduce a Model interface to hold definitions related methods --- .../apache/camel/swagger/RestSwaggerSupport.java | 18 +++++++-------- .../test/blueprint/CamelBlueprintTestSupport.java | 2 +- .../org/apache/camel/builder/BuilderSupport.java | 13 +++-------- .../camel/builder/ErrorHandlerBuilderRef.java | 6 ++--- .../org/apache/camel/builder/RouteBuilder.java | 26 +++++++++++----------- .../main/java/org/apache/camel/model/Model.java | 2 ++ .../camel/model/RestContextRefDefinition.java | 3 ++- .../model/RestContextRefDefinitionHelper.java | 7 +++--- .../camel/model/RouteContextRefDefinition.java | 3 ++- .../model/RouteContextRefDefinitionHelper.java | 5 +++-- .../org/apache/camel/model/RoutesDefinition.java | 7 +++--- .../apache/camel/model/rest/RestsDefinition.java | 8 +++---- .../org/apache/camel/reifier/RouteReifier.java | 22 ++++++------------ .../DefaultManagementObjectStrategy.java | 2 +- .../management/mbean/ManagedCamelContext.java | 12 +++++----- .../camel/management/mbean/ManagedRoute.java | 10 ++++----- .../management/mbean/ManagedRouteController.java | 5 ++--- .../management/mbean/ManagedSuspendableRoute.java | 4 ++-- 18 files changed, 73 insertions(+), 82 deletions(-) diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java index 4644544..285ce02 100644 --- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java +++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java @@ -47,7 +47,7 @@ import io.swagger.util.Json; import io.swagger.util.Yaml; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; -import org.apache.camel.model.ModelCamelContext; +import org.apache.camel.model.Model; import org.apache.camel.model.ModelHelper; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestsDefinition; @@ -145,8 +145,8 @@ public class RestSwaggerSupport { } public List<RestDefinition> getRestDefinitions(CamelContext camelContext) throws Exception { - ModelCamelContext context = camelContext.adapt(ModelCamelContext.class); - List<RestDefinition> rests = context.getRestDefinitions(); + Model model = camelContext.getExtension(Model.class); + List<RestDefinition> rests = model.getRestDefinitions(); if (rests.isEmpty()) { return null; } @@ -154,7 +154,7 @@ public class RestSwaggerSupport { // use a routes definition to dump the rests RestsDefinition def = new RestsDefinition(); def.setRests(rests); - String xml = ModelHelper.dumpModelAsXml(context, def); + String xml = ModelHelper.dumpModelAsXml(camelContext, def); // if resolving placeholders we parse the xml, and resolve the property placeholders during parsing final AtomicBoolean changed = new AtomicBoolean(); @@ -163,7 +163,7 @@ public class RestSwaggerSupport { @Override public String transform(String text) { try { - String after = context.resolvePropertyPlaceholders(text); + String after = camelContext.resolvePropertyPlaceholders(text); if (!changed.get()) { changed.set(!text.equals(after)); } @@ -176,10 +176,10 @@ public class RestSwaggerSupport { }); // okay there were some property placeholder replaced so re-create the model if (changed.get()) { - xml = context.getTypeConverter().mandatoryConvertTo(String.class, dom); - RestsDefinition model = ModelHelper.createModelFromXml(context, xml, RestsDefinition.class); - if (model != null) { - return model.getRests(); + xml = camelContext.getTypeConverter().mandatoryConvertTo(String.class, dom); + def = ModelHelper.createModelFromXml(camelContext, xml, RestsDefinition.class); + if (def != null) { + return def.getRests(); } } diff --git a/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java b/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java index 13957dd..ee37f9e 100644 --- a/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java +++ b/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintTestSupport.java @@ -502,7 +502,7 @@ public abstract class CamelBlueprintTestSupport extends CamelTestSupport { throw new IllegalArgumentException("getCamelContextCreationTimeout cannot return a negative value."); } // must override context so we use the correct one in testing - context = (ModelCamelContext) answer; + context = answer.adapt(ModelCamelContext.class); return answer; } diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java b/core/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java index 2bbc804..8e3b79f 100644 --- a/core/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java +++ b/core/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java @@ -19,14 +19,12 @@ package org.apache.camel.builder; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.Expression; import org.apache.camel.NoSuchEndpointException; import org.apache.camel.RuntimeCamelException; -import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.language.ExchangePropertyExpression; import org.apache.camel.model.language.HeaderExpression; import org.apache.camel.model.language.JsonPathExpression; @@ -39,14 +37,14 @@ import org.apache.camel.util.ObjectHelper; * href="http://camel.apache.org/dsl.html">Java DSL</a> */ public abstract class BuilderSupport { - private ModelCamelContext context; + private CamelContext context; private ErrorHandlerBuilder errorHandlerBuilder; protected BuilderSupport() { } protected BuilderSupport(CamelContext context) { - this.context = context != null ? context.adapt(ModelCamelContext.class) : null; + this.context = context; } // Builder methods @@ -391,17 +389,12 @@ public abstract class BuilderSupport { // Properties // ------------------------------------------------------------------------- - public ModelCamelContext getContext() { + public CamelContext getContext() { return context; } public void setContext(CamelContext context) { ObjectHelper.notNull(context, "CamelContext", this); - this.context = context.adapt(ModelCamelContext.class); - } - - public void setContext(ModelCamelContext context) { - ObjectHelper.notNull(context, "CamelContext", this); this.context = context; } 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 296ed3b..d7aa51f 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 @@ -20,9 +20,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.camel.CamelContext; import org.apache.camel.ErrorHandlerFactory; import org.apache.camel.Processor; -import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.OnExceptionDefinition; import org.apache.camel.model.RouteDefinition; import org.apache.camel.spi.RouteContext; @@ -133,7 +133,7 @@ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport { if (!isErrorHandlerBuilderConfigured(otherRef)) { // the other has also no explicit error handler configured then fallback to the handler // configured on the parent camel context - answer = lookupErrorHandlerBuilder((ModelCamelContext)routeContext.getCamelContext()); + answer = lookupErrorHandlerBuilder(routeContext.getCamelContext()); } if (answer == null) { // the other has also no explicit error handler configured then fallback to the default error handler @@ -156,7 +156,7 @@ public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport { return answer; } - protected static ErrorHandlerFactory lookupErrorHandlerBuilder(ModelCamelContext camelContext) { + protected static ErrorHandlerFactory lookupErrorHandlerBuilder(CamelContext camelContext) { ErrorHandlerFactory answer = camelContext.getErrorHandlerFactory(); if (answer instanceof ErrorHandlerBuilderRef) { ErrorHandlerBuilderRef other = (ErrorHandlerBuilderRef) answer; 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 a9ffd6a..668e2c2 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 @@ -30,7 +30,7 @@ import org.apache.camel.model.FromDefinition; import org.apache.camel.model.InterceptDefinition; import org.apache.camel.model.InterceptFromDefinition; import org.apache.camel.model.InterceptSendToEndpointDefinition; -import org.apache.camel.model.ModelCamelContext; +import org.apache.camel.model.Model; import org.apache.camel.model.OnCompletionDefinition; import org.apache.camel.model.OnExceptionDefinition; import org.apache.camel.model.RouteDefinition; @@ -378,8 +378,8 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild public void addRoutesToCamelContext(CamelContext context) throws Exception { // must configure routes before rests - configureRoutes((ModelCamelContext) context); - configureRests((ModelCamelContext) context); + configureRoutes(context); + configureRests(context); // but populate rests before routes, as we want to turn rests into routes populateRests(); @@ -395,7 +395,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild * @return the routes configured * @throws Exception can be thrown during configuration */ - public RoutesDefinition configureRoutes(ModelCamelContext context) throws Exception { + public RoutesDefinition configureRoutes(CamelContext context) throws Exception { setContext(context); checkInitialized(); routeCollection.setCamelContext(context); @@ -409,7 +409,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild * @return the rests configured * @throws Exception can be thrown during configuration */ - public RestsDefinition configureRests(ModelCamelContext context) throws Exception { + public RestsDefinition configureRests(CamelContext context) throws Exception { setContext(context); restCollection.setCamelContext(context); return restCollection; @@ -426,7 +426,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild protected void checkInitialized() throws Exception { if (initialized.compareAndSet(false, true)) { // Set the CamelContext ErrorHandler here - ModelCamelContext camelContext = getContext(); + CamelContext camelContext = getContext(); if (camelContext.getErrorHandlerFactory() instanceof ErrorHandlerBuilder) { setErrorHandlerBuilder((ErrorHandlerBuilder) camelContext.getErrorHandlerFactory()); } @@ -440,16 +440,16 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild } protected void populateRoutes() throws Exception { - ModelCamelContext camelContext = getContext(); + CamelContext camelContext = getContext(); if (camelContext == null) { throw new IllegalArgumentException("CamelContext has not been injected!"); } getRouteCollection().setCamelContext(camelContext); - camelContext.addRouteDefinitions(getRouteCollection().getRoutes()); + camelContext.getExtension(Model.class).addRouteDefinitions(getRouteCollection().getRoutes()); } protected void populateRests() throws Exception { - ModelCamelContext camelContext = getContext(); + CamelContext camelContext = getContext(); if (camelContext == null) { throw new IllegalArgumentException("CamelContext has not been injected!"); } @@ -467,7 +467,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild } } // cannot add rests as routes yet as we need to initialize this specially - camelContext.addRestDefinitions(getRestCollection().getRests(), false); + camelContext.getExtension(Model.class).addRestDefinitions(getRestCollection().getRests(), false); // convert rests api-doc into routes so they are routes for runtime for (RestConfiguration config : camelContext.getRestConfigurations()) { @@ -476,7 +476,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild // to the CamelContext, as we only want to setup rest-api once // so we check all existing routes if they have rest-api route already added boolean hasRestApi = false; - for (RouteDefinition route : camelContext.getRouteDefinitions()) { + for (RouteDefinition route : camelContext.getExtension(Model.class).getRouteDefinitions()) { FromDefinition from = route.getInput(); if (from.getUri() != null && from.getUri().startsWith("rest-api:")) { hasRestApi = true; @@ -496,7 +496,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild } protected void populateTransformers() { - ModelCamelContext camelContext = getContext(); + CamelContext camelContext = getContext(); if (camelContext == null) { throw new IllegalArgumentException("CamelContext has not been injected!"); } @@ -506,7 +506,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild } protected void populateValidators() { - ModelCamelContext camelContext = getContext(); + CamelContext camelContext = getContext(); if (camelContext == null) { throw new IllegalArgumentException("CamelContext has not been injected!"); } diff --git a/core/camel-core/src/main/java/org/apache/camel/model/Model.java b/core/camel-core/src/main/java/org/apache/camel/model/Model.java index f3b77be..47d6638 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/Model.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/Model.java @@ -258,6 +258,8 @@ public interface Model { /** * Start all routes from this model. + * + * @throws Exception */ void startRouteDefinitions() throws Exception; diff --git a/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinition.java index 6f5787e..e8a8843 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinition.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/RestContextRefDefinition.java @@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.camel.CamelContext; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.spi.Metadata; @@ -55,7 +56,7 @@ public class RestContextRefDefinition { this.ref = ref; } - public List<RestDefinition> lookupRests(ModelCamelContext camelContext) { + public List<RestDefinition> lookupRests(CamelContext camelContext) { return RestContextRefDefinitionHelper.lookupRests(camelContext, ref); } 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 3eae3af..cb47f78 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 @@ -29,6 +29,7 @@ import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; +import org.apache.camel.CamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.model.language.NamespaceAwareExpression; import org.apache.camel.model.rest.RestDefinition; @@ -53,14 +54,14 @@ public final class RestContextRefDefinitionHelper { * as a {@link org.apache.camel.model.RestContextRefDefinition} can be re-used with multiple {@link org.apache.camel.model.ModelCamelContext} and each * context should have their own instances of the routes. This is to ensure no side-effects and sharing * of instances between the contexts. For example such as property placeholders may be context specific - * so the routes should not use placeholders from another {@link org.apache.camel.model.ModelCamelContext}. + * so the routes should not use placeholders from another {@link org.apache.camel.CamelContext}. * * @param camelContext the CamelContext * @param ref the id of the {@link org.apache.camel.model.RestContextRefDefinition} to lookup and get the routes. * @return the rests. */ @SuppressWarnings("unchecked") - public static synchronized List<RestDefinition> lookupRests(ModelCamelContext camelContext, String ref) { + public static synchronized List<RestDefinition> lookupRests(CamelContext camelContext, String ref) { ObjectHelper.notNull(camelContext, "camelContext"); ObjectHelper.notNull(ref, "ref"); @@ -88,7 +89,7 @@ public final class RestContextRefDefinitionHelper { return clones; } - private static synchronized JAXBContext getOrCreateJAXBContext(final ModelCamelContext camelContext) throws JAXBException { + 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(); diff --git a/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinition.java index 28b99f4..f003a1c 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinition.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/RouteContextRefDefinition.java @@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.camel.CamelContext; import org.apache.camel.spi.Metadata; /** @@ -54,7 +55,7 @@ public class RouteContextRefDefinition { this.ref = ref; } - public List<RouteDefinition> lookupRoutes(ModelCamelContext camelContext) { + public List<RouteDefinition> lookupRoutes(CamelContext camelContext) { return RouteContextRefDefinitionHelper.lookupRoutes(camelContext, ref); } 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 8dc94ba..967390e 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 @@ -29,6 +29,7 @@ import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; +import org.apache.camel.CamelContext; import org.apache.camel.RuntimeCamelException; import org.apache.camel.model.language.NamespaceAwareExpression; import org.apache.camel.support.CamelContextHelper; @@ -58,7 +59,7 @@ public final class RouteContextRefDefinitionHelper { * @return the routes. */ @SuppressWarnings("unchecked") - public static synchronized List<RouteDefinition> lookupRoutes(ModelCamelContext camelContext, String ref) { + public static synchronized List<RouteDefinition> lookupRoutes(CamelContext camelContext, String ref) { ObjectHelper.notNull(camelContext, "camelContext"); ObjectHelper.notNull(ref, "ref"); @@ -86,7 +87,7 @@ public final class RouteContextRefDefinitionHelper { return clones; } - private static synchronized JAXBContext getOrCreateJAXBContext(final ModelCamelContext camelContext) throws JAXBException { + private static synchronized JAXBContext getOrCreateJAXBContext(final CamelContext camelContext) throws JAXBException { if (jaxbContext == null) { jaxbContext = camelContext.getModelJAXBContextFactory().newJAXBContext(); } diff --git a/core/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java index 80f5e0b..b857e54 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/RoutesDefinition.java @@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; +import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; import org.apache.camel.spi.AsEndpointUri; @@ -50,7 +51,7 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit @XmlTransient private List<OnCompletionDefinition> onCompletions = new ArrayList<>(); @XmlTransient - private ModelCamelContext camelContext; + private CamelContext camelContext; @XmlTransient private ErrorHandlerFactory errorHandlerFactory; @@ -121,11 +122,11 @@ public class RoutesDefinition extends OptionalIdentifiedDefinition<RoutesDefinit this.onCompletions = onCompletions; } - public ModelCamelContext getCamelContext() { + public CamelContext getCamelContext() { return camelContext; } - public void setCamelContext(ModelCamelContext camelContext) { + public void setCamelContext(CamelContext camelContext) { this.camelContext = camelContext; } diff --git a/core/camel-core/src/main/java/org/apache/camel/model/rest/RestsDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/rest/RestsDefinition.java index 9130c18..7453f18 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/rest/RestsDefinition.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/rest/RestsDefinition.java @@ -25,7 +25,7 @@ import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; -import org.apache.camel.model.ModelCamelContext; +import org.apache.camel.CamelContext; import org.apache.camel.model.OptionalIdentifiedDefinition; import org.apache.camel.spi.Metadata; @@ -39,7 +39,7 @@ public class RestsDefinition extends OptionalIdentifiedDefinition<RestsDefinitio @XmlElementRef private List<RestDefinition> rests = new ArrayList<>(); @XmlTransient - private ModelCamelContext camelContext; + private CamelContext camelContext; public RestsDefinition() { } @@ -72,11 +72,11 @@ public class RestsDefinition extends OptionalIdentifiedDefinition<RestsDefinitio this.rests = rests; } - public ModelCamelContext getCamelContext() { + public CamelContext getCamelContext() { return camelContext; } - public void setCamelContext(ModelCamelContext camelContext) { + public void setCamelContext(CamelContext camelContext) { this.camelContext = camelContext; } 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 52f689b..3fbffa9 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 @@ -33,7 +33,7 @@ import org.apache.camel.builder.AdviceWithTask; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultRouteContext; import org.apache.camel.model.FromDefinition; -import org.apache.camel.model.ModelCamelContext; +import org.apache.camel.model.Model; import org.apache.camel.model.ModelHelper; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.ProcessorDefinitionHelper; @@ -53,10 +53,6 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { super((RouteDefinition) definition); } - public static RouteDefinition adviceWith(RouteDefinition definition, CamelContext camelContext, RouteBuilder builder) throws Exception { - return adviceWith(definition, camelContext.adapt(ModelCamelContext.class), builder); - } - /** * Advices this route with the route builder. * <p/> @@ -82,7 +78,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { * @throws Exception can be thrown from the route builder * @see AdviceWithRouteBuilder */ - public static RouteDefinition adviceWith(RouteDefinition definition, ModelCamelContext camelContext, RouteBuilder builder) throws Exception { + public static RouteDefinition adviceWith(RouteDefinition definition, CamelContext camelContext, RouteBuilder builder) throws Exception { return new RouteReifier(definition).adviceWith(camelContext, builder); } @@ -91,7 +87,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { throw new UnsupportedOperationException("Not implemented for RouteDefinition"); } - public Route addRoutes(ModelCamelContext camelContext) throws Exception { + public Route addRoutes(CamelContext camelContext) throws Exception { @SuppressWarnings("deprecation") ErrorHandlerFactory handler = camelContext.getErrorHandlerFactory(); if (handler != null) { @@ -114,10 +110,6 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { return CamelContextHelper.getMandatoryEndpoint(camelContext, uri); } - public RouteDefinition adviceWith(CamelContext camelContext, RouteBuilder builder) throws Exception { - return adviceWith((ModelCamelContext)camelContext, builder); - } - /** * Advices this route with the route builder. * <p/> @@ -143,7 +135,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { * @see AdviceWithRouteBuilder */ @SuppressWarnings("deprecation") - public RouteDefinition adviceWith(ModelCamelContext camelContext, RouteBuilder builder) throws Exception { + public RouteDefinition adviceWith(CamelContext camelContext, RouteBuilder builder) throws Exception { ObjectHelper.notNull(camelContext, "CamelContext"); ObjectHelper.notNull(builder, "RouteBuilder"); @@ -176,7 +168,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { String beforeAsXml = ModelHelper.dumpModelAsXml(camelContext, definition); // stop and remove this existing route - camelContext.removeRouteDefinition(definition); + camelContext.getExtension(Model.class).removeRouteDefinition(definition); // any advice with tasks we should execute first? if (builder instanceof AdviceWithRouteBuilder) { @@ -190,7 +182,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { RouteDefinition merged = routes.route(definition); // add the new merged route - camelContext.getRouteDefinitions().add(0, merged); + camelContext.getExtension(Model.class).getRouteDefinitions().add(0, merged); // log the merged route at info level to make it easier to end users to spot any mistakes they may have made log.info("AdviceWith route after: {}", merged); @@ -202,7 +194,7 @@ public class RouteReifier extends ProcessorReifier<RouteDefinition> { if (camelContext instanceof StatefulService) { StatefulService service = (StatefulService) camelContext; if (service.isStarted()) { - camelContext.addRouteDefinition(merged); + camelContext.getExtension(Model.class).addRouteDefinition(merged); } } return merged; diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java index 5fc0630..75ae709 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java @@ -172,7 +172,7 @@ import org.apache.camel.support.processor.validation.PredicateValidatingProcesso public class DefaultManagementObjectStrategy implements ManagementObjectStrategy { public Object getManagedObjectForCamelContext(CamelContext context) { - ManagedCamelContext mc = new ManagedCamelContext((ModelCamelContext)context); + ManagedCamelContext mc = new ManagedCamelContext(context); mc.init(context.getManagementStrategy()); return mc; } diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java index f3144b3..37e1577 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java @@ -46,7 +46,7 @@ import org.apache.camel.api.management.mbean.ManagedCamelContextMBean; import org.apache.camel.api.management.mbean.ManagedProcessorMBean; import org.apache.camel.api.management.mbean.ManagedRouteMBean; import org.apache.camel.api.management.mbean.ManagedStepMBean; -import org.apache.camel.model.ModelCamelContext; +import org.apache.camel.model.Model; import org.apache.camel.model.ModelHelper; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.RoutesDefinition; @@ -62,11 +62,11 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti private static final Logger LOG = LoggerFactory.getLogger(ManagedCamelContext.class); - private final ModelCamelContext context; + private final CamelContext context; private final LoadTriplet load = new LoadTriplet(); private final String jmxDomain; - public ManagedCamelContext(ModelCamelContext context) { + public ManagedCamelContext(CamelContext context) { this.context = context; this.jmxDomain = context.getManagementStrategy().getManagementAgent().getMBeanObjectDomainName(); } @@ -362,7 +362,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti @Override public String dumpRestsAsXml(boolean resolvePlaceholders) throws Exception { - List<RestDefinition> rests = context.getRestDefinitions(); + List<RestDefinition> rests = context.getExtension(Model.class).getRestDefinitions(); if (rests.isEmpty()) { return null; } @@ -410,7 +410,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti @Override public String dumpRoutesAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception { - List<RouteDefinition> routes = context.getRouteDefinitions(); + List<RouteDefinition> routes = context.getExtension(Model.class).getRouteDefinitions(); if (routes.isEmpty()) { return null; } @@ -436,7 +436,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti InputStream is = context.getTypeConverter().mandatoryConvertTo(InputStream.class, xml); try { // add will remove existing route first - context.addRouteDefinitions(is); + context.getExtension(Model.class).addRouteDefinitions(is); } catch (Exception e) { // log the error as warn as the management api may be invoked remotely over JMX which does not propagate such exception String msg = "Error updating routes from xml: " + xml + " due: " + e.getMessage(); diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java index 387d436..1e6732e 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java @@ -49,7 +49,7 @@ import org.apache.camel.api.management.mbean.ManagedProcessorMBean; import org.apache.camel.api.management.mbean.ManagedRouteMBean; import org.apache.camel.api.management.mbean.ManagedStepMBean; import org.apache.camel.api.management.mbean.RouteError; -import org.apache.camel.model.ModelCamelContext; +import org.apache.camel.model.Model; import org.apache.camel.model.ModelHelper; import org.apache.camel.model.RouteDefinition; import org.apache.camel.spi.InflightRepository; @@ -68,11 +68,11 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList protected final Route route; protected final String description; - protected final ModelCamelContext context; + protected final CamelContext context; private final LoadTriplet load = new LoadTriplet(); private final String jmxDomain; - public ManagedRoute(ModelCamelContext context, Route route) { + public ManagedRoute(CamelContext context, Route route) { this.route = route; this.context = context; this.description = route.getDescription(); @@ -328,7 +328,7 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList @Override public String dumpRouteAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) throws Exception { String id = route.getId(); - RouteDefinition def = context.getRouteDefinition(id); + RouteDefinition def = context.getExtension(Model.class).getRouteDefinition(id); if (def != null) { return ModelHelper.dumpModelAsXml(context, def, resolvePlaceholders, resolveDelegateEndpoints); } @@ -357,7 +357,7 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList try { // add will remove existing route first - context.addRouteDefinition(def); + context.getExtension(Model.class).addRouteDefinition(def); } catch (Exception e) { // log the error as warn as the management api may be invoked remotely over JMX which does not propagate such exception String msg = "Error updating route: " + def.getId() + " from xml: " + xml + " due: " + e.getMessage(); diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java index c140920..c81d3b5 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java @@ -23,14 +23,13 @@ import java.util.stream.Collectors; import org.apache.camel.CamelContext; import org.apache.camel.Route; import org.apache.camel.api.management.mbean.ManagedRouteControllerMBean; -import org.apache.camel.model.ModelCamelContext; import org.apache.camel.spi.ManagementStrategy; import org.apache.camel.spi.RouteController; public class ManagedRouteController implements ManagedRouteControllerMBean { - private final ModelCamelContext context; + private final CamelContext context; - public ManagedRouteController(ModelCamelContext context) { + public ManagedRouteController(CamelContext context) { this.context = context; } diff --git a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedSuspendableRoute.java b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedSuspendableRoute.java index a2f823d..43bb3af 100644 --- a/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedSuspendableRoute.java +++ b/core/camel-management-impl/src/main/java/org/apache/camel/management/mbean/ManagedSuspendableRoute.java @@ -18,15 +18,15 @@ package org.apache.camel.management.mbean; import java.util.concurrent.TimeUnit; +import org.apache.camel.CamelContext; import org.apache.camel.Route; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.ManagedSuspendableRouteMBean; -import org.apache.camel.model.ModelCamelContext; @ManagedResource(description = "Managed Suspendable Route") public class ManagedSuspendableRoute extends ManagedRoute implements ManagedSuspendableRouteMBean { - public ManagedSuspendableRoute(ModelCamelContext context, Route route) { + public ManagedSuspendableRoute(CamelContext context, Route route) { super(context, route); }