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 2019/06/11 13:05:21 UTC

[camel] 02/04: CAMEL-13627: camel-main - Reuse options for main and camel-spring-boot

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

commit e12578ac4a3b51efcd0c113c6f1bcc2dacd3e6a8
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 11 14:08:34 2019 +0200

    CAMEL-13627: camel-main - Reuse options for main and camel-spring-boot
---
 .../camel/spring/boot/CamelAutoConfiguration.java  |  78 +-------------
 .../camel/main/DefaultConfigurationConfigurer.java | 118 +++++++++++++++++++++
 .../java/org/apache/camel/main/MainSupport.java    |  81 +-------------
 3 files changed, 125 insertions(+), 152 deletions(-)

diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
index 640652d..14fa20d 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
@@ -27,7 +27,6 @@ import java.util.function.Predicate;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
-import org.apache.camel.Exchange;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.FluentProducerTemplate;
 import org.apache.camel.ProducerTemplate;
@@ -39,6 +38,7 @@ import org.apache.camel.component.properties.PropertiesParser;
 import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.health.HealthCheckRepository;
 import org.apache.camel.health.HealthCheckService;
+import org.apache.camel.main.DefaultConfigurationConfigurer;
 import org.apache.camel.model.Model;
 import org.apache.camel.processor.interceptor.BacklogTracer;
 import org.apache.camel.processor.interceptor.HandleFault;
@@ -58,7 +58,6 @@ import org.apache.camel.spi.RouteController;
 import org.apache.camel.spi.RoutePolicyFactory;
 import org.apache.camel.spi.RuntimeEndpointRegistry;
 import org.apache.camel.spi.ShutdownStrategy;
-import org.apache.camel.spi.StreamCachingStrategy;
 import org.apache.camel.spi.ThreadPoolProfile;
 import org.apache.camel.spi.UnitOfWorkFactory;
 import org.apache.camel.spi.UuidGenerator;
@@ -147,85 +146,16 @@ public class CamelAutoConfiguration {
             }
         }
 
-        if (!config.isJmxEnabled()) {
-            camelContext.disableJMX();
-        }
-
-        if (config.getName() != null) {
-            camelContext.adapt(ExtendedCamelContext.class).setName(config.getName());
-        }
-
-        if (config.getShutdownTimeout() > 0) {
-            camelContext.getShutdownStrategy().setTimeout(config.getShutdownTimeout());
-        }
-        camelContext.getShutdownStrategy().setSuppressLoggingOnTimeout(config.isShutdownSuppressLoggingOnTimeout());
-        camelContext.getShutdownStrategy().setShutdownNowOnTimeout(config.isShutdownNowOnTimeout());
-        camelContext.getShutdownStrategy().setShutdownRoutesInReverseOrder(config.isShutdownRoutesInReverseOrder());
-        camelContext.getShutdownStrategy().setLogInflightExchangesOnTimeout(config.isShutdownLogInflightExchangesOnTimeout());
-
-        if (config.getLogDebugMaxChars() != 0) {
-            camelContext.getGlobalOptions().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "" + config.getLogDebugMaxChars());
-        }
-
-        // stream caching
-        camelContext.setStreamCaching(config.isStreamCachingEnabled());
-        camelContext.getStreamCachingStrategy().setAnySpoolRules(config.isStreamCachingAnySpoolRules());
-        camelContext.getStreamCachingStrategy().setBufferSize(config.getStreamCachingBufferSize());
-        camelContext.getStreamCachingStrategy().setRemoveSpoolDirectoryWhenStopping(config.isStreamCachingRemoveSpoolDirectoryWhenStopping());
-        camelContext.getStreamCachingStrategy().setSpoolCipher(config.getStreamCachingSpoolCipher());
-        if (config.getStreamCachingSpoolDirectory() != null) {
-            camelContext.getStreamCachingStrategy().setSpoolDirectory(config.getStreamCachingSpoolDirectory());
-        }
-        if (config.getStreamCachingSpoolThreshold() != 0) {
-            camelContext.getStreamCachingStrategy().setSpoolThreshold(config.getStreamCachingSpoolThreshold());
-        }
-        if (config.getStreamCachingSpoolUsedHeapMemoryLimit() != null) {
-            StreamCachingStrategy.SpoolUsedHeapMemoryLimit limit;
-            if ("Committed".equalsIgnoreCase(config.getStreamCachingSpoolUsedHeapMemoryLimit())) {
-                limit = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Committed;
-            } else if ("Max".equalsIgnoreCase(config.getStreamCachingSpoolUsedHeapMemoryLimit())) {
-                limit = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Max;
-            } else {
-                throw new IllegalArgumentException("Invalid option " + config.getStreamCachingSpoolUsedHeapMemoryLimit() + " must either be Committed or Max");
-            }
-            camelContext.getStreamCachingStrategy().setSpoolUsedHeapMemoryLimit(limit);
-        }
-        if (config.getStreamCachingSpoolUsedHeapMemoryThreshold() != 0) {
-            camelContext.getStreamCachingStrategy().setSpoolUsedHeapMemoryThreshold(config.getStreamCachingSpoolUsedHeapMemoryThreshold());
-        }
-
-        camelContext.setMessageHistory(config.isMessageHistory());
-        camelContext.setLogMask(config.isLogMask());
-        camelContext.setLogExhaustedMessageBody(config.isLogExhaustedMessageBody());
-        camelContext.setHandleFault(config.isHandleFault());
-        camelContext.setAutoStartup(config.isAutoStartup());
-        camelContext.setAllowUseOriginalMessage(config.isAllowUseOriginalMessage());
-        camelContext.setUseBreadcrumb(config.isUseBreadcrumb());
-        camelContext.setUseDataType(config.isUseDataType());
-        camelContext.setUseMDCLogging(config.isUseMdcLogging());
-        camelContext.setLoadTypeConverters(config.isLoadTypeConverters());
-
-        if (camelContext.getManagementStrategy().getManagementAgent() != null) {
-            camelContext.getManagementStrategy().getManagementAgent().setEndpointRuntimeStatisticsEnabled(config.isEndpointRuntimeStatisticsEnabled());
-            camelContext.getManagementStrategy().getManagementAgent().setStatisticsLevel(config.getJmxManagementStatisticsLevel());
-            camelContext.getManagementStrategy().getManagementAgent().setManagementNamePattern(config.getJmxManagementNamePattern());
-            camelContext.getManagementStrategy().getManagementAgent().setCreateConnector(config.isJmxCreateConnector());
-        }
-
         camelContext.adapt(ExtendedCamelContext.class).setPackageScanClassResolver(new FatJarPackageScanClassResolver());
 
-        // tracing
-        camelContext.setTracing(config.isTracing());
-
-        if (config.getThreadNamePattern() != null) {
-            camelContext.getExecutorServiceManager().setThreadNamePattern(config.getThreadNamePattern());
-        }
-
         if (config.getRouteFilterIncludePattern() != null || config.getRouteFilterExcludePattern() != null) {
             LOG.info("Route filtering pattern: include={}, exclude={}", config.getRouteFilterIncludePattern(), config.getRouteFilterExcludePattern());
             camelContext.getExtension(Model.class).setRouteFilterPattern(config.getRouteFilterIncludePattern(), config.getRouteFilterExcludePattern());
         }
 
+        // configure the common/default options
+        DefaultConfigurationConfigurer.configure(camelContext, config);
+
         // additional advanced configuration which is not configured using CamelConfigurationProperties
         afterPropertiesSet(applicationContext, camelContext);
 
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
new file mode 100644
index 0000000..60073f8
--- /dev/null
+++ b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
@@ -0,0 +1,118 @@
+/*
+ * 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.main;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.model.Model;
+import org.apache.camel.spi.StreamCachingStrategy;
+
+/**
+ * To configure the {@link DefaultConfigurationProperties} on {@link org.apache.camel.CamelContext}
+ * used by Camel Main, Camel Spring Boot and other runtimes.
+ */
+public final class DefaultConfigurationConfigurer {
+
+    private DefaultConfigurationConfigurer() {
+    }
+
+    /**
+     * Configures the {@link CamelContext} with the configuration.
+     *
+     * @param camelContext the camel context
+     * @param config       the configuration
+     */
+    public static void configure(CamelContext camelContext, DefaultConfigurationProperties config) {
+        if (!config.isJmxEnabled()) {
+            camelContext.disableJMX();
+        }
+
+        if (config.getName() != null) {
+            camelContext.adapt(ExtendedCamelContext.class).setName(config.getName());
+        }
+
+        if (config.getShutdownTimeout() > 0) {
+            camelContext.getShutdownStrategy().setTimeout(config.getShutdownTimeout());
+        }
+        camelContext.getShutdownStrategy().setSuppressLoggingOnTimeout(config.isShutdownSuppressLoggingOnTimeout());
+        camelContext.getShutdownStrategy().setShutdownNowOnTimeout(config.isShutdownNowOnTimeout());
+        camelContext.getShutdownStrategy().setShutdownRoutesInReverseOrder(config.isShutdownRoutesInReverseOrder());
+        camelContext.getShutdownStrategy().setLogInflightExchangesOnTimeout(config.isShutdownLogInflightExchangesOnTimeout());
+
+        if (config.getLogDebugMaxChars() != 0) {
+            camelContext.getGlobalOptions().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "" + config.getLogDebugMaxChars());
+        }
+
+        // stream caching
+        camelContext.setStreamCaching(config.isStreamCachingEnabled());
+        camelContext.getStreamCachingStrategy().setAnySpoolRules(config.isStreamCachingAnySpoolRules());
+        camelContext.getStreamCachingStrategy().setBufferSize(config.getStreamCachingBufferSize());
+        camelContext.getStreamCachingStrategy().setRemoveSpoolDirectoryWhenStopping(config.isStreamCachingRemoveSpoolDirectoryWhenStopping());
+        camelContext.getStreamCachingStrategy().setSpoolCipher(config.getStreamCachingSpoolCipher());
+        if (config.getStreamCachingSpoolDirectory() != null) {
+            camelContext.getStreamCachingStrategy().setSpoolDirectory(config.getStreamCachingSpoolDirectory());
+        }
+        if (config.getStreamCachingSpoolThreshold() != 0) {
+            camelContext.getStreamCachingStrategy().setSpoolThreshold(config.getStreamCachingSpoolThreshold());
+        }
+        if (config.getStreamCachingSpoolUsedHeapMemoryLimit() != null) {
+            StreamCachingStrategy.SpoolUsedHeapMemoryLimit limit;
+            if ("Committed".equalsIgnoreCase(config.getStreamCachingSpoolUsedHeapMemoryLimit())) {
+                limit = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Committed;
+            } else if ("Max".equalsIgnoreCase(config.getStreamCachingSpoolUsedHeapMemoryLimit())) {
+                limit = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Max;
+            } else {
+                throw new IllegalArgumentException("Invalid option " + config.getStreamCachingSpoolUsedHeapMemoryLimit() + " must either be Committed or Max");
+            }
+            camelContext.getStreamCachingStrategy().setSpoolUsedHeapMemoryLimit(limit);
+        }
+        if (config.getStreamCachingSpoolUsedHeapMemoryThreshold() != 0) {
+            camelContext.getStreamCachingStrategy().setSpoolUsedHeapMemoryThreshold(config.getStreamCachingSpoolUsedHeapMemoryThreshold());
+        }
+
+        camelContext.setMessageHistory(config.isMessageHistory());
+        camelContext.setLogMask(config.isLogMask());
+        camelContext.setLogExhaustedMessageBody(config.isLogExhaustedMessageBody());
+        camelContext.setHandleFault(config.isHandleFault());
+        camelContext.setAutoStartup(config.isAutoStartup());
+        camelContext.setAllowUseOriginalMessage(config.isAllowUseOriginalMessage());
+        camelContext.setUseBreadcrumb(config.isUseBreadcrumb());
+        camelContext.setUseDataType(config.isUseDataType());
+        camelContext.setUseMDCLogging(config.isUseMdcLogging());
+        camelContext.setLoadTypeConverters(config.isLoadTypeConverters());
+
+        if (camelContext.getManagementStrategy().getManagementAgent() != null) {
+            camelContext.getManagementStrategy().getManagementAgent().setEndpointRuntimeStatisticsEnabled(config.isEndpointRuntimeStatisticsEnabled());
+            camelContext.getManagementStrategy().getManagementAgent().setStatisticsLevel(config.getJmxManagementStatisticsLevel());
+            camelContext.getManagementStrategy().getManagementAgent().setManagementNamePattern(config.getJmxManagementNamePattern());
+            camelContext.getManagementStrategy().getManagementAgent().setCreateConnector(config.isJmxCreateConnector());
+        }
+
+        camelContext.setTracing(config.isTracing());
+
+        if (config.getThreadNamePattern() != null) {
+            camelContext.getExecutorServiceManager().setThreadNamePattern(config.getThreadNamePattern());
+        }
+
+        if (config.getRouteFilterIncludePattern() != null || config.getRouteFilterExcludePattern() != null) {
+            camelContext.getExtension(Model.class).setRouteFilterPattern(config.getRouteFilterIncludePattern(), config.getRouteFilterExcludePattern());
+        }
+
+    }
+    
+}
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java b/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
index f3dfaf5..2ab9933 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
@@ -38,7 +38,6 @@ import java.util.function.Predicate;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
-import org.apache.camel.Exchange;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.TypeConverters;
@@ -72,7 +71,6 @@ import org.apache.camel.spi.RouteController;
 import org.apache.camel.spi.RoutePolicyFactory;
 import org.apache.camel.spi.RuntimeEndpointRegistry;
 import org.apache.camel.spi.ShutdownStrategy;
-import org.apache.camel.spi.StreamCachingStrategy;
 import org.apache.camel.spi.ThreadPoolProfile;
 import org.apache.camel.spi.UnitOfWorkFactory;
 import org.apache.camel.spi.UuidGenerator;
@@ -821,83 +819,10 @@ public abstract class MainSupport extends ServiceSupport {
             }
         }
 
-        if (!config.isJmxEnabled()) {
-            camelContext.disableJMX();
-        }
-
-        if (config.getName() != null) {
-            camelContext.adapt(ExtendedCamelContext.class).setName(config.getName());
-        }
-
-        if (config.getShutdownTimeout() > 0) {
-            camelContext.getShutdownStrategy().setTimeout(config.getShutdownTimeout());
-        }
-        camelContext.getShutdownStrategy().setSuppressLoggingOnTimeout(config.isShutdownSuppressLoggingOnTimeout());
-        camelContext.getShutdownStrategy().setShutdownNowOnTimeout(config.isShutdownNowOnTimeout());
-        camelContext.getShutdownStrategy().setShutdownRoutesInReverseOrder(config.isShutdownRoutesInReverseOrder());
-        camelContext.getShutdownStrategy().setLogInflightExchangesOnTimeout(config.isShutdownLogInflightExchangesOnTimeout());
-
-        if (config.getLogDebugMaxChars() != 0) {
-            camelContext.getGlobalOptions().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "" + config.getLogDebugMaxChars());
-        }
-
-        // stream caching
-        camelContext.setStreamCaching(config.isStreamCachingEnabled());
-        camelContext.getStreamCachingStrategy().setAnySpoolRules(config.isStreamCachingAnySpoolRules());
-        camelContext.getStreamCachingStrategy().setBufferSize(config.getStreamCachingBufferSize());
-        camelContext.getStreamCachingStrategy().setRemoveSpoolDirectoryWhenStopping(config.isStreamCachingRemoveSpoolDirectoryWhenStopping());
-        camelContext.getStreamCachingStrategy().setSpoolCipher(config.getStreamCachingSpoolCipher());
-        if (config.getStreamCachingSpoolDirectory() != null) {
-            camelContext.getStreamCachingStrategy().setSpoolDirectory(config.getStreamCachingSpoolDirectory());
-        }
-        if (config.getStreamCachingSpoolThreshold() != 0) {
-            camelContext.getStreamCachingStrategy().setSpoolThreshold(config.getStreamCachingSpoolThreshold());
-        }
-        if (config.getStreamCachingSpoolUsedHeapMemoryLimit() != null) {
-            StreamCachingStrategy.SpoolUsedHeapMemoryLimit limit;
-            if ("Committed".equalsIgnoreCase(config.getStreamCachingSpoolUsedHeapMemoryLimit())) {
-                limit = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Committed;
-            } else if ("Max".equalsIgnoreCase(config.getStreamCachingSpoolUsedHeapMemoryLimit())) {
-                limit = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Max;
-            } else {
-                throw new IllegalArgumentException("Invalid option " + config.getStreamCachingSpoolUsedHeapMemoryLimit() + " must either be Committed or Max");
-            }
-            camelContext.getStreamCachingStrategy().setSpoolUsedHeapMemoryLimit(limit);
-        }
-        if (config.getStreamCachingSpoolUsedHeapMemoryThreshold() != 0) {
-            camelContext.getStreamCachingStrategy().setSpoolUsedHeapMemoryThreshold(config.getStreamCachingSpoolUsedHeapMemoryThreshold());
-        }
-
-        camelContext.setMessageHistory(config.isMessageHistory());
-        camelContext.setLogMask(config.isLogMask());
-        camelContext.setLogExhaustedMessageBody(config.isLogExhaustedMessageBody());
-        camelContext.setHandleFault(config.isHandleFault());
-        camelContext.setAutoStartup(config.isAutoStartup());
-        camelContext.setAllowUseOriginalMessage(config.isAllowUseOriginalMessage());
-        camelContext.setUseBreadcrumb(config.isUseBreadcrumb());
-        camelContext.setUseDataType(config.isUseDataType());
-        camelContext.setUseMDCLogging(config.isUseMdcLogging());
-        camelContext.setLoadTypeConverters(config.isLoadTypeConverters());
-
-        if (camelContext.getManagementStrategy().getManagementAgent() != null) {
-            camelContext.getManagementStrategy().getManagementAgent().setEndpointRuntimeStatisticsEnabled(config.isEndpointRuntimeStatisticsEnabled());
-            camelContext.getManagementStrategy().getManagementAgent().setStatisticsLevel(config.getJmxManagementStatisticsLevel());
-            camelContext.getManagementStrategy().getManagementAgent().setManagementNamePattern(config.getJmxManagementNamePattern());
-            camelContext.getManagementStrategy().getManagementAgent().setCreateConnector(config.isJmxCreateConnector());
-        }
-
-        // tracing
-        camelContext.setTracing(config.isTracing());
-
-        if (config.getThreadNamePattern() != null) {
-            camelContext.getExecutorServiceManager().setThreadNamePattern(config.getThreadNamePattern());
-        }
-
-        if (config.getRouteFilterIncludePattern() != null || config.getRouteFilterExcludePattern() != null) {
-            camelContext.getExtension(Model.class).setRouteFilterPattern(config.getRouteFilterIncludePattern(), config.getRouteFilterExcludePattern());
-        }
+        // configure the common/default options
+        DefaultConfigurationConfigurer.configure(camelContext, config);
 
-        // additional advanced configuration which is not configured using CamelConfigurationProperties
+        // additional advanced configuration which is not configured using DefaultConfigurationProperties
         afterPropertiesSet(camelContext.getRegistry(), camelContext);
 
         // now configure context with additional properties