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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions