-
-
Notifications
You must be signed in to change notification settings - Fork 315
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
Draft version of a modularized twelvemonkeys #685
base: master
Are you sure you want to change the base?
Conversation
Modularized version of the project. - Jar names have changed (sorry! I blame moditect) - Unit tests are not modularized. This should probably happen... - I'm not happy with needing a module-info for projects that have no java source, but this is a draft version... wiser folks than me might be able to find a better solution. - The module-info files should be considered draft versions. Modules provide security, by allowing you to not export packages that don't need to be exported, so there's some argument for a project maintainer to sort out which packages should be public and which should be private...
Backing out an aborted edit
Thank you! I'll look into it! I'm in the process of restructuring the entire library for a version 4. The main things I want to do, is:
I'm also considering ditching Java 8 support altogether, and require Java 11 from this version, but not fully decided yet. Anyway: 👍 |
I'd suggest you to keep Java 8 support - if there's any indicator why, look at RHEL which extended their own java 8 support into 2026. For better or worse, Jigsaw(modules) broke backward-compatibility in Java in a big way, we'll be seeing the after-effects of that for years to come. If you're restructuring things more broadly, we do have more options where modules are concerned. (I'd feel better about this if there was better direct support for multi-release modules, but meh. We can make our own hammers big enough to make all the bits fit). True multi-release jars need to be compiled with different target versions of Java. That means multiple compile phases.
|
I have to add a vote for keeping Java 8 support. Also on the topic of restructuring I would like to add a request: |
Just to make sure I understand this wish... You would like to have the SPI config in I think if we do this, we'll need to build two customized JARs for each plugin (one as we do now with everything, and one without the SPI config), as it would otherwise require "normal" usage to depend on twice as many JARs... Can you file a separate issue for this, and describe the use case, so we can discuss this separately? |
Some key notes here:
//Torrenal
PS: 'static' is module-info speak for 'optional'