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

Generate META-INF/services from module-info.java #85

Open
mtdowling opened this issue Apr 10, 2019 · 3 comments
Open

Generate META-INF/services from module-info.java #85

mtdowling opened this issue Apr 10, 2019 · 3 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@mtdowling
Copy link

Based on the discussion in #84, I'm convinced that library authors that create modular JARs should define their service providers in both module-info.java and in META-INF/services to ensure that their JARs work on the classpath.

Given how important it is to make JARs work on the classpath and how poorly supported in general JPMS is today (excluding this library!), I think it would be very useful for this library to have the option to generate META-INF/services files for each service provider detected in a module-info.java. If the library detects that META-INF/services already exist or that any of the service providers use the static provides method, then it would fail the build.

@big-andy-coates
Copy link
Collaborator

Sounds like a great option. Happy to accept a PR.

@big-andy-coates big-andy-coates added the help wanted Extra attention is needed label Feb 20, 2024
@SiboVG
Copy link

SiboVG commented Mar 24, 2024

Hey @big-andy-coates I'd like to work on this, but I have 0 experience with this repo's codebase. Could you recommend how and where I should implement this feature?

@big-andy-coates
Copy link
Collaborator

Hi @SiboVG - it would be great if you could. I don't have that much familiarity with the code base I'm afraid. I've taken over maintenance of the repo to keep it alive.

I would suggest that this feature should be implemented as its own Gradle task, and will probably need to be disabled by default for backwards compatibility. Maybe with an extension option to enable it. Please also ensure the main docs are updated to cover the new functionality and suitable tests are added.

I'm happy to help review and guide as you go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants