jboss-javassist/javassist

javassist.jar (3.29.1-GA) found in nexus repository doesn't define Automatic-Module-Name

dakusui opened this issue · 6 comments

I found that the javassist.jar (3.29.1-GA) doesn't define Automatic-Module-Name in the META-INF/MANIFEST.MF file.

https://oss.sonatype.org/service/local/repositories/releases/archive/org/javassist/javassist/3.29.1-GA/javassist-3.29.1-GA.jar/!/META-INF/MANIFEST.MF

This makes my project that depends on the javassist result in the following compilation time warning:

[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ floorplan-exampleapp-tests ---
[WARNING] *****************************************************************************************************************************************************************
[WARNING] * Required filename-based automodules detected: [javassist-3.29.1-GA.jar, osynth-2.0.0.jar]. Please don't publish this project to a public artifact repository! *
[WARNING] *****************************************************************************************************************************************************************

It is actually, defined in the source tree and in the javaassist.jar found in the release history.

I'm now thinking that some step in the release process, somehow the entry is removed mistakenly.

(Since this is the first time for me to work seriously with Java's module system under Maven, I might be misunderstanding something, though)

So shall we rename javassist-3.29.1-GA.jar to javassist-3.29.1.GA.jar ?
Yes, the spec. of the module system is fairly complicated. I'm also a novice. Any suggestions to fix the problem are welcome.

Sorry, I think I was not clear in the ticket description.
This is an issue in the binary file downloaded` from the nexus repository (as stated in the subject).
The binary found here: https://github.com/jboss-javassist/javassist/releases/tag/rel_3_29_1_ga and the source code is completely fine, I think.
(And renaming the jar wouldn't fix the issue, I think)

Let me explain my understanding of the situation, first:
I am assuming that the binary is uploaded to the maven's central repository as a part of your release procedure.
And somewhere in the procedure, MANIFEST.MF is failed to be included in the .jar file, while a correct archive was uploaded to the github side.

EDIT If you could share how the release process of javassist goes, perhaps, I can suggest some solution.

Another finding:

I fixed my library osynth with this pull request and the problem went away.

https://github.com/dakusui/osynth/pull/18/files

(It became possible to access my module with the module name com.github.dakusui.osynth.)

However, I can't be sure the same fix works for the javassist library because the situation is different and annoying. (I can't explain why the binary we see in the github side has MANIFEST.MF and Automatic-Module-Name entry in it)

FYI: I sent you a friend request over facebook to exchange information rather than making this ticket's comment history too long. Please accept it if you don't mind and it would help.

I've accepted your request but let me apologize in advance because I'm not an active facebook user...

Thank you very much for accepting my friend request.
I sent you a message including my private e-mail.

Also, I have opened a pull request that makes the project generate a .jar file that contains proper MANIFEST.MF on mvn clean package.
However, we need to upload the binary to the Maven's central repository, somehow.
Not sure if you are the person who does it usually for the javassist project...