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

Java 11 painpoints #2401

Closed
hgschmie opened this issue Jun 20, 2023 · 11 comments
Closed

Java 11 painpoints #2401

hgschmie opened this issue Jun 20, 2023 · 11 comments
Assignees

Comments

@hgschmie
Copy link
Contributor

  • conversion to modules may be necessary but will be hard

  • javadocs in java 11 are a mess. The aggregation build does not work with modules and I could not figure out how to bend the javadoc plugin to my will. JPMS docs are a mess. There is some issue with --module-source-path but I could not figure this out.

    • for now, we build java 8 style javadocs
@hgschmie
Copy link
Contributor Author

@hgschmie hgschmie self-assigned this Aug 18, 2023
@stevenschlansker
Copy link
Member

Sounds like we should split out test utilities from test cases, and have the former exist as a library jar, and the latter test-jars not be used as a dependency ever.

@hgschmie
Copy link
Contributor Author

@hgschmie
Copy link
Contributor Author

Sounds like we should split out test utilities from test cases, and have the former exist as a library jar, and the latter test-jars not be used as a dependency ever.

The module system supports a setup where the test code is in regular jars and the main artifacts are JPMS modules just fine. Maven tooling is simply buggy. I am fairly certain that fixing the plugins is doable and then we can ship fully JPMS enabled artifacts with minimal impact to our development process.

I refuse to start playing games with reshuffling code from test to regular artifacts (which then in turn would be their own JPMS modules, which in turn would need to use different packages (because JPMS modules must not overlap), which in turn changes visibility rules for our code (package private goes out of the window, we now need to have additional public classes, which we then mask out in the module-info files with exports xxx to module-a, module-b etc. It is all very unpleasant. I prefer to fix the tooling once and keep our code organized.

Right now, I think we will stick with Automatic-Module-Name for a bit longer.

@hgschmie
Copy link
Contributor Author

I have a workaround for codehaus-plexus/plexus-languages#164

@hgschmie
Copy link
Contributor Author

opentable/otj-pg-embedded#184 needs to be merged and resolved, otherwise we can not publish the otj test code.

@hgschmie
Copy link
Contributor Author

https://issues.apache.org/jira/browse/SUREFIRE-2191 - stops tests in jdbi3-testing from working. No resolution or workaround.

@hgschmie
Copy link
Contributor Author

https://issues.apache.org/jira/projects/MJAVADOC/issues/MJAVADOC-767 - patch has been applied, should be in the next release

@hgschmie
Copy link
Contributor Author

https://issues.apache.org/jira/browse/MJAVADOC-769 blocks generating java 11 compatible javadocs even with the automatic module names.

@hgschmie
Copy link
Contributor Author

Fix for MJAVADOC-769 proposed: apache/maven-javadoc-plugin#227

There is a workaround as well, by building the guice module against guice 7.0.0, not 5.1.0

@hgschmie
Copy link
Contributor Author

closing this issue in favor of tracking things here: https://github.com/jdbi/jdbi/blob/master/JPMS-SUPPORT.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants