adoroszlai opened a new pull request, #74:
URL: https://github.com/apache/ratis-thirdparty/pull/74

   ## What changes were proposed in this pull request?
   
   - Replace `maven.compiler.source` with `maven.compiler.release`
   - Keep `maven.compiler.target`, but set it to the same as 
`maven.compiler.release`.  This is required because Apache parent POM v35 uses 
`.target` as the source of truth.
   - Remove custom `java.min.version` and `maven.min.version` properties, and 
`maven-enforcer-plugin` executions that reference these.  Enforcement is 
inherited from Parent POM 
([properties](https://github.com/apache/maven-apache-parent/blob/apache-35/pom.xml#L99-L100),
 
[execution](https://github.com/apache/maven-apache-parent/blob/apache-35/pom.xml#L350-L381)).
   - Remove reference to non-existent property `javac.source`.
   - Bump `extra-enforcer-rules` version.
   
   https://issues.apache.org/jira/browse/RATIS-2362
   
   ## How was this patch tested?
   
   Tested with various Java and Maven versions.  For successful builds also 
verified generated Java `.class` file version.
   
   ```
   mvn -V -Ptest -Prelease clean verify
   file 
test/target/classes/org/apache/ratis/thirdparty/demo/common/SslConfig.class
   ```
   
   Exactly minimum required versions:
   
   ```
   Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
   Java version: 1.8.0_462, vendor: Private Build, runtime: 
/usr/lib/jvm/java-8-openjdk-amd64/jre
   ...
   [INFO] --- maven-enforcer-plugin:3.5.0:enforce (enforce-maven-version) @ 
ratis-thirdparty ---
   [INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion 
passed
   [INFO] 
   [INFO] --- maven-enforcer-plugin:3.5.0:enforce (enforce-java-version) @ 
ratis-thirdparty ---
   [INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion 
passed
   ...
   [INFO] BUILD SUCCESS
   
   test/target/classes/org/apache/ratis/thirdparty/demo/common/SslConfig.class: 
compiled Java class data, version 52.0 (Java 1.8)
   ```
   
   Newer versions:
   
   ```
   Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
   Java version: 21.0.8, vendor: Ubuntu, runtime: 
/usr/lib/jvm/java-21-openjdk-amd64
   ...
   [INFO] --- enforcer:3.5.0:enforce (enforce-maven-version) @ ratis-thirdparty 
---
   [INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion 
passed
   [INFO] 
   [INFO] --- enforcer:3.5.0:enforce (enforce-java-version) @ ratis-thirdparty 
---
   [INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion 
passed
   ...
   [INFO] BUILD SUCCESS
   
   test/target/classes/org/apache/ratis/thirdparty/demo/common/SslConfig.class: 
compiled Java class data, version 52.0 (Java 1.8)
   ```
   
   Targeting Java 17:
   
   ```
   $ mvn -V -Ptest -Prelease clean verify -Dmaven.compiler.release=17
   Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
   Java version: 21.0.8, vendor: Ubuntu, runtime: 
/usr/lib/jvm/java-21-openjdk-amd64
   ...
   [INFO] BUILD SUCCESS
   
   test/target/classes/org/apache/ratis/thirdparty/demo/common/SslConfig.class: 
compiled Java class data, version 61.0 (Java SE 17)
   ```
   
   Maven too old (fails due to several plugins, even before enforcer):
   
   ```
   Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 
2019-08-27T17:06:16+02:00)
   Java version: 1.8.0_462, vendor: Private Build, runtime: 
/usr/lib/jvm/java-8-openjdk-amd64/jre
   ...
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-clean-plugin:3.5.0:clean (default-clean) on 
project ratis-thirdparty: The plugin 
org.apache.maven.plugins:maven-clean-plugin:3.5.0 requires Maven version 3.6.3
   ```
   
   Maven older than custom requirement:
   
   ```
   $ mvn -V -Ptest -Prelease clean verify -DminimalMavenBuildVersion=3.9.0
   Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
   Java version: 1.8.0_462, vendor: Private Build, runtime: 
/usr/lib/jvm/java-8-openjdk-amd64/jre
   ...
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-enforcer-plugin:3.5.0:enforce 
(enforce-maven-version) on project ratis-thirdparty: 
   [ERROR] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion 
failed with message:
   [ERROR] Detected Maven Version: 3.6.3 is not in the allowed range [3.9.0,).
   ```
   
   Java older than target:
   
   ```
   $ mvn -V -Ptest -Prelease clean verify -Dmaven.compiler.release=17
   Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
   Java version: 1.8.0_462, vendor: Private Build, runtime: 
/usr/lib/jvm/java-8-openjdk-amd64/jre
   ...
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-enforcer-plugin:3.5.0:enforce 
(enforce-java-version) on project ratis-thirdparty: 
   [ERROR] Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion 
failed with message:
   [ERROR] Detected JDK version 1.8.0-462 
(JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre) is not in the allowed range 
[17,).
   ```
   
   CI:
   https://github.com/adoroszlai/ratis-thirdparty/actions/runs/19389063242


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to