You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/10/01 07:58:26 UTC

[camel-k-runtime] 02/02: Log runtime version when starting #512

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git

commit de1b959a0c0073e9fc2aff9a3dc97e62d50b1ec9
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Wed Sep 30 23:52:20 2020 +0200

    Log runtime version when starting #512
---
 .../apache/camel/k/main/ApplicationRuntime.java    |  4 ++
 .../k/quarkus/deployment/DeploymentProcessor.java  |  2 +
 .../org/apache/camel/k/quarkus/Application.java    |  1 +
 .../camel/k/quarkus/ApplicationRecorder.java       |  5 +++
 .../src/main/java/org/apache/camel/k/Runtime.java  |  3 +-
 .../org/apache/camel/k/support/RuntimeSupport.java | 48 ++++++++++++++++++++++
 6 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java b/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java
index df01e69..f7a0938 100644
--- a/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java
+++ b/camel-k-main/camel-k-runtime-main/src/main/java/org/apache/camel/k/main/ApplicationRuntime.java
@@ -30,6 +30,7 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.k.CompositeClassloader;
 import org.apache.camel.k.Runtime;
+import org.apache.camel.k.support.RuntimeSupport;
 import org.apache.camel.main.BaseMainSupport;
 import org.apache.camel.main.MainSupport;
 import org.apache.camel.main.RoutesCollector;
@@ -57,6 +58,7 @@ public final class ApplicationRuntime implements Runtime {
         this.main = new MainAdapter();
         this.main.configure().setXmlRoutes("false");
         this.main.configure().setXmlRests("false");
+        this.main.configure().setXmlRouteTemplates("false");
         this.main.setDefaultPropertyPlaceholderLocation("false");
         this.main.setRoutesCollector(new NoRoutesCollector());
         this.main.addMainListener(new MainListenerAdapter());
@@ -68,6 +70,7 @@ public final class ApplicationRuntime implements Runtime {
     }
 
     public void run() throws Exception {
+        LOGGER.info("Apache Camel K Runtime {}", RuntimeSupport.getRuntimeVersion());
         this.main.run();
     }
 
@@ -119,6 +122,7 @@ public final class ApplicationRuntime implements Runtime {
     private final class MainListenerAdapter implements org.apache.camel.main.MainListener {
         @Override
         public void beforeInitialize(BaseMainSupport main) {
+            invokeListeners(Phase.Initializing);
             invokeListeners(Phase.ConfigureProperties);
         }
 
diff --git a/camel-k-quarkus/camel-k-runtime-quarkus/deployment/src/main/java/org/apache/camel/k/quarkus/deployment/DeploymentProcessor.java b/camel-k-quarkus/camel-k-runtime-quarkus/deployment/src/main/java/org/apache/camel/k/quarkus/deployment/DeploymentProcessor.java
index 9beab55..b2a3fd2 100644
--- a/camel-k-quarkus/camel-k-runtime-quarkus/deployment/src/main/java/org/apache/camel/k/quarkus/deployment/DeploymentProcessor.java
+++ b/camel-k-quarkus/camel-k-runtime-quarkus/deployment/src/main/java/org/apache/camel/k/quarkus/deployment/DeploymentProcessor.java
@@ -30,6 +30,7 @@ import io.quarkus.deployment.annotations.Record;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.quarkus.ApplicationProducers;
 import org.apache.camel.k.quarkus.ApplicationRecorder;
+import org.apache.camel.k.support.RuntimeSupport;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeTaskBuildItem;
 import org.apache.camel.quarkus.main.deployment.spi.CamelMainBuildItem;
 import org.apache.camel.quarkus.main.deployment.spi.CamelMainListenerBuildItem;
@@ -60,6 +61,7 @@ public class DeploymentProcessor {
             BeanContainerBuildItem beanContainer) {
 
         recorder.publishRuntime(camelMain.getInstance(), beanContainer.getValue());
+        recorder.version(RuntimeSupport.getRuntimeVersion());
 
         return new CamelRuntimeTaskBuildItem("camel-k-runtime");
     }
diff --git a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java
index 0d971f5..20690a4 100644
--- a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java
+++ b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java
@@ -94,6 +94,7 @@ public final class Application {
 
         @Override
         public void beforeInitialize(BaseMainSupport main) {
+            invokeListeners(org.apache.camel.k.Runtime.Phase.Initializing);
             invokeListeners(org.apache.camel.k.Runtime.Phase.ConfigureProperties);
         }
 
diff --git a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationRecorder.java b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationRecorder.java
index 696da7c..082b185 100644
--- a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationRecorder.java
+++ b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationRecorder.java
@@ -25,9 +25,14 @@ import org.apache.camel.k.Runtime;
 import org.apache.camel.main.MainListener;
 import org.apache.camel.main.RoutesCollector;
 import org.apache.camel.quarkus.main.CamelMain;
+import org.slf4j.LoggerFactory;
 
 @Recorder
 public class ApplicationRecorder {
+    public void version(String version) {
+        LoggerFactory.getLogger(Runtime.class).info("Apache Camel K Runtime {}", version);
+    }
+
     public RuntimeValue<MainListener> createMainListener(List<Runtime.Listener> listeners) {
         return new RuntimeValue<>(new Application.ListenerAdapter(listeners));
     }
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
index b43152c..b194804 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
@@ -115,10 +115,11 @@ public interface Runtime extends HasCamelContext, AutoCloseable {
     }
 
     enum Phase {
-        Starting,
+        Initializing,
         ConfigureProperties,
         ConfigureContext,
         ConfigureRoutes,
+        Starting,
         Started,
         Stopping,
         Stopped
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RuntimeSupport.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RuntimeSupport.java
index 72e9796..8b16e03 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RuntimeSupport.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/RuntimeSupport.java
@@ -16,9 +16,11 @@
  */
 package org.apache.camel.k.support;
 
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeSet;
@@ -33,6 +35,7 @@ import org.apache.camel.k.ContextCustomizer;
 import org.apache.camel.k.Source;
 import org.apache.camel.k.SourceLoader;
 import org.apache.camel.spi.HasCamelContext;
+import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -247,4 +250,49 @@ public final class RuntimeSupport {
         return answer;
     }
 
+    // *********************************
+    //
+    // Helpers - Misc
+    //
+    // *********************************
+
+    public static String getRuntimeVersion() {
+        String version = null;
+
+        InputStream is = null;
+        // try to load from maven properties first
+        try {
+            Properties p = new Properties();
+            is = RuntimeSupport.class.getResourceAsStream("/META-INF/maven/org.apache.camel.k/camel-k-runtime-core/pom.properties");
+            if (is != null) {
+                p.load(is);
+                version = p.getProperty("version", "");
+            }
+        } catch (Exception e) {
+            // ignore
+        } finally {
+            if (is != null) {
+                IOHelper.close(is);
+            }
+        }
+
+        // fallback to using Java API
+        if (version == null) {
+            Package aPackage = RuntimeSupport.class.getPackage();
+            if (aPackage != null) {
+                version = aPackage.getImplementationVersion();
+                if (version == null) {
+                    version = aPackage.getSpecificationVersion();
+                }
+            }
+        }
+
+        if (version == null) {
+            // we could not compute the version so use a blank
+            version = "";
+        }
+
+        return Objects.requireNonNull(version, "Could not determine Camel K Runtime version");
+    }
+
 }