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;
+    }
 }

Reply via email to