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 <claus.ib...@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