pgjdbc-ng icon indicating copy to clipboard operation
pgjdbc-ng copied to clipboard

Add module descriptors inside multi-release jar (#464)

Open A248 opened this issue 4 years ago • 4 comments

Fixes #464 . Per my comment on that issue, I've proceeded with my assumption that the driver's public API consists of the api and jdbc packages and sub-packages. If that's not the case, let me know and I will modify the module metadata accordingly.

As this PR raises the build-time JDK requirement to Java 11, I've added the --release flag to ensure compatibility. The release flag is like Animal-Sniffer, but better. It prevents you from calling Java 11 methods allowing you to remain Java 8-compatible – it even handles covariant return types.

Because of the JDK 11 build-time requirement, I've updated the Github workflow as well.

A248 avatar Jul 11 '21 21:07 A248

Would you like an integration test to verify the contents of META-INF/services/ match up with the provides directives in the module descriptor?

A248 avatar Jul 12 '21 20:07 A248

@A248 Can you check the build error? It doesn't seem to build at all on CI.

kdubb avatar Aug 14 '21 19:08 kdubb

@A248 Can you check the build error? It doesn't seem to build at all on CI.

I see it now. However, I tried and failed to reproduce the failure locally. Both gradle classes and gradle clean classes succeed for me without issue – these task runs also create the driver and spy jars.

I'd have to guess it relates to Gradle's caching mechanisms, so I've added a temporary commit to check that, which I'll revert later. The workflow run needs your approval, though.

A248 avatar Aug 15 '21 01:08 A248

@kdubb I came back to this and tackled the build failure. I managed to reproduce the compilation failure and solve the issue.

Let me know if there are any other changes I need to make.

A248 avatar Nov 18 '21 22:11 A248