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