Skip to content

Java version parsing fails with some JDKs, module-info.java is not found #162

@yrodiere

Description

@yrodiere

With some JDKs, System property java.version returns a single number, for example OpenJDK 17 early-access builds use 17.

This means the following parsing code in Moditect will fail:

public final class JavaVersionHelper {
private static final String VERSION_REGEXP = "^(\\d+)\\.(\\d+)\\.(\\d+).*";

Version javaVersion(String versionString) {
Matcher matcher = VERSION_PATTERN.matcher(versionString);
if (!matcher.matches()) {
warn("The java version " + versionString + " cannot be parsed as " + VERSION_REGEXP);
return null;
}

As a result, #141 reappears: Moditect is unable to detect module-info.java if it's in versions/<some-version>.

[INFO] --- moditect-maven-plugin:1.0.0.RC2:add-module-info (add-module-infos) @ hibernate-search-util-common ---
writing to /home/yrodiere/workspaces/main/hibernate-search/util/common/target/moditect/org.hibernate.search.util.common/versions/9/module-info.java
[WARNING] The java version 17 cannot be parsed as ^(\d+)\.(\d+)\.(\d+).*
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Hibernate Search Root POM 6.2.0-SNAPSHOT:
[INFO] 
[INFO] Hibernate Search Root POM .......................... SUCCESS [  1.192 s]
[INFO] Hibernate Search Build - Config .................... SUCCESS [  3.128 s]
[INFO] Hibernate Search Build - Surefire Extension ........ SUCCESS [  1.637 s]
[INFO] Hibernate Search Parent POM for Internal Artifacts . SUCCESS [  1.085 s]
[INFO] Hibernate Search Utils - Internal - Test - Common .. SUCCESS [  4.502 s]
[INFO] Hibernate Search Utils - Internal - Test - ORM ..... SUCCESS [  1.057 s]
[INFO] Hibernate Search Parent POM for Public Artifacts ... SUCCESS [  1.109 s]
[INFO] Hibernate Search Utils - Common .................... FAILURE [  7.770 s]
[INFO] Hibernate Search Engine ............................ SKIPPED
[... ommitted for brevity ...]
[INFO] Hibernate Search Reports ........................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  21.997 s
[INFO] Finished at: 2022-03-31T15:28:32+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.moditect:moditect-maven-plugin:1.0.0.RC2:add-module-info (add-module-infos) on project hibernate-search-util-common: Execution add-module-infos of goal org.moditect:moditect-maven-plugin:1.0.0.RC2:add-module-info failed: Couldn't parse /home/yrodiere/workspaces/main/hibernate-search/util/common/target/moditect/org.hibernate.search.util.common/module-info.java -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :hibernate-search-util-common

Metadata

Metadata

Assignees

No one assigned

    Labels

    releasedIssue has been released

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions