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 2016/03/31 12:09:36 UTC
[4/5] camel git commit: CAMEL-9782: camel-spring-boot - Allow to
configure options on CamelContext using auto config
CAMEL-9782: camel-spring-boot - Allow to configure options on CamelContext using auto config
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4e0d50b1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4e0d50b1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4e0d50b1
Branch: refs/heads/master
Commit: 4e0d50b18efbe39967d9262979b68a32ba4efb68
Parents: 1f48a57
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Mar 31 12:08:43 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Mar 31 12:08:43 2016 +0200
----------------------------------------------------------------------
.../spring/boot/CamelAutoConfiguration.java | 17 +-
.../boot/CamelConfigurationProperties.java | 159 +++++++++++++++++++
2 files changed, 174 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/4e0d50b1/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
----------------------------------------------------------------------
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 f950e52..caedaf1 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
@@ -40,8 +40,7 @@ import org.springframework.context.annotation.Import;
public class CamelAutoConfiguration {
/**
- * Spring-aware Camel context for the application. Auto-detects and loads all routes available in the Spring
- * context.
+ * Spring-aware Camel context for the application. Auto-detects and loads all routes available in the Spring context.
*/
@Bean
@ConditionalOnMissingBean(CamelContext.class)
@@ -63,6 +62,20 @@ public class CamelAutoConfiguration {
camelContext.getProperties().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "" + config.getLogDebugMaxChars());
}
+ camelContext.setStreamCaching(config.isStreamCaching());
+ camelContext.setTracing(config.isTracing());
+ camelContext.setMessageHistory(config.isMessageHistory());
+ camelContext.setHandleFault(config.isHandleFault());
+ camelContext.setAutoStartup(config.isAutoStartup());
+ camelContext.setAllowUseOriginalMessage(config.isAllowUseOriginalMessage());
+
+ 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());
+ }
+
return camelContext;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/4e0d50b1/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
index 34aa4b3..7b2968f 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.spring.boot;
+import org.apache.camel.ManagementStatisticsLevel;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "camel.springboot")
@@ -75,6 +76,84 @@ public class CamelConfigurationProperties {
*/
private int logDebugMaxChars;
+ /**
+ * Sets whether stream caching is enabled or not.
+ *
+ * Default is false.
+ */
+ private boolean streamCaching;
+
+ /**
+ * Sets whether tracing is enabled or not.
+ *
+ * Default is false.
+ */
+ private boolean tracing;
+
+ /**
+ * Sets whether message history is enabled or not.
+ *
+ * Default is true.
+ */
+ private boolean messageHistory = true;
+
+ /**
+ * Sets whether fault handling is enabled or not.
+ *
+ * Default is false.
+ */
+ private boolean handleFault;
+
+ /**
+ * Sets whether the object should automatically start when Camel starts.
+ * Important: Currently only routes can be disabled, as CamelContext's are always started.
+ * Note: When setting auto startup false on CamelContext then that takes precedence
+ * and no routes is started. You would need to start CamelContext explicit using
+ * the org.apache.camel.CamelContext.start() method, to start the context, and then
+ * you would need to start the routes manually using CamelContext.startRoute(String).
+ *
+ * Default is true to always start up.
+ */
+ private boolean autoStartup = true;
+
+ /**
+ * Sets whether to allow access to the original message from Camel's error handler,
+ * or from org.apache.camel.spi.UnitOfWork.getOriginalInMessage().
+ * Turning this off can optimize performance, as defensive copy of the original message is not needed.
+ *
+ * Default is true.
+ */
+ private boolean allowUseOriginalMessage = true;
+
+ /**
+ * Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints).
+ *
+ * The default value is true.
+ */
+ private boolean endpointRuntimeStatisticsEnabled = true;
+
+ /**
+ * Sets the JMX statistics level
+ * The level can be set to Extended to gather additional information
+ *
+ * The default value is Default.
+ */
+ private ManagementStatisticsLevel jmxManagementStatisticsLevel = ManagementStatisticsLevel.Default;
+
+ /**
+ * The naming pattern for creating the CamelContext JMX management name.
+ *
+ * The default pattern is #name#
+ */
+ private String jmxManagementNamePattern = "#name#";
+
+ /**
+ * Whether JMX connector is created, allowing clients to connect remotely
+ *
+ * The default value is false.
+ */
+ private boolean jmxCreateConnector;
+
// Getters & setters
public String getName() {
@@ -148,4 +227,84 @@ public class CamelConfigurationProperties {
public void setLogDebugMaxChars(int logDebugMaxChars) {
this.logDebugMaxChars = logDebugMaxChars;
}
+
+ public boolean isStreamCaching() {
+ return streamCaching;
+ }
+
+ public void setStreamCaching(boolean streamCaching) {
+ this.streamCaching = streamCaching;
+ }
+
+ public boolean isTracing() {
+ return tracing;
+ }
+
+ public void setTracing(boolean tracing) {
+ this.tracing = tracing;
+ }
+
+ public boolean isMessageHistory() {
+ return messageHistory;
+ }
+
+ public void setMessageHistory(boolean messageHistory) {
+ this.messageHistory = messageHistory;
+ }
+
+ public boolean isHandleFault() {
+ return handleFault;
+ }
+
+ public void setHandleFault(boolean handleFault) {
+ this.handleFault = handleFault;
+ }
+
+ public boolean isAutoStartup() {
+ return autoStartup;
+ }
+
+ public void setAutoStartup(boolean autoStartup) {
+ this.autoStartup = autoStartup;
+ }
+
+ public boolean isAllowUseOriginalMessage() {
+ return allowUseOriginalMessage;
+ }
+
+ public void setAllowUseOriginalMessage(boolean allowUseOriginalMessage) {
+ this.allowUseOriginalMessage = allowUseOriginalMessage;
+ }
+
+ public boolean isEndpointRuntimeStatisticsEnabled() {
+ return endpointRuntimeStatisticsEnabled;
+ }
+
+ public void setEndpointRuntimeStatisticsEnabled(boolean endpointRuntimeStatisticsEnabled) {
+ this.endpointRuntimeStatisticsEnabled = endpointRuntimeStatisticsEnabled;
+ }
+
+ public ManagementStatisticsLevel getJmxManagementStatisticsLevel() {
+ return jmxManagementStatisticsLevel;
+ }
+
+ public void setJmxManagementStatisticsLevel(ManagementStatisticsLevel jmxManagementStatisticsLevel) {
+ this.jmxManagementStatisticsLevel = jmxManagementStatisticsLevel;
+ }
+
+ public String getJmxManagementNamePattern() {
+ return jmxManagementNamePattern;
+ }
+
+ public void setJmxManagementNamePattern(String jmxManagementNamePattern) {
+ this.jmxManagementNamePattern = jmxManagementNamePattern;
+ }
+
+ public boolean isJmxCreateConnector() {
+ return jmxCreateConnector;
+ }
+
+ public void setJmxCreateConnector(boolean jmxCreateConnector) {
+ this.jmxCreateConnector = jmxCreateConnector;
+ }
}