-
Notifications
You must be signed in to change notification settings - Fork 5
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
Add module-info to TCK #47
Comments
There are several dependencies not compatible with JPMS, especially MutabilityDetector and JBoss Test Audit. Therefore, if we do not find a quick and proper solution for the non-modular dependencies, we may have to abandon the idea. |
I'm not sure to understand the meaning of dependency that are not compatible. Are they "classical" dependencies, without If those dependencies try to load a JAR file dynamically (after JVM startup) using their own |
Essentially the JBoss libraries break it (and JBoss are notorious JPMS-haters, hence they don't really care about it in places like Jakarta EE, too)
But the missing Hamcrest import makes things even a bit worse, because if
The JBoss JARs include hyphens, and are not recognized like MutabilityDetector. Maybe they need to be substituted with other strings, do you know something about that? |
Hamcrest was just used in a single place and while |
@desruisseaux I think I found the missing declaration for the JBoss modules:
Which seems a fallback by JPMS if the JAR file is not a proper qualifier (e.g. contains "-" or similar characters) There is still one usage of Hamcrest in |
@desruisseaux I am out of ideas now.
I created an experimental branch with everything I did, feel free to check it out and try to fix it. Maybe the whole Antrun plugin option used in the API might help, I would rather not use the Toolchain plugin, but if you prefer, please do. |
I have not yet looked at the experiment, but my first thoughts would be:
|
The JBoss plugin is crucial to the TCK, it binds all tests to the spec entries. Same for TestNG, it would be a tremendous effort if not impossible to change the test harness to JUnit 5 now. The error is that Somehow
I don't think there is any more problem with JPMS, even the libraries without explicit module-info are recognized, all I had to do is remove the one that really duplicated the packages from another ( |
I was now able to enforce the Java version for tests. Now the problem of MutabilityDetector duplicating several packages of Hamcrest remains. And several other libraries use Hamcrest makes it almost impossible to avoid that, so hopefully it can be replaced by something else like PIT. @desruisseaux Do you know or use another mutability test library? |
It seems It seems, MutabilityDetector is quite powerful (although we never used it in our TCK or Unit Tests, so I cannot say, how well it works) but has not seen releases in over a year now. We may show in unit-tck-usage how additional tests like PIT (via the Maven plugin), SigTest (also has a Maven plugin through NetBeans) or MutabilityDetector could work. |
@desruisseaux Please review and approve (if you find it OK) #52. Serializable is currently not expected by the API, I do not want to unwrap 2.2 which was available for almost 6 months, but we may revisit that requirement in the future, if it's fine with all compatible implementations. Please check the |
Allowing to configure the TCK test suite via
ServiceConfiguration
in amodule-info
instead ofMETA-INF:
The text was updated successfully, but these errors were encountered: