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 3c45f2f34bd72741cf82e6400d19bd7015cc78b3 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sun Jan 24 16:09:08 2021 +0100 CAMEL-16072: Nicer log summary of startup and shutdown of Camel --- .../org/apache/camel/cdi/xml/CamelContextFactoryBean.java | 14 ++++++++++++++ .../resources/org/apache/camel/spring/camelContext.json | 1 + .../org/apache/camel/spring/CamelContextFactoryBean.java | 15 +++++++++++++++ .../src/generated/resources/org/apache/camel/jaxb.index | 1 + .../main/java/org/apache/camel/StartupSummaryLevel.java | 3 +++ .../org/apache/camel/core/xml/routeController.json | 1 + .../camel/core/xml/AbstractCamelContextFactoryBean.java | 10 ++++++++++ .../camel/core/xml/CamelRouteControllerDefinition.java | 15 +++++++++++++++ 8 files changed, 60 insertions(+) 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 7488254..a71cda8 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 @@ -34,6 +34,7 @@ import org.apache.camel.LoggingLevel; import org.apache.camel.RoutesBuilder; import org.apache.camel.ShutdownRoute; import org.apache.camel.ShutdownRunningTask; +import org.apache.camel.StartupSummaryLevel; import org.apache.camel.TypeConverterExists; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.core.xml.AbstractCamelContextFactoryBean; @@ -80,6 +81,10 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def private String dependsOn; @XmlAttribute + @Metadata(defaultValue = "Default") + private StartupSummaryLevel startupSummaryLevel; + + @XmlAttribute private String trace; @XmlAttribute @@ -646,6 +651,15 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def } @Override + public StartupSummaryLevel getStartupSummaryLevel() { + return startupSummaryLevel; + } + + public void setStartupSummaryLevel(StartupSummaryLevel startupSummaryLevel) { + this.startupSummaryLevel = startupSummaryLevel; + } + + @Override public String getTrace() { return trace; } 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 7c4e7ea..b57b615 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 @@ -12,6 +12,7 @@ }, "properties": { "depends-on": { "kind": "attribute", "displayName": "Depends On", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "List of other bean id's this CamelContext depends up. Multiple bean id's can be separated by comma." }, + "startupSummaryLevel": { "kind": "attribute", "displayName": "Startup Summary Level", "required": false, "type": "enum", "javaType": "org.apache.camel.StartupSummaryLevel", "enum": [ "brief", "classic", "default", "off", "verbose" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "description": "Controls the level of information logged during startup (and shutdown) of CamelContext." }, "trace": { "kind": "attribute", "displayName": "Trace", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets whether tracing is enabled or not. To use tracing then this must be enabled on startup to be installed in the CamelContext." }, "backlogTrace": { "kind": "attribute", "displayName": "Backlog Trace", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets whether backlog tracing is enabled or not. To use backlog tracing then this must be enabled on startup to be installed in the CamelContext." }, "tracePattern": { "kind": "attribute", "displayName": "Trace Pattern", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Tracing pattern to match which node EIPs to trace. For example to match all To EIP nodes, use to. The pattern matches by node and route id's Multiple patterns can be separated by comma." }, 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 a15737c..e91072e 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 @@ -34,6 +34,7 @@ import org.apache.camel.RoutesBuilder; import org.apache.camel.RuntimeCamelException; import org.apache.camel.ShutdownRoute; import org.apache.camel.ShutdownRunningTask; +import org.apache.camel.StartupSummaryLevel; import org.apache.camel.TypeConverterExists; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.properties.PropertiesComponent; @@ -108,6 +109,9 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr @Metadata(displayName = "Depends On") private String dependsOn; @XmlAttribute + @Metadata(defaultValue = "Default") + private StartupSummaryLevel startupSummaryLevel; + @XmlAttribute private String trace; @XmlAttribute private String backlogTrace; @@ -758,6 +762,17 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr this.trace = trace; } + public StartupSummaryLevel getStartupSummaryLevel() { + return startupSummaryLevel; + } + + /** + * Controls the level of information logged during startup (and shutdown) of CamelContext. + */ + public void setStartupSummaryLevel(StartupSummaryLevel startupSummaryLevel) { + this.startupSummaryLevel = startupSummaryLevel; + } + @Override public String getBacklogTrace() { return backlogTrace; diff --git a/core/camel-api/src/generated/resources/org/apache/camel/jaxb.index b/core/camel-api/src/generated/resources/org/apache/camel/jaxb.index index 3213777..6d9b86e 100644 --- a/core/camel-api/src/generated/resources/org/apache/camel/jaxb.index +++ b/core/camel-api/src/generated/resources/org/apache/camel/jaxb.index @@ -5,5 +5,6 @@ LoggingLevel ManagementStatisticsLevel ShutdownRoute ShutdownRunningTask +StartupSummaryLevel TypeConverterExists WaitForTaskToComplete diff --git a/core/camel-api/src/main/java/org/apache/camel/StartupSummaryLevel.java b/core/camel-api/src/main/java/org/apache/camel/StartupSummaryLevel.java index 3b88a67..449d803 100644 --- a/core/camel-api/src/main/java/org/apache/camel/StartupSummaryLevel.java +++ b/core/camel-api/src/main/java/org/apache/camel/StartupSummaryLevel.java @@ -16,9 +16,12 @@ */ package org.apache.camel; +import javax.xml.bind.annotation.XmlEnum; + /** * Controls the level of information logged during startup (and shutdown) of {@link CamelContext}. */ +@XmlEnum public enum StartupSummaryLevel { Classic, diff --git a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json index 140da07..0280eb5 100644 --- a/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json +++ b/core/camel-core-xml/src/generated/resources/org/apache/camel/core/xml/routeController.json @@ -22,6 +22,7 @@ "backOffMaxAttempts": { "kind": "attribute", "displayName": "Back Off Max Attempts", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Backoff maximum number of attempts to restart a route that failed to startup. When this threshold has been exceeded then the controller will give up attempting to restart the route, and the route will remain as stopped." }, "backOffMultiplier": { "kind": "attribute", "displayName": "Back Off Multiplier", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1.0", "description": "Backoff multiplier to use for exponential backoff. This is used to extend the delay between restart attempts." }, "unhealthyOnExhausted": { "kind": "attribute", "displayName": "Unhealthy On Exhausted", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "description": "Whether to mark the route as unhealthy (down) when all restarting attempts (backoff) have failed and the route is not successfully started and the route manager is giving up. Setting this to true allows health checks to know about t [...] + "loggingLevel": { "kind": "attribute", "displayName": "Logging Level", "required": false, "type": "enum", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "DEBUG", "ERROR", "INFO", "OFF", "TRACE", "WARN" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "description": "Sets the logging level used for logging route activity (such as starting and stopping routes). The default logging level is DEBUG." }, "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" } } } 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 66228f8..f0f844f 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 @@ -38,6 +38,7 @@ import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.RoutesBuilder; import org.apache.camel.ShutdownRoute; import org.apache.camel.ShutdownRunningTask; +import org.apache.camel.StartupSummaryLevel; import org.apache.camel.TypeConverterExists; import org.apache.camel.TypeConverters; import org.apache.camel.ValueHolder; @@ -741,6 +742,10 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex if (unhealthyOnExhausted != null && unhealthyOnExhausted) { src.setUnhealthyOnExhausted(unhealthyOnExhausted); } + LoggingLevel loggingLevel = CamelContextHelper.parse(getContext(), LoggingLevel.class, rc.getLoggingLevel()); + if (loggingLevel != null) { + src.setLoggingLevel(loggingLevel); + } } protected void initPropertyPlaceholder() throws Exception { @@ -883,6 +888,8 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex public abstract CamelPropertyPlaceholderDefinition getCamelPropertyPlaceholder(); + public abstract StartupSummaryLevel getStartupSummaryLevel(); + public abstract String getTrace(); public abstract String getTracePattern(); @@ -999,6 +1006,9 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex * @throws Exception is thrown if error occurred */ protected void initCamelContext(T context) throws Exception { + if (getStartupSummaryLevel() != null) { + context.setStartupSummaryLevel(getStartupSummaryLevel()); + } if (getBeanPostProcessorEnabled() != null) { CamelBeanPostProcessor cbpp = context.adapt(ExtendedCamelContext.class).getBeanPostProcessor(); if (cbpp != null) { diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java index e3d910f..b4fda97 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelRouteControllerDefinition.java @@ -59,6 +59,9 @@ public class CamelRouteControllerDefinition extends IdentifiedType { @XmlAttribute @Metadata(defaultValue = "false") private String unhealthyOnExhausted; + @XmlAttribute + @Metadata(javaType = "org.apache.camel.LoggingLevel", defaultValue = "DEBUG", enums = "TRACE,DEBUG,INFO,WARN,ERROR,OFF") + private String loggingLevel; public String getSupervising() { return supervising; @@ -205,4 +208,16 @@ public class CamelRouteControllerDefinition extends IdentifiedType { public void setUnhealthyOnExhausted(String unhealthyOnExhausted) { this.unhealthyOnExhausted = unhealthyOnExhausted; } + + public String getLoggingLevel() { + return loggingLevel; + } + + /** + * Sets the logging level used for logging route activity (such as starting and stopping routes). The default + * logging level is DEBUG. + */ + public void setLoggingLevel(String loggingLevel) { + this.loggingLevel = loggingLevel; + } }