Skip to content

Commit

Permalink
Log the Camel Quarkus version on startup
Browse files Browse the repository at this point in the history
Fixes #6196
  • Loading branch information
jamesnetherton committed Jun 20, 2024
1 parent 83ed3aa commit fc1e6f7
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 3 deletions.
6 changes: 6 additions & 0 deletions extensions-core/core/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
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 {
/**
Expand All @@ -51,7 +52,7 @@ void boot(

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. */
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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}
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ public void run() {
});
}

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);
Expand Down

0 comments on commit fc1e6f7

Please sign in to comment.