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

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new c581f8491d Log the Camel Quarkus version on startup
c581f8491d is described below

commit c581f8491d435bca77c429da603b19ac1efa9d49
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Thu Jun 20 13:06:36 2024 +0100

    Log the Camel Quarkus version on startup
    
    Fixes #6196
---
 extensions-core/core/deployment/pom.xml            |  6 +++
 .../core/deployment/CamelBootstrapProcessor.java   |  3 +-
 .../core/deployment/util/CamelQuarkusVersion.java  | 63 ++++++++++++++++++++++
 .../util/camel-quarkus-version.properties          | 17 ++++++
 .../camel/quarkus/core/CamelBootstrapRecorder.java |  4 +-
 5 files changed, 90 insertions(+), 3 deletions(-)

diff --git a/extensions-core/core/deployment/pom.xml 
b/extensions-core/core/deployment/pom.xml
index 3136c2742a..225210be6b 100644
--- a/extensions-core/core/deployment/pom.xml
+++ b/extensions-core/core/deployment/pom.xml
@@ -94,6 +94,12 @@
     </dependencies>
 
     <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+        </resources>
         <plugins>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
diff --git 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBootstrapProcessor.java
 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBootstrapProcessor.java
index db9e8805f1..d0d675f8d1 100644
--- 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBootstrapProcessor.java
+++ 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelBootstrapProcessor.java
@@ -28,6 +28,7 @@ import io.quarkus.runtime.ShutdownContext;
 import org.apache.camel.quarkus.core.CamelBootstrapRecorder;
 import 
org.apache.camel.quarkus.core.deployment.spi.CamelBootstrapCompletedBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeBuildItem;
+import org.apache.camel.quarkus.core.deployment.util.CamelQuarkusVersion;
 
 class CamelBootstrapProcessor {
     /**
@@ -51,7 +52,7 @@ class CamelBootstrapProcessor {
 
         recorder.addShutdownTask(shutdown, runtime.runtime());
         if (runtime.isAutoStartup()) {
-            recorder.start(runtime.runtime(), commandLineArguments);
+            recorder.start(runtime.runtime(), commandLineArguments, 
CamelQuarkusVersion.getVersion());
         }
         /* Make sure that Quarkus orders this method before starting to serve 
HTTP endpoints.
          * Otherwise first requests might reach Camel context in a 
non-yet-started state. */
diff --git 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelQuarkusVersion.java
 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelQuarkusVersion.java
new file mode 100644
index 0000000000..4326ffad9e
--- /dev/null
+++ 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelQuarkusVersion.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.core.deployment.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.util.Properties;
+
+import org.jboss.logging.Logger;
+
+public final class CamelQuarkusVersion {
+    private static final String CAMEL_QUARKUS_VERSION_PROPERTIES = 
"camel-quarkus-version.properties";
+    private static final Logger LOG = 
Logger.getLogger(CamelQuarkusVersion.class);
+    private static final String VERSION;
+
+    static {
+        Properties versionProps = new Properties();
+        String versionString = "unknown version";
+        try (final InputStream stream = 
CamelQuarkusVersion.class.getResourceAsStream(CAMEL_QUARKUS_VERSION_PROPERTIES))
 {
+            if (stream != null) {
+                try (final InputStreamReader reader = new 
InputStreamReader(stream, StandardCharsets.UTF_8)) {
+                    versionProps.load(reader);
+                    versionString = versionProps.getProperty("version", 
versionString);
+                }
+            } else {
+                logUnableToLoadVersionProperties(null);
+            }
+        } catch (IOException e) {
+            logUnableToLoadVersionProperties(e);
+        }
+        VERSION = versionString;
+    }
+
+    static void logUnableToLoadVersionProperties(IOException e) {
+        if (LOG.isDebugEnabled()) {
+            LOG.debugf(e, "Unable to load %s", 
CAMEL_QUARKUS_VERSION_PROPERTIES);
+        }
+    }
+
+    private CamelQuarkusVersion() {
+        // Utility class
+    }
+
+    public static String getVersion() {
+        return VERSION;
+    }
+}
diff --git 
a/extensions-core/core/deployment/src/main/resources/org/apache/camel/quarkus/core/deployment/util/camel-quarkus-version.properties
 
b/extensions-core/core/deployment/src/main/resources/org/apache/camel/quarkus/core/deployment/util/camel-quarkus-version.properties
new file mode 100644
index 0000000000..fbe48f8d77
--- /dev/null
+++ 
b/extensions-core/core/deployment/src/main/resources/org/apache/camel/quarkus/core/deployment/util/camel-quarkus-version.properties
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+version=${project.version}
\ No newline at end of file
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelBootstrapRecorder.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelBootstrapRecorder.java
index f30d7b6cc3..5b679fd5f7 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelBootstrapRecorder.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelBootstrapRecorder.java
@@ -38,10 +38,10 @@ public class CamelBootstrapRecorder {
         });
     }
 
-    public void start(RuntimeValue<CamelRuntime> runtime, Supplier<String[]> 
arguments) {
+    public void start(RuntimeValue<CamelRuntime> runtime, Supplier<String[]> 
arguments, String camelQuarkusVersion) {
         try {
             Logger logger = Logger.getLogger(CamelBootstrapRecorder.class);
-            logger.infof("Bootstrap runtime: %s", 
runtime.getValue().getClass().getName());
+            logger.infof("Apache Camel Quarkus %s is starting", 
camelQuarkusVersion);
             runtime.getValue().start(arguments.get());
         } catch (Exception e) {
             throw new RuntimeException(e);

Reply via email to