diff --git a/operator-framework-core/pom.xml b/operator-framework-core/pom.xml index bb8e3bcda7..74227d21be 100644 --- a/operator-framework-core/pom.xml +++ b/operator-framework-core/pom.xml @@ -40,13 +40,26 @@ ${project.build.outputDirectory}/version.properties - ^git.build.(time|version)$ + ^git.build.time$ ^git.commit.id.(abbrev|full)$ git.branch full + + org.codehaus.mojo + templating-maven-plugin + 1.0.0 + + + filtering-java-templates + + filter-sources + + + + diff --git a/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java new file mode 100644 index 0000000000..8d67199510 --- /dev/null +++ b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java @@ -0,0 +1,10 @@ +package io.javaoperatorsdk.operator.api.config; + +public final class Versions { + + private Versions() {} + + protected static final String JOSDK = "${project.version}"; + protected static final String KUBERNETES_CLIENT = "${fabric8-client.version}"; + +} diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java index c98ab895f7..bee5b96cbe 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java @@ -63,7 +63,6 @@ public static Version loadFromProperties() { builtTime = Date.from(Instant.EPOCH); } return new Version( - properties.getProperty("git.build.version", "unknown"), properties.getProperty("git.commit.id.abbrev", "unknown"), builtTime); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java index 6bfb5bb2e5..d43d8aa1cf 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java @@ -6,14 +6,11 @@ /** A class encapsulating the version information associated with this SDK instance. */ public class Version { - public static final Version UNKNOWN = new Version("unknown", "unknown", Date.from(Instant.EPOCH)); - - private final String sdk; + public static final Version UNKNOWN = new Version("unknown", Date.from(Instant.EPOCH)); private final String commit; private final Date builtTime; - public Version(String sdkVersion, String commit, Date builtTime) { - this.sdk = sdkVersion; + public Version(String commit, Date builtTime) { this.commit = commit; this.builtTime = builtTime; } @@ -24,7 +21,7 @@ public Version(String sdkVersion, String commit, Date builtTime) { * @return the SDK project version */ public String getSdkVersion() { - return sdk; + return Versions.JOSDK; } /** @@ -45,4 +42,14 @@ public String getCommit() { public Date getBuiltTime() { return builtTime; } + + /** + * Returns the version of the Fabric8 Kubernetes Client being used by this version of the SDK + * + * @return the Fabric8 Kubernetes Client version + */ + @SuppressWarnings("unused") + public String getKubernetesClientVersion() { + return Versions.KUBERNETES_CLIENT; + } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java new file mode 100644 index 0000000000..2a6b8002e3 --- /dev/null +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java @@ -0,0 +1,17 @@ +package io.javaoperatorsdk.operator.api.config; + +import org.junit.jupiter.api.Test; + +import static org.junit.Assert.assertEquals; + +public class VersionTest { + + @Test + void versionShouldReturnTheSameResultFromMavenAndProperties() { + String versionFromProperties = Utils.loadFromProperties().getSdkVersion(); + String versionFromMaven = Version.UNKNOWN.getSdkVersion(); + + assertEquals(versionFromProperties, versionFromMaven); + } + +}