From 73889f9e380bdb869b9af170889a832261dda49f Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Fri, 16 Dec 2022 16:37:25 +0000 Subject: [PATCH 1/5] Generate a Versions file to be consumed at runtime --- operator-framework-core/pom.xml | 13 +++++++++++++ .../io/javaoperatorsdk/operator/Versions.java | 8 ++++++++ 2 files changed, 21 insertions(+) create mode 100644 operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java diff --git a/operator-framework-core/pom.xml b/operator-framework-core/pom.xml index bb8e3bcda7..da1da49555 100644 --- a/operator-framework-core/pom.xml +++ b/operator-framework-core/pom.xml @@ -47,6 +47,19 @@ 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/Versions.java b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java new file mode 100644 index 0000000000..346d24cb6f --- /dev/null +++ b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java @@ -0,0 +1,8 @@ +package io.javaoperatorsdk.operator; + +public final class Versions { + + public static final String JOSDK = "${project.version}"; + public static final String KUBERNETES_CLIENT = "${fabric8-client.version}"; + +} From 19b31b05d2e35120ae4e89e2cc26fc4e0407fd08 Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Tue, 20 Dec 2022 11:02:46 +0000 Subject: [PATCH 2/5] review comments --- .../io/javaoperatorsdk/operator/Versions.java | 8 -------- .../javaoperatorsdk/operator/api/config/Versions.java | 10 ++++++++++ .../javaoperatorsdk/operator/api/config/Version.java | 5 ++++- 3 files changed, 14 insertions(+), 9 deletions(-) delete mode 100644 operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java create mode 100644 operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/api/config/Versions.java diff --git a/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java b/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java deleted file mode 100644 index 346d24cb6f..0000000000 --- a/operator-framework-core/src/main/java-templates/io/javaoperatorsdk/operator/Versions.java +++ /dev/null @@ -1,8 +0,0 @@ -package io.javaoperatorsdk.operator; - -public final class Versions { - - public static final String JOSDK = "${project.version}"; - public static final String KUBERNETES_CLIENT = "${fabric8-client.version}"; - -} 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/Version.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Version.java index 6bfb5bb2e5..a9cbaa5d44 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,7 +6,10 @@ /** 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)); + public static final Version UNKNOWN = + new Version(Versions.JOSDK, "unknown", Date.from(Instant.EPOCH)); + public static final Version KUBENETES_CLIENT = + new Version(Versions.KUBERNETES_CLIENT, "unknown", Date.from(Instant.EPOCH)); private final String sdk; private final String commit; From 52643d387869140f3dcba31d599ed3e6bab38a6c Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Wed, 21 Dec 2022 12:56:27 +0000 Subject: [PATCH 3/5] add a test for the version --- .../operator/api/config/VersionTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/VersionTest.java 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); + } + +} From 534b7158121cef15fa24cee109937937f635419b Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Thu, 5 Jan 2023 21:19:45 +0100 Subject: [PATCH 4/5] refactor: consolidate access to versions --- operator-framework-core/pom.xml | 2 +- .../operator/api/config/Utils.java | 1 - .../operator/api/config/Version.java | 22 +++++++++++-------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/operator-framework-core/pom.xml b/operator-framework-core/pom.xml index da1da49555..74227d21be 100644 --- a/operator-framework-core/pom.xml +++ b/operator-framework-core/pom.xml @@ -40,7 +40,7 @@ ${project.build.outputDirectory}/version.properties - ^git.build.(time|version)$ + ^git.build.time$ ^git.commit.id.(abbrev|full)$ git.branch 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 a9cbaa5d44..1baab54cd7 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,17 +6,11 @@ /** A class encapsulating the version information associated with this SDK instance. */ public class Version { - public static final Version UNKNOWN = - new Version(Versions.JOSDK, "unknown", Date.from(Instant.EPOCH)); - public static final Version KUBENETES_CLIENT = - new Version(Versions.KUBERNETES_CLIENT, "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; } @@ -27,7 +21,7 @@ public Version(String sdkVersion, String commit, Date builtTime) { * @return the SDK project version */ public String getSdkVersion() { - return sdk; + return Versions.JOSDK; } /** @@ -48,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; + } } From 6b3fd3db356735426e0a5cda13ca09656d7b9f1f Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 6 Jan 2023 09:53:26 +0100 Subject: [PATCH 5/5] fix: format [skipci] --- .../java/io/javaoperatorsdk/operator/api/config/Version.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1baab54cd7..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 @@ -45,7 +45,7 @@ public Date getBuiltTime() { /** * Returns the version of the Fabric8 Kubernetes Client being used by this version of the SDK - * + * * @return the Fabric8 Kubernetes Client version */ @SuppressWarnings("unused")