From 27a3fb0c694bb7f00f6f142469f23683b9256068 Mon Sep 17 00:00:00 2001 From: Gabriel Pan Gantes Date: Fri, 19 Jun 2026 22:47:55 +0200 Subject: [PATCH] feat(version): add Java version suffix to User-Agent User-Agent goes from `PluggyJava/` to `PluggyJava/ (Java )`, giving the API visibility into the consumer's JVM. Covered by a new VersionTest assertion. --- src/main/java/ai/pluggy/utils/Version.java | 7 +++++-- src/test/java/ai/pluggy/utils/VersionTest.java | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/ai/pluggy/utils/Version.java b/src/main/java/ai/pluggy/utils/Version.java index fb0f35e..bfa88be 100644 --- a/src/main/java/ai/pluggy/utils/Version.java +++ b/src/main/java/ai/pluggy/utils/Version.java @@ -21,9 +21,12 @@ public static String get() { return VERSION; } - /** {@code User-Agent} header value, e.g. {@code "PluggyJava/1.11.0"}. */ + /** + * {@code User-Agent} header value, e.g. {@code "PluggyJava/1.11.0 (Java 1.8.0_292)"}. The Java + * version suffix gives the API visibility into the consumer's JVM. + */ public static String userAgent() { - return "PluggyJava/" + VERSION; + return "PluggyJava/" + VERSION + " (Java " + System.getProperty("java.version") + ")"; } private static String load() { diff --git a/src/test/java/ai/pluggy/utils/VersionTest.java b/src/test/java/ai/pluggy/utils/VersionTest.java index ee63c63..0079454 100644 --- a/src/test/java/ai/pluggy/utils/VersionTest.java +++ b/src/test/java/ai/pluggy/utils/VersionTest.java @@ -21,4 +21,13 @@ public void version_isResolvedFromFilteredProperties() { public void userAgent_hasExpectedPrefix() { assertTrue(Version.userAgent().startsWith("PluggyJava/")); } + + @Test + public void userAgent_includesJavaVersionSuffix() { + // e.g. "PluggyJava/1.11.0 (Java 1.8.0_292)" — gives the API visibility into the consumer's JVM. + String userAgent = Version.userAgent(); + assertTrue(userAgent.startsWith("PluggyJava/" + Version.get() + " (Java "), + "userAgent should start with 'PluggyJava/ (Java ', got: '" + userAgent + "'"); + assertTrue(userAgent.endsWith(")"), "userAgent should end with ')', got: '" + userAgent + "'"); + } }