Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MENFORCER-460] Deprecate display-info mojo #237

Merged
merged 1 commit into from
Jan 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public void execute() throws EnforcerRuleException {
if (allParamsEmpty()) {
throw new EnforcerRuleError("All parameters can not be empty. "
+ "You must pick at least one of (family, name, version, arch), "
+ "you can use mvn enforcer:display-info to see the current OS information.");
+ "you can use mvn --version to see the current OS information.");
}

if (isValidFamily(this.family)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,4 @@ public final String getVersion() {
public void setVersion(String theVersion) {
this.version = theVersion;
}

@Override
public String toString() {
return String.format("%s[message=%s, version=%s]", getClass().getSimpleName(), getMessage(), version);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ public final class RequireJavaVersion extends AbstractVersionEnforcer {

private static final Pattern JDK8_VERSION_PATTERN = Pattern.compile("([\\[(,]?)(1\\.8|8)([]),]?)");

/**
* Display the normalized JDK version.
*/
private boolean display = false;

@Override
public void setVersion(String theVersion) {

Expand All @@ -66,12 +71,16 @@ public void setVersion(String theVersion) {
@Override
public void execute() throws EnforcerRuleException {
String javaVersion = SystemUtils.JAVA_VERSION;
String javaVersionNormalized = normalizeJDKVersion(javaVersion);
if (display) {
getLog().info("Detected Java Version: '" + javaVersion + "'");
getLog().info("Normalized Java Version: '" + javaVersionNormalized + "'");
} else {
getLog().debug("Detected Java Version: '" + javaVersion + "'");
getLog().debug("Normalized Java Version: '" + javaVersionNormalized + "'");
}

getLog().debug("Detected Java String: '" + javaVersion + "'");
javaVersion = normalizeJDKVersion(javaVersion);
getLog().debug("Normalized Java String: '" + javaVersion + "'");

ArtifactVersion detectedJdkVersion = new DefaultArtifactVersion(javaVersion);
ArtifactVersion detectedJdkVersion = new DefaultArtifactVersion(javaVersionNormalized);

getLog().debug("Parsed Version: Major: " + detectedJdkVersion.getMajorVersion() + " Minor: "
+ detectedJdkVersion.getMinorVersion() + " Incremental: " + detectedJdkVersion.getIncrementalVersion()
Expand Down Expand Up @@ -133,4 +142,11 @@ private void setCustomMessageIfNoneConfigured(ArtifactVersion detectedJdkVersion
super.setMessage(message);
}
}

@Override
public String toString() {
return String.format(
"%s[message=%s, version=%s, display=%b]",
getClass().getSimpleName(), getMessage(), getVersion(), display);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,9 @@ public void execute() throws EnforcerRuleException {
DefaultArtifactVersion detectedVersion = new DefaultArtifactVersion(mavenVersion);
enforceVersion("Maven", getVersion(), detectedVersion);
}

@Override
public String toString() {
return String.format("%s[message=%s, version=%s]", getClass().getSimpleName(), getMessage(), getVersion());
}
}
19 changes: 7 additions & 12 deletions enforcer-rules/src/site/apt/requireJavaVersion.apt.vm
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ Require Java Version

* <<version>> - {{{./versionRanges.html}range}} of allowed JDKs.

* <<display>> - flag to display the normalized JDK version.


For JDK 1.8 you can also use simple <<<8>>> as <version> - it will be internally changed to <<<1.8>>>

[]
Expand All @@ -49,18 +52,10 @@ Require Java Version

[]

This preprocessing normalizes various JDK version strings into a standard x.y.z-b version number. Your required range should therefore use the x.y.z-b format for comparison.
There is an easy way to see how your current JDK string will be normalized:

+---+
mvn enforcer:display-info
...
[INFO] Maven Version: 3.8.7
[INFO] JDK Version: 1.8.0_352 normalized as: 1.8.0-352
[INFO] Java Vendor: Homebrew
[INFO] OS Info - Arch: x86_64, Family: mac, Name: mac os x, Version: 12.6.1
+---+

This preprocessing normalizes various JDK version strings into a standard x.y.z-b version number.
Your required range should therefore use the x.y.z-b format for comparison.
There is an easy way to see how your current JDK string will be normalized, you can enable <<display>> option.

Sample Plugin Configuration:

+---+
Expand Down
13 changes: 7 additions & 6 deletions enforcer-rules/src/site/apt/requireOS.apt.vm
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,13 @@ Require OS Version
information for the current system:

+---+
mvn enforcer:display-info
...
[INFO] Maven Version: 3.8.7
[INFO] JDK Version: 1.8.0_352 normalized as: 1.8.0-352
[INFO] Java Vendor: Homebrew
[INFO] OS Info - Arch: x86_64, Family: mac, Name: mac os x, Version: 12.6.1
mvn --version

Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /usr/local/Cellar/maven/3.8.7/libexec
Java version: 1.8.0_352, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk@8/1.8.0+352/libexec/openjdk.jdk/Contents/Home/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "12.6.1", arch: "x86_64", family: "mac"
+---+

Sample Plugin Configuration:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@
* This goal displays the current platform information.
*
* @author <a href="mailto:brianf@apache.org">Brian Fox</a>
* @deprecated please use {@code mvn --version}
*/
@Deprecated
@Mojo(name = "display-info", threadSafe = true)
public class DisplayInfoMojo extends AbstractMojo {

Expand Down
6 changes: 2 additions & 4 deletions maven-enforcer-plugin/src/site/apt/index.apt
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,12 @@ Maven Enforcer Plugin - The Loving Iron Fist of Maven\x99
The Enforcer plugin provides goals to control certain environmental constraints such as Maven version, JDK version and OS family
along with many more built-in rules and user created rules.

* Goals Overview
* Goal Overview

The Enforcer plugin has two goals:
The Enforcer plugin has a goal:

*{{{./enforce-mojo.html}enforcer:enforce}} executes rules for each project in a multi-project build.

*{{{./display-info-mojo.html}enforcer:display-info}} display the current information as detected by the built-in rules.

* Usage

General instructions on how to use the Enforcer Plugin can be found on the {{{./usage.html}usage page}}.
Expand Down
13 changes: 0 additions & 13 deletions maven-enforcer-plugin/src/site/apt/usage.apt.vm
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,4 @@ Usage
[...]
</project>
+---+

* The <<<enforcer:display-info>>> mojo

This goal is used to determine the current information as detected by the standard rules:

+---+
mvn enforcer:display-info
...
[enforcer:display-info]
Maven Version: 2.0.6
JDK Version: 1.5.0_11 normalized as: 1.5.0-11
OS Info: Arch: x86 Family: windows Name: windows xp Version: 5.1
+---+