|Re: [jakartaee-platform-dev] [jakarta.ee-spec][jakartaee-spec-project-leads]Automatic Module NamesinJakarta EE 9|
So that means at least Option D from the document is off the table or gets removed? ;-)
If spec X already declared "jakarta.somespec" in a module-info, there is nothing by Java SE 9 or 11 that would force it to suddenly change to "jakarta.someotherspec" or "jakarta.somespec.api" it would send a very bad signal because just like the JSON specs there are many which are independent from the Jakarta EE platform and work well standalone or in Microframeworks, which at least a dozen have enough momentum and some also internally use JPMS, others like Spring Boot at least consequently define automatic module names and I am pretty sure Spring Boot 3 or 4 won’t suddenly change those either ;-)
I also leave that to Dmitry to share his thoughts, but sorry
"If you have a module-info.class remove it" seems totally unacceptable to me.
There is work that went into those and where a spec comes with SPIs these all need to be in a properly defined module-info.
I won’t use bigger ones for simplicity, but even one of the last files Bill Shannon ever created in March:
Highlights, it is not just the module name, it also defines, which JDK modules are required to run this, and I would not destroy that, needless to say, we’d trample on Bill’s legacy if JAF was forced to remove that file.
From: Werner Keil
There is, it’s called JPMS and once you have a module declaration (both explitic or automatic) in the module-path this works, the behavior is specified by the Java SE platform and I see no reason why we would have to do anything in Jakata EE on that.
As long as those specs that did a great Job in properly declaring module-info are not forced to destroy that (including Services and lots of other stuff) and rip it out only to put it back in again, I guess I could live with removing the automatic-module-name from the POM because that is a lot less work and could even be commented out for now.
However, there shall be no renaming later, so if it’s called "jakarta.activation" or "jakarta.json" in a proper module-info, then it must not change.
Especially those two are fairly independent and used not just by Jakarta EE components or different specs, they are used by other types of applications including Maven plugins etc. or by the Spring stack and there automatic-module-name is also what every Spring JAR I saw lately does, therefore we’d lose an advantage compared to Spring if we removed the automatic-module-name now, but it would help clean the mess that so far only exists in those automatic module names.
From: Thomas Watson
How are we intending developers to use the module names that get specified by the spec JARs? I have not seen any indication that there is a standards based way to build a Jakarta EE application out of JPMS modules. Furthermore there is no specified behavior for how a Jakarta EE platform implementation would load such an application as modules at runtime. Any such support will have to be implementation specific and that implementation likely will need to have a coherent set of modules it provides to implement the platform out of modules. Any such application will likely need to target that specific implementation until there is a standard way of doing this. If Jakarta ever decides modules have to be supported at runtime I am sure it will likely look different from any decisions we try to make today for module names.
For this reason I agree with Scott that it probably does more good to remove the Automatic-Module-Name headers from all specification JARs.
----- Original message -----
Then that is heading in the direction of the non-stated option D to remove all Automatic-Modue-Name headers. Doing no work around this issue for Jakarta EE 9 leaves the headers in a bit of a mess. It would seem that the simplest change timewise would be to mandate their removal. I think we need to draft a voting resolution on 4 different options with the pros and cons of each and decide which route to take. I'll create a draft for comments.
On Wed, Jul 22, 2020 at 9:37 AM Lance Andersen <lance.andersen@xxxxxxxxxx> wrote:
On Jul 22, 2020, at 10:12 AM, Kevin Sutter <sutter@xxxxxxxxxx> wrote:
Agree, Lance. That's why I don't want to push this into the Jakarta EE 9 schedule. We may come up with what we think is the right answer, but until we really dive into the JPMS impact across the Jakarta EE board, we'll probably have to make changes later. I would prefer to leave things as-is for Jakarta EE 9 -- except for maybe the four items we have identified as getting rid of the 'java' prefix.
This is why we held off adding automatic module names prior to the transition to Eclipse as we felt after some lengthy internal discussions that this should only be done once and given the transition, it was best to wait.
Scott, I would not add the manifest element without finalizing on a name. The intent of this element was to ease the transition to the module world, but if the name is not going to be firmed up, i would wait as it adds not value and just causes extra churn to the developers.
Back to the top