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