You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2025/01/13 13:15:54 UTC
(maven-enforcer) branch master updated: [MENFORCER-495] Remove "JAVA_HOME" from rule violation message (#346)
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 <el...@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