Skip to content

Commit

Permalink
feat(about): reimplement git build info in /health (#589)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewazores authored Aug 29, 2024
1 parent e5a4dbc commit 58c49b7
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 1 deletion.
24 changes: 24 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
<quarkus-quinoa.version>2.2.5</quarkus-quinoa.version>
<io.netty.version>4.1.108.Final</io.netty.version>
<org.codehaus.mojo.build.helper.plugin.version>3.6.0</org.codehaus.mojo.build.helper.plugin.version>
<org.codehaus.mojo.exec.plugin.version>3.3.0</org.codehaus.mojo.exec.plugin.version>
<assembly-plugin.version>3.7.1</assembly-plugin.version>

<com.github.spotbugs.version>4.8.6</com.github.spotbugs.version>
Expand Down Expand Up @@ -345,6 +346,29 @@
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${org.codehaus.mojo.exec.plugin.version}</version>
<executions>
<execution>
<id>generate-git-version</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>git</executable>
<arguments>
<argument>rev-parse</argument>
<argument>--verify</argument>
<argument>HEAD</argument>
</arguments>
<outputFile>${project.build.directory}/classes/META-INF/gitinfo</outputFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
Expand Down
65 changes: 65 additions & 0 deletions src/main/java/io/cryostat/BuildInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* Copyright The Cryostat Authors.
*
* Licensed 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 io.cryostat;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import org.jboss.logging.Logger;

@ApplicationScoped
public class BuildInfo {

private static final String RESOURCE_LOCATION = "META-INF/gitinfo";

@Inject Logger logger;

private final GitInfo gitinfo = new GitInfo();

@JsonProperty("git")
public GitInfo getGitInfo() {
return gitinfo;
}

public class GitInfo {
public String getHash() {
try (BufferedReader br =
new BufferedReader(
new InputStreamReader(
Thread.currentThread()
.getContextClassLoader()
.getResourceAsStream(RESOURCE_LOCATION),
StandardCharsets.UTF_8))) {
return br.lines()
.findFirst()
.orElseThrow(
() ->
new IllegalStateException(
String.format(
"Resource file %s is empty",
RESOURCE_LOCATION)))
.trim();
} catch (Exception e) {
logger.warn("Version retrieval exception", e);
return "unknown";
}
}
}
}
5 changes: 4 additions & 1 deletion src/main/java/io/cryostat/Health.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ class Health {
@ConfigProperty(name = ConfigProperties.REPORTS_SIDECAR_URL)
String reportsClientURL;

@Inject Logger logger;
@Inject BuildInfo buildInfo;
@Inject WebClient webClient;
@Inject Logger logger;

@GET
@Blocking
Expand Down Expand Up @@ -98,6 +99,8 @@ public Response health() {
Map.of(
"cryostatVersion",
String.format("v%s", version),
"build",
buildInfo,
"dashboardConfigured",
dashboardURL.isPresent(),
"dashboardAvailable",
Expand Down

0 comments on commit 58c49b7

Please sign in to comment.