You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/11/05 14:46:06 UTC

[camel] branch master updated: camel-core - In lightweight mode then throw exception if access to model is called.

This is an automated email from the ASF dual-hosted git repository.

davsclaus 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 86df066  camel-core - In lightweight mode then throw exception if access to model is called.
86df066 is described below

commit 86df0663038b000d7b7fd07a00dc3055d60e5559
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Nov 5 15:45:31 2020 +0100

    camel-core - In lightweight mode then throw exception if access to model is called.
---
 .../org/apache/camel/impl/DefaultCamelContext.java | 347 +++++++++++----------
 1 file changed, 177 insertions(+), 170 deletions(-)

diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index d244b12..589df12 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -17,7 +17,6 @@
 package org.apache.camel.impl;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -118,377 +117,387 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
 
     @Override
     public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
-        if (model != null) {
-            model.addModelLifecycleStrategy(modelLifecycleStrategy);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addModelLifecycleStrategy(modelLifecycleStrategy);
     }
 
     @Override
     public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
-        if (model != null) {
-            return model.getModelLifecycleStrategies();
-        } else {
-            return Collections.EMPTY_LIST;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getModelLifecycleStrategies();
     }
 
     @Override
     public List<RouteDefinition> getRouteDefinitions() {
-        if (model != null) {
-            return model.getRouteDefinitions();
-        } else {
-            return Collections.EMPTY_LIST;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getRouteDefinitions();
     }
 
     @Override
     public RouteDefinition getRouteDefinition(String id) {
-        if (model != null) {
-            return model.getRouteDefinition(id);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getRouteDefinition(id);
     }
 
     @Override
     public void addRouteDefinitions(Collection<RouteDefinition> routeDefinitions) throws Exception {
-        if (model != null) {
-            model.addRouteDefinitions(routeDefinitions);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addRouteDefinitions(routeDefinitions);
     }
 
     @Override
     public void addRouteDefinition(RouteDefinition routeDefinition) throws Exception {
-        if (model != null) {
-            model.addRouteDefinition(routeDefinition);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addRouteDefinition(routeDefinition);
     }
 
     @Override
     public void removeRouteDefinitions(Collection<RouteDefinition> routeDefinitions) throws Exception {
-        if (model != null) {
-            model.removeRouteDefinitions(routeDefinitions);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.removeRouteDefinitions(routeDefinitions);
     }
 
     @Override
     public void removeRouteDefinition(RouteDefinition routeDefinition) throws Exception {
-        if (model != null) {
-            model.removeRouteDefinition(routeDefinition);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.removeRouteDefinition(routeDefinition);
     }
 
     @Override
     public List<RouteTemplateDefinition> getRouteTemplateDefinitions() {
-        if (model != null) {
-            return model.getRouteTemplateDefinitions();
-        } else {
-            return Collections.EMPTY_LIST;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getRouteTemplateDefinitions();
     }
 
     @Override
     public RouteTemplateDefinition getRouteTemplateDefinition(String id) {
-        if (model != null) {
-            return model.getRouteTemplateDefinition(id);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getRouteTemplateDefinition(id);
     }
 
     @Override
     public void addRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
-        if (model != null) {
-            model.addRouteTemplateDefinitions(routeTemplateDefinitions);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addRouteTemplateDefinitions(routeTemplateDefinitions);
     }
 
     @Override
     public void addRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
-        if (model != null) {
-            model.addRouteTemplateDefinition(routeTemplateDefinition);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addRouteTemplateDefinition(routeTemplateDefinition);
     }
 
     @Override
     public void removeRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
-        if (model != null) {
-            model.removeRouteTemplateDefinitions(routeTemplateDefinitions);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.removeRouteTemplateDefinitions(routeTemplateDefinitions);
     }
 
     @Override
     public void removeRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
-        if (model != null) {
-            model.removeRouteTemplateDefinition(routeTemplateDefinition);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.removeRouteTemplateDefinition(routeTemplateDefinition);
     }
 
     @Override
     public void addRouteTemplateDefinitionConverter(String templateIdPattern, RouteTemplateDefinition.Converter converter) {
-        if (model != null) {
-            model.addRouteTemplateDefinitionConverter(templateIdPattern, converter);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addRouteTemplateDefinitionConverter(templateIdPattern, converter);
     }
 
     @Override
     public String addRouteFromTemplate(String routeId, String routeTemplateId, Map<String, Object> parameters)
             throws Exception {
-        if (model != null) {
-            return model.addRouteFromTemplate(routeId, routeTemplateId, parameters);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.addRouteFromTemplate(routeId, routeTemplateId, parameters);
     }
 
     @Override
     public List<RestDefinition> getRestDefinitions() {
-        if (model != null) {
-            return model.getRestDefinitions();
-        } else {
-            return Collections.EMPTY_LIST;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getRestDefinitions();
     }
 
     @Override
     public void addRestDefinitions(Collection<RestDefinition> restDefinitions, boolean addToRoutes) throws Exception {
-        if (model != null) {
-            model.addRestDefinitions(restDefinitions, addToRoutes);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addRestDefinitions(restDefinitions, addToRoutes);
     }
 
     @Override
     public void setDataFormats(Map<String, DataFormatDefinition> dataFormats) {
-        if (model != null) {
-            model.setDataFormats(dataFormats);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setDataFormats(dataFormats);
     }
 
     @Override
     public Map<String, DataFormatDefinition> getDataFormats() {
-        if (model != null) {
-            return model.getDataFormats();
-        } else {
-            return Collections.EMPTY_MAP;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getDataFormats();
     }
 
     @Override
     public DataFormatDefinition resolveDataFormatDefinition(String name) {
-        if (model != null) {
-            return model.resolveDataFormatDefinition(name);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.resolveDataFormatDefinition(name);
     }
 
     @Override
     public ProcessorDefinition<?> getProcessorDefinition(String id) {
-        if (model != null) {
-            return model.getProcessorDefinition(id);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getProcessorDefinition(id);
     }
 
     @Override
     public <T extends ProcessorDefinition<T>> T getProcessorDefinition(String id, Class<T> type) {
-        if (model != null) {
-            return model.getProcessorDefinition(id, type);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getProcessorDefinition(id, type);
     }
 
     @Override
     public void setValidators(List<ValidatorDefinition> validators) {
-        if (model != null) {
-            model.setValidators(validators);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setValidators(validators);
     }
 
     @Override
     public HystrixConfigurationDefinition getHystrixConfiguration(String id) {
-        if (model != null) {
-            return model.getHystrixConfiguration(id);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getHystrixConfiguration(id);
     }
 
     @Override
     public void setHystrixConfiguration(HystrixConfigurationDefinition configuration) {
-        if (model != null) {
-            model.setHystrixConfiguration(configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setHystrixConfiguration(configuration);
     }
 
     @Override
     public void setHystrixConfigurations(List<HystrixConfigurationDefinition> configurations) {
-        if (model != null) {
-            model.setHystrixConfigurations(configurations);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setHystrixConfigurations(configurations);
     }
 
     @Override
     public void addHystrixConfiguration(String id, HystrixConfigurationDefinition configuration) {
-        if (model != null) {
-            model.addHystrixConfiguration(id, configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addHystrixConfiguration(id, configuration);
     }
 
     @Override
     public Resilience4jConfigurationDefinition getResilience4jConfiguration(String id) {
-        if (model != null) {
-            return model.getResilience4jConfiguration(id);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getResilience4jConfiguration(id);
     }
 
     @Override
     public void setResilience4jConfiguration(Resilience4jConfigurationDefinition configuration) {
-        if (model != null) {
-            model.setResilience4jConfiguration(configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setResilience4jConfiguration(configuration);
     }
 
     @Override
     public void setResilience4jConfigurations(List<Resilience4jConfigurationDefinition> configurations) {
-        if (model != null) {
-            model.setResilience4jConfigurations(configurations);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setResilience4jConfigurations(configurations);
     }
 
     @Override
     public void addResilience4jConfiguration(String id, Resilience4jConfigurationDefinition configuration) {
-        if (model != null) {
-            model.addResilience4jConfiguration(id, configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addResilience4jConfiguration(id, configuration);
     }
 
     @Override
     public FaultToleranceConfigurationDefinition getFaultToleranceConfiguration(String id) {
-        if (model != null) {
-            return model.getFaultToleranceConfiguration(id);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getFaultToleranceConfiguration(id);
     }
 
     @Override
     public void setFaultToleranceConfiguration(FaultToleranceConfigurationDefinition configuration) {
-        if (model != null) {
-            model.setFaultToleranceConfiguration(configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setFaultToleranceConfiguration(configuration);
     }
 
     @Override
     public void setFaultToleranceConfigurations(List<FaultToleranceConfigurationDefinition> configurations) {
-        if (model != null) {
-            model.setFaultToleranceConfigurations(configurations);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setFaultToleranceConfigurations(configurations);
     }
 
     @Override
     public void addFaultToleranceConfiguration(String id, FaultToleranceConfigurationDefinition configuration) {
-        if (model != null) {
-            model.addFaultToleranceConfiguration(id, configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addFaultToleranceConfiguration(id, configuration);
     }
 
     @Override
     public List<ValidatorDefinition> getValidators() {
-        if (model != null) {
-            return model.getValidators();
-        } else {
-            return Collections.EMPTY_LIST;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getValidators();
     }
 
     @Override
     public void setTransformers(List<TransformerDefinition> transformers) {
-        if (model != null) {
-            model.setTransformers(transformers);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setTransformers(transformers);
     }
 
     @Override
     public List<TransformerDefinition> getTransformers() {
-        if (model != null) {
-            return model.getTransformers();
-        } else {
-            return Collections.EMPTY_LIST;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getTransformers();
     }
 
     @Override
     public ServiceCallConfigurationDefinition getServiceCallConfiguration(String serviceName) {
-        if (model != null) {
-            return model.getServiceCallConfiguration(serviceName);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getServiceCallConfiguration(serviceName);
     }
 
     @Override
     public void setServiceCallConfiguration(ServiceCallConfigurationDefinition configuration) {
-        if (model != null) {
-            model.setServiceCallConfiguration(configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setServiceCallConfiguration(configuration);
     }
 
     @Override
     public void setServiceCallConfigurations(List<ServiceCallConfigurationDefinition> configurations) {
-        if (model != null) {
-            model.setServiceCallConfigurations(configurations);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setServiceCallConfigurations(configurations);
     }
 
     @Override
     public void addServiceCallConfiguration(String serviceName, ServiceCallConfigurationDefinition configuration) {
-        if (model != null) {
-            model.addServiceCallConfiguration(serviceName, configuration);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.addServiceCallConfiguration(serviceName, configuration);
     }
 
     @Override
     public void setRouteFilterPattern(String include, String exclude) {
-        if (model != null) {
-            model.setRouteFilterPattern(include, exclude);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setRouteFilterPattern(include, exclude);
     }
 
     @Override
     public void setRouteFilter(Function<RouteDefinition, Boolean> filter) {
-        if (model != null) {
-            model.setRouteFilter(filter);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setRouteFilter(filter);
     }
 
     @Override
     public Function<RouteDefinition, Boolean> getRouteFilter() {
-        if (model != null) {
-            return model.getRouteFilter();
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getRouteFilter();
     }
 
     @Override
     public ModelReifierFactory getModelReifierFactory() {
-        if (model != null) {
-            return model.getModelReifierFactory();
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getModelReifierFactory();
     }
 
     @Override
     public void setModelReifierFactory(ModelReifierFactory modelReifierFactory) {
-        if (model != null) {
-            model.setModelReifierFactory(modelReifierFactory);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.setModelReifierFactory(modelReifierFactory);
     }
 
     @Override
@@ -526,14 +535,12 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
     @Override
     protected boolean isStreamCachingInUse() throws Exception {
         boolean streamCachingInUse = super.isStreamCachingInUse();
-        if (model != null) {
-            if (!streamCachingInUse) {
-                for (RouteDefinition route : model.getRouteDefinitions()) {
-                    Boolean routeCache = CamelContextHelper.parseBoolean(this, route.getStreamCache());
-                    if (routeCache != null && routeCache) {
-                        streamCachingInUse = true;
-                        break;
-                    }
+        if (!streamCachingInUse) {
+            for (RouteDefinition route : model.getRouteDefinitions()) {
+                Boolean routeCache = CamelContextHelper.parseBoolean(this, route.getStreamCache());
+                if (routeCache != null && routeCache) {
+                    streamCachingInUse = true;
+                    break;
                 }
             }
         }
@@ -542,17 +549,18 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
 
     @Override
     public void startRouteDefinitions() throws Exception {
-        if (model != null) {
-            List<RouteDefinition> routeDefinitions = model.getRouteDefinitions();
-            if (routeDefinitions != null) {
-                startRouteDefinitions(routeDefinitions);
-            }
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
+        }
+        List<RouteDefinition> routeDefinitions = model.getRouteDefinitions();
+        if (routeDefinitions != null) {
+            startRouteDefinitions(routeDefinitions);
         }
     }
 
     public void startRouteDefinitions(List<RouteDefinition> routeDefinitions) throws Exception {
-        if (model == null) {
-            return;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
 
         // indicate we are staring the route using this thread so
@@ -610,29 +618,26 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
 
     @Override
     public Processor createErrorHandler(Route route, Processor processor) throws Exception {
-        if (model != null) {
-            return model.getModelReifierFactory().createErrorHandler(route, processor);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getModelReifierFactory().createErrorHandler(route, processor);
     }
 
     @Override
     public Expression createExpression(ExpressionDefinition definition) {
-        if (model != null) {
-            return model.getModelReifierFactory().createExpression(this, definition);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getModelReifierFactory().createExpression(this, definition);
     }
 
     @Override
     public Predicate createPredicate(ExpressionDefinition definition) {
-        if (model != null) {
-            return model.getModelReifierFactory().createPredicate(this, definition);
-        } else {
-            return null;
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        return model.getModelReifierFactory().createPredicate(this, definition);
     }
 
     @Override
@@ -642,11 +647,12 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
 
     @Override
     public void registerValidator(ValidatorDefinition def) {
-        if (model != null) {
-            model.getValidators().add(def);
-            Validator validator = model.getModelReifierFactory().createValidator(this, def);
-            getValidatorRegistry().put(createValidatorKey(def), validator);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.getValidators().add(def);
+        Validator validator = model.getModelReifierFactory().createValidator(this, def);
+        getValidatorRegistry().put(createValidatorKey(def), validator);
     }
 
     private static ValueHolder<String> createValidatorKey(ValidatorDefinition def) {
@@ -655,11 +661,12 @@ public class DefaultCamelContext extends SimpleCamelContext implements ModelCame
 
     @Override
     public void registerTransformer(TransformerDefinition def) {
-        if (model != null) {
-            model.getTransformers().add(def);
-            Transformer transformer = model.getModelReifierFactory().createTransformer(this, def);
-            getTransformerRegistry().put(createTransformerKey(def), transformer);
+        if (model == null && isLightweight()) {
+            throw new IllegalStateException("Access to model not supported in lightweight mode");
         }
+        model.getTransformers().add(def);
+        Transformer transformer = model.getModelReifierFactory().createTransformer(this, def);
+        getTransformerRegistry().put(createTransformerKey(def), transformer);
     }
 
     private static ValueHolder<String> createTransformerKey(TransformerDefinition def) {