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