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 26b625c Configuring some of the XML DSL options should support placeholder. 26b625c is described below commit 26b625c4580b50fd63b13e905069816cb071472f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Mar 27 08:55:39 2020 +0100 Configuring some of the XML DSL options should support placeholder. --- .../apache/camel/cdi/xml/CamelContextFactoryBean.java | 18 +++++++++--------- .../org/apache/camel/spring/camelContext.json | 6 +++--- .../apache/camel/spring/CamelContextFactoryBean.java | 18 +++++++++--------- .../core/xml/AbstractCamelContextFactoryBean.java | 15 ++++++++++----- .../core/xml/AbstractCamelContextFactoryBeanTest.java | 5 ++++- 5 files changed, 35 insertions(+), 27 deletions(-) diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java index a945b37..f19230a 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java @@ -144,13 +144,13 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def private ShutdownRunningTask shutdownRunningTask; @XmlAttribute - private Boolean loadTypeConverters; + private String loadTypeConverters; @XmlAttribute - private Boolean typeConverterStatisticsEnabled; + private String typeConverterStatisticsEnabled; @XmlAttribute - private Boolean inflightRepositoryBrowseEnabled; + private String inflightRepositoryBrowseEnabled; @XmlAttribute private TypeConverterExists typeConverterExists; @@ -754,29 +754,29 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def } @Override - public Boolean getLoadTypeConverters() { + public String getLoadTypeConverters() { return loadTypeConverters; } - public void setLoadTypeConverters(Boolean loadTypeConverters) { + public void setLoadTypeConverters(String loadTypeConverters) { this.loadTypeConverters = loadTypeConverters; } @Override - public Boolean getTypeConverterStatisticsEnabled() { + public String getTypeConverterStatisticsEnabled() { return typeConverterStatisticsEnabled; } - public void setTypeConverterStatisticsEnabled(Boolean typeConverterStatisticsEnabled) { + public void setTypeConverterStatisticsEnabled(String typeConverterStatisticsEnabled) { this.typeConverterStatisticsEnabled = typeConverterStatisticsEnabled; } @Override - public Boolean getInflightRepositoryBrowseEnabled() { + public String getInflightRepositoryBrowseEnabled() { return inflightRepositoryBrowseEnabled; } - public void setInflightRepositoryBrowseEnabled(Boolean inflightRepositoryBrowseEnabled) { + public void setInflightRepositoryBrowseEnabled(String inflightRepositoryBrowseEnabled) { this.inflightRepositoryBrowseEnabled = inflightRepositoryBrowseEnabled; } diff --git a/components/camel-spring/src/generated/resources/org/apache/camel/spring/camelContext.json b/components/camel-spring/src/generated/resources/org/apache/camel/spring/camelContext.json index d683580..60801e5 100644 --- a/components/camel-spring/src/generated/resources/org/apache/camel/spring/camelContext.json +++ b/components/camel-spring/src/generated/resources/org/apache/camel/spring/camelContext.json @@ -35,9 +35,9 @@ "threadNamePattern": { "kind": "attribute", "displayName": "Thread Name Pattern", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "Camel (#camelId#) thread ##counter# - #name#", "description": "Sets the thread name pattern used for creating the full thread name. The default pattern is: Camel (#camelId#) thread ##counter# - #name# Where #camelId# is the name of the org.apache.camel.CamelContext and #counter# is [...] "shutdownRoute": { "kind": "attribute", "displayName": "Shutdown Route", "required": false, "type": "enum", "javaType": "org.apache.camel.ShutdownRoute", "enum": [ "Default", "Defer" ], "deprecated": false, "secret": false, "defaultValue": "Default", "description": "Sets the ShutdownRoute option for routes." }, "shutdownRunningTask": { "kind": "attribute", "displayName": "Shutdown Running Task", "required": false, "type": "enum", "javaType": "org.apache.camel.ShutdownRunningTask", "enum": [ "CompleteAllTasks", "CompleteCurrentTaskOnly" ], "deprecated": false, "secret": false, "defaultValue": "CompleteCurrentTaskOnly", "description": "Sets the ShutdownRunningTask option to use when shutting down a route." }, - "loadTypeConverters": { "kind": "attribute", "displayName": "Load Type Converters", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": true, "description": "Sets whether to load custom type converters by scanning classpath. This can be turned off if you are only using Camel components that does not provide type converters which is needed at runtime. In such situations setting this option to false, can speedup s [...] - "typeConverterStatisticsEnabled": { "kind": "attribute", "displayName": "Type Converter Statistics Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Sets whether or not type converter statistics is enabled. By default the type converter utilization statistics is disabled. Notice: If enabled then there is a slight performance impact under very heavy load. You can enable\/disable [...] - "inflightRepositoryBrowseEnabled": { "kind": "attribute", "displayName": "Inflight Repository Browse Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Sets whether the inflight repository should allow browsing each inflight exchange. This is by default disabled as there is a very slight performance overhead when enabled." }, + "loadTypeConverters": { "kind": "attribute", "displayName": "Load Type Converters", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Sets whether to load custom type converters by scanning classpath. This can be turned off if you are only using Camel components that does not provide type converters which is needed at runtime. In such situations setting this option to false, can speedup s [...] + "typeConverterStatisticsEnabled": { "kind": "attribute", "displayName": "Type Converter Statistics Enabled", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets whether or not type converter statistics is enabled. By default the type converter utilization statistics is disabled. Notice: If enabled then there is a slight performance impact under very heavy load. You can enable\/disable the statistics at runtim [...] + "inflightRepositoryBrowseEnabled": { "kind": "attribute", "displayName": "Inflight Repository Browse Enabled", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets whether the inflight repository should allow browsing each inflight exchange. This is by default disabled as there is a very slight performance overhead when enabled." }, "typeConverterExists": { "kind": "attribute", "displayName": "Type Converter Exists", "required": false, "type": "enum", "javaType": "org.apache.camel.TypeConverterExists", "enum": [ "Fail", "Ignore", "Override" ], "deprecated": false, "secret": false, "defaultValue": "Override", "description": "What should happen when attempting to add a duplicate type converter. The default behavior is to override the existing." }, "typeConverterExistsLoggingLevel": { "kind": "attribute", "displayName": "Type Converter Exists Logging Level", "required": false, "type": "enum", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ], "deprecated": false, "secret": false, "defaultValue": "WARN", "description": "The logging level to use when logging that a type converter already exists when attempting to add a duplicate type converter. The default logging level is WARN" }, "globalOptions": { "kind": "element", "displayName": "Global Options", "required": false, "type": "object", "javaType": "org.apache.camel.model.GlobalOptionsDefinition", "deprecated": false, "secret": false, "description": "Configuration of CamelContext properties such as limit of debug logging and other general options." }, diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java index 364fcb7..3cb5edb 100644 --- a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java +++ b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java @@ -149,11 +149,11 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr @XmlAttribute @Metadata(defaultValue = "CompleteCurrentTaskOnly") private ShutdownRunningTask shutdownRunningTask; @XmlAttribute @Metadata(defaultValue = "true") - private Boolean loadTypeConverters; + private String loadTypeConverters; @XmlAttribute - private Boolean typeConverterStatisticsEnabled; + private String typeConverterStatisticsEnabled; @XmlAttribute - private Boolean inflightRepositoryBrowseEnabled; + private String inflightRepositoryBrowseEnabled; @XmlAttribute @Metadata(defaultValue = "Override") private TypeConverterExists typeConverterExists; @XmlAttribute @Metadata(defaultValue = "WARN") @@ -943,7 +943,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr } @Override - public Boolean getInflightRepositoryBrowseEnabled() { + public String getInflightRepositoryBrowseEnabled() { return inflightRepositoryBrowseEnabled; } @@ -952,7 +952,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr * * This is by default disabled as there is a very slight performance overhead when enabled. */ - public void setInflightRepositoryBrowseEnabled(Boolean inflightRepositoryBrowseEnabled) { + public void setInflightRepositoryBrowseEnabled(String inflightRepositoryBrowseEnabled) { this.inflightRepositoryBrowseEnabled = inflightRepositoryBrowseEnabled; } @@ -988,7 +988,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr } @Override - public Boolean getLoadTypeConverters() { + public String getLoadTypeConverters() { return loadTypeConverters; } @@ -1001,12 +1001,12 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr * * @param loadTypeConverters whether to load custom type converters. */ - public void setLoadTypeConverters(Boolean loadTypeConverters) { + public void setLoadTypeConverters(String loadTypeConverters) { this.loadTypeConverters = loadTypeConverters; } @Override - public Boolean getTypeConverterStatisticsEnabled() { + public String getTypeConverterStatisticsEnabled() { return typeConverterStatisticsEnabled; } @@ -1020,7 +1020,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr * {@link org.apache.camel.spi.TypeConverterRegistry#getStatistics()#setTypeConverterStatisticsEnabled(Boolean)} method, * or from JMX on the {@link org.apache.camel.api.management.mbean.ManagedTypeConverterRegistryMBean} mbean. */ - public void setTypeConverterStatisticsEnabled(Boolean typeConverterStatisticsEnabled) { + public void setTypeConverterStatisticsEnabled(String typeConverterStatisticsEnabled) { this.typeConverterStatisticsEnabled = typeConverterStatisticsEnabled; } diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java index 9752c5b..be5dfc6 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java @@ -187,6 +187,11 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex getContext().setTypeConverterRegistry(tcr); } + // setup whether to load type converters as early as possible + if (getLoadTypeConverters() != null) { + getContext().setLoadTypeConverters(CamelContextHelper.parseBoolean(getContext(), getLoadTypeConverters())); + } + // then properties component PropertiesComponent pc = getBeanForType(PropertiesComponent.class); if (pc != null) { @@ -816,11 +821,11 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex public abstract String getThreadNamePattern(); - public abstract Boolean getLoadTypeConverters(); + public abstract String getLoadTypeConverters(); - public abstract Boolean getInflightRepositoryBrowseEnabled(); + public abstract String getInflightRepositoryBrowseEnabled(); - public abstract Boolean getTypeConverterStatisticsEnabled(); + public abstract String getTypeConverterStatisticsEnabled(); public abstract LoggingLevel getTypeConverterExistsLoggingLevel(); @@ -958,10 +963,10 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex context.setValidators(getValidators().getValidators()); } if (getTypeConverterStatisticsEnabled() != null) { - context.setTypeConverterStatisticsEnabled(getTypeConverterStatisticsEnabled()); + context.setTypeConverterStatisticsEnabled(CamelContextHelper.parseBoolean(context, getTypeConverterStatisticsEnabled())); } if (getInflightRepositoryBrowseEnabled() != null) { - context.getInflightRepository().setInflightBrowseEnabled(getInflightRepositoryBrowseEnabled()); + context.getInflightRepository().setInflightBrowseEnabled(CamelContextHelper.parseBoolean(context, getInflightRepositoryBrowseEnabled())); } if (getTypeConverterExists() != null) { context.getTypeConverterRegistry().setTypeConverterExists(getTypeConverterExists()); diff --git a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java index 88151e0..2f27241 100644 --- a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java +++ b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java @@ -34,6 +34,7 @@ import org.apache.camel.impl.engine.DefaultFactoryFinder; import org.apache.camel.impl.engine.DefaultPackageScanClassResolver; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.spi.ExecutorServiceManager; +import org.apache.camel.spi.InflightRepository; import org.apache.camel.spi.Injector; import org.apache.camel.spi.ManagementNameStrategy; import org.apache.camel.spi.RuntimeEndpointRegistry; @@ -87,7 +88,8 @@ public class AbstractCamelContextFactoryBeanTest { // properties that should return value that can be converted to boolean Set<String> valuesThatReturnBoolean = new HashSet<>(asList("{{getStreamCache}}", "{{getDebug}}", "{{getTrace}}", "{{getBacklogTrace}}", "{{getMessageHistory}}", "{{getLogMask}}", "{{getLogExhaustedMessageBody}}", "{{getHandleFault}}", "{{getCaseInsensitiveHeaders}}", - "{{getAutoStartup}}", "{{getUseMDCLogging}}", "{{getUseDataType}}", "{{getUseBreadcrumb}}", "{{getAllowUseOriginalMessage}}")); + "{{getAutoStartup}}", "{{getUseMDCLogging}}", "{{getUseDataType}}", "{{getUseBreadcrumb}}", "{{getAllowUseOriginalMessage}}", + "{{getLoadTypeConverters}}", "{{getTypeConverterStatisticsEnabled}}", "{{getInflightRepositoryBrowseEnabled}}")); // properties that should return value that can be converted to long Set<String> valuesThatReturnLong = new HashSet<>(asList("{{getDelayer}}")); @@ -127,6 +129,7 @@ public class AbstractCamelContextFactoryBeanTest { when(context.getRuntimeEndpointRegistry()).thenReturn(mock(RuntimeEndpointRegistry.class)); when(context.getManagementNameStrategy()).thenReturn(mock(ManagementNameStrategy.class)); when(context.getExecutorServiceManager()).thenReturn(mock(ExecutorServiceManager.class)); + when(context.getInflightRepository()).thenReturn(mock(InflightRepository.class)); @SuppressWarnings("unchecked") final AbstractCamelContextFactoryBean<ModelCamelContext> factory = mock(AbstractCamelContextFactoryBean.class);