This is an automated email from the ASF dual-hosted git repository. elharo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git
The following commit(s) were added to refs/heads/master by this push: new 46f61df [MENFORCER-495] Remove "JAVA_HOME" from rule violation message (#346) 46f61df is described below commit 46f61df0b07cce6b13e3b6d6f1b9e5559b872d0c Author: Elliotte Rusty Harold <elh...@users.noreply.github.com> AuthorDate: Mon Jan 13 13:15:49 2025 +0000 [MENFORCER-495] Remove "JAVA_HOME" from rule violation message (#346) * Remove JAVA_HOME from rule violation message --- .../maven/enforcer/rules/RequireJavaVendor.java | 8 ++-- .../enforcer/rules/version/RequireJavaVersion.java | 6 +-- .../enforcer/rules/TestRequireJavaVendor.java | 49 +++++++++++----------- .../rules/version/TestRequireJavaVersion.java | 12 +++--- 4 files changed, 37 insertions(+), 38 deletions(-) diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequireJavaVendor.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequireJavaVendor.java index 5b4dbd7..f31b796 100644 --- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequireJavaVendor.java +++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequireJavaVendor.java @@ -76,7 +76,7 @@ public final class RequireJavaVendor extends AbstractStandardEnforcerRule { String message = getMessage(); if (message == null) { message = String.format( - "%s is an excluded Required Java Vendor (JAVA_HOME=%s)", + "%s is an excluded Required Java Vendor (detected JDK: %s)", SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_HOME); } throw new EnforcerRuleException(message); @@ -84,7 +84,7 @@ public final class RequireJavaVendor extends AbstractStandardEnforcerRule { String message = getMessage(); if (message == null) { message = String.format( - "%s is not an included Required Java Vendor (JAVA_HOME=%s)", + "%s is not an included Required Java Vendor (detected JDK: %s)", SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_HOME); } throw new EnforcerRuleException(message); @@ -96,7 +96,7 @@ public final class RequireJavaVendor extends AbstractStandardEnforcerRule { * java.vendor, which you can also see with mvn --version. <br> * Excludes override the include rules. * - * @param theExcludes the vendor to to exclude from the include list. + * @param theExcludes the vendors to exclude from the include list */ public void setExcludes(List<String> theExcludes) { this.excludes = theExcludes; @@ -114,7 +114,7 @@ public final class RequireJavaVendor extends AbstractStandardEnforcerRule { * <li><code>Amazon</code> prohibits vendor name Amazon </li> * </ul> * - * @param theIncludes the list of required vendors. + * @param theIncludes the list of required vendors * * @see #setExcludes(List) */ diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/version/RequireJavaVersion.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/version/RequireJavaVersion.java index da14b2c..ca5fcf3 100644 --- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/version/RequireJavaVersion.java +++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/version/RequireJavaVersion.java @@ -145,9 +145,9 @@ public final class RequireJavaVersion extends AbstractVersionEnforcer { getLog().debug("Could not parse allowed version range " + allowedVersionRange + " " + e.getMessage()); version = allowedVersionRange; } - String message = String.format( - "Detected JDK version %s (JAVA_HOME=%s) is not in the allowed range %s.", - detectedJdkVersion, SystemUtils.JAVA_HOME, version); + String message = "Detected JDK " + SystemUtils.JAVA_HOME + + " is version " + detectedJdkVersion + + " which is not in the allowed range " + version + "."; super.setMessage(message); } } diff --git a/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/TestRequireJavaVendor.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/TestRequireJavaVendor.java index 4c2f733..93dbe9c 100644 --- a/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/TestRequireJavaVendor.java +++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/TestRequireJavaVendor.java @@ -27,7 +27,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThatCode; -import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.*; /** * The Class TestRequireJavaVendor. @@ -57,11 +57,11 @@ class TestRequireJavaVendor { // Set the included vendor to something irrelevant underTest.setIncludes(Collections.singletonList(NON_MATCHING_VENDOR)); - assertThatThrownBy(() -> underTest.execute()) - .isInstanceOf(EnforcerRuleException.class) - .hasMessage( - "%s is not an included Required Java Vendor (JAVA_HOME=%s)", - SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_HOME); + EnforcerRuleException exception = assertThrows(EnforcerRuleException.class, () -> underTest.execute()); + + assertTrue(exception + .getMessage() + .endsWith(" is not an included Required Java Vendor (detected JDK: " + SystemUtils.JAVA_HOME + ")")); } @Test @@ -69,15 +69,15 @@ class TestRequireJavaVendor { // Set the excluded vendor to current vendor name underTest.setExcludes(Collections.singletonList(SystemUtils.JAVA_VENDOR)); - assertThatThrownBy(() -> underTest.execute()) - .isInstanceOf(EnforcerRuleException.class) - .hasMessage( - "%s is an excluded Required Java Vendor (JAVA_HOME=%s)", - SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_HOME); + EnforcerRuleException exception = assertThrows(EnforcerRuleException.class, () -> underTest.execute()); + + assertTrue(exception + .getMessage() + .endsWith(" is an excluded Required Java Vendor (detected JDK: " + SystemUtils.JAVA_HOME + ")")); } @Test - void nonMatchingExclude() throws EnforcerRuleException { + void nonMatchingExclude() { // Set the excluded vendor to something nonsensical underTest.setExcludes(Collections.singletonList(NON_MATCHING_VENDOR)); @@ -89,11 +89,10 @@ class TestRequireJavaVendor { underTest.setExcludes(Collections.singletonList(SystemUtils.JAVA_VENDOR)); underTest.setIncludes(Collections.singletonList(SystemUtils.JAVA_VENDOR)); - assertThatThrownBy(() -> underTest.execute()) - .isInstanceOf(EnforcerRuleException.class) - .hasMessage( - "%s is an excluded Required Java Vendor (JAVA_HOME=%s)", - SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_HOME); + EnforcerRuleException exception = assertThrows(EnforcerRuleException.class, () -> underTest.execute()); + + assertTrue(exception.getMessage().contains(" is an excluded Required Java Vendor (detected JDK: ")); + assertTrue(exception.getMessage().contains(SystemUtils.JAVA_HOME)); } @Test @@ -101,15 +100,16 @@ class TestRequireJavaVendor { // Set a bunch of excluded vendors underTest.setExcludes(Arrays.asList(SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_VENDOR + "modified")); - assertThatThrownBy(() -> underTest.execute()) - .isInstanceOf(EnforcerRuleException.class) - .hasMessage( - "%s is an excluded Required Java Vendor (JAVA_HOME=%s)", - SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_HOME); + EnforcerRuleException exception = assertThrows(EnforcerRuleException.class, () -> underTest.execute()); + + assertEquals( + SystemUtils.JAVA_VENDOR + " is an excluded Required Java Vendor (detected JDK: " + SystemUtils.JAVA_HOME + + ")", + exception.getMessage()); } @Test - void matchAnyInclude() throws EnforcerRuleException { + void matchAnyInclude() { // Set a bunch of included vendors underTest.setIncludes(Arrays.asList(SystemUtils.JAVA_VENDOR, SystemUtils.JAVA_VENDOR + "modified")); @@ -117,8 +117,7 @@ class TestRequireJavaVendor { } @Test - void defaultRule() throws EnforcerRuleException { - + void defaultRule() { assertThatCode(() -> underTest.execute()).doesNotThrowAnyException(); } } diff --git a/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/version/TestRequireJavaVersion.java b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/version/TestRequireJavaVersion.java index 419dfac..783bd1b 100644 --- a/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/version/TestRequireJavaVersion.java +++ b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/version/TestRequireJavaVersion.java @@ -31,6 +31,8 @@ import org.junit.jupiter.params.provider.MethodSource; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; /** @@ -105,15 +107,13 @@ class TestRequireJavaVersion { @Test void shouldIncludeJavaHomeLocationInTheErrorMessage() { - String thisVersion = RequireJavaVersion.normalizeJDKVersion(SystemUtils.JAVA_VERSION); String requiredVersion = "10000"; rule.setVersion(requiredVersion); - assertThatThrownBy(() -> rule.execute()) - .isInstanceOf(EnforcerRuleException.class) - .hasMessage( - "Detected JDK version %s (JAVA_HOME=%s) is not in the allowed range %s.", - thisVersion, SystemUtils.JAVA_HOME, "[" + requiredVersion + ",)"); + EnforcerRuleException exception = assertThrows(EnforcerRuleException.class, () -> rule.execute()); + + assertTrue(exception.getMessage().startsWith("Detected JDK " + SystemUtils.JAVA_HOME + " is version ")); + assertTrue(exception.getMessage().endsWith(" which is not in the allowed range [10000,).")); } @Test