I don't think this is the case actually. If you use CXF as-is right now in modular application, its components will be loaded as automatic modules, implicitly. The only step forward we are taking is to hint JVM what the name of the automatic module should be (instead of relying on the automatic conversions). Rules don't change, the presence of automatic module name in the manifest does not make the JAR a named module, only module-info.java will do that (and this would be a large and risky change indeed). But the presence of the better name would help us to do migration to module-info.java a bit more smoothly, since the module name won't change but semantics of the module will (one by one they should become named modules).
RMB> yep RMB> issue is exactly this one: automatic modules are a one way path, you can't go back on manual modules since you RMB> exposed the world and would introduce a breaking change modifying it. RMB> The other one I tried to mentionned is: what about all the cases where CXF will be deployed on java 9 but not in RMB> the root classloader (tomcat to cite a random case) which doesnt support the new SPI loading? You are broken :( RMB> Romain Manni-Bucau RMB> @rmannibucau | Blog | Old Blog | Github | LinkedIn RMB> 2018-01-02 14:54 GMT+01:00 Andriy Redko <[email protected]>: RMB> I might be mistaken (sorry, haven't worked with Jigsaw closely yet), but I think the service loader would work the same RMB> way in case of named module and automaticaly named module. The only differences would be contraints/rules/visibility: automaticaly RMB> named module just implicitly open/export/import everything while named module should be picky and precise. RMB>> Or the worst since you dont expose the "api" but all the classes and breaks SPI since service loader loading is different in named modules, no? RMB>> Le 31 déc. 2017 19:15, "Andriy Redko" <[email protected]> a écrit : RMB>> I am not sure about plugin part, to be honest. I would better craft the module-info.java by hand (but use RMB>> the tooling, jdeps f.e., to get the initial list of modules) and have it in the source tree for each module, RMB>> so to keep the history, etc. That would be aligned with Sergey's suggestion to have Java 9 master sometime RMB>> in the future. RMB>> But, by and large, you may be right and the plugin is the viable option. Still, if 99% of the CXF dependencies are RMB>> going to be automatic modules nonetheless, what it will buy us? And looking into other projects, that seems to RMB>> be the starting point for many. Anyway, I would prefer to get it all and right now :-D but realistically, I see RMB>> the automatic module name to be the less riskier approach to begin with (just a manifest change), not necessarily RMB>> the best one though. RMB>> Best Regards, RMB>> Andriy Redko RMB>>> Hmm, shout if I didn't get your comments properly and my comment is obvious but I think 1 and 3 are fine - that's RMB>>> why I proposed them - because you can create the module-info.java with java 8. This is what does the plugin I RMB>>> mentionned, writing it directly with java 9 (long story short it has a module-info parser and writer). RMB>>> Romain Manni-Bucau RMB>>> @rmannibucau | Blog | Old Blog | Github | LinkedIn RMB>>> 2017-12-31 16:58 GMT+01:00 Andriy Redko <[email protected]>: RMB>>> Hi Romain, RMB>>> I think there are 2 parts regarding modules: 1) using CXF from modularized RMB>>> applications and 2) release/redesign CXF in a modular fashion (I mean Java 9 modules). RMB>>> The 2nd part is where we are heading eventually but we won't be trully modular till RMB>>> all our dependencies are available as modules as well. The idea of adding RMB>>> automatic module name is helping out with the 1st part. Regarding your questions RMB>>> though: RMB>>> 1. Adding module-info.java would mean, at least, to branch the artifacts (java9+ / java8). RMB>>> 2. Yes, I think it makes sense, this is the recommended way, but we should better make a RMB>>> proposal first (as part of the JIRA Dennis created). RMB>>> 3. I think this is the only way (as module-info.java won't compile with Java 8) RMB>>> Automatic modules is a good start (arguably, for sure), because from the efforts RMB>>> perspetive, it looks doable in a short time vs adding proper module-info.java to RMB>>> each module, which would take significantly more. Thoughts? RMB>>> Best Regards, RMB>>> Andriy Redko RMB> RMB>>> Hi guys, RMB> RMB>>> Few random notes/questions: RMB> RMB>>> 1. Why not using https://github.com/moditect/moditect/blob/master/README.md RMB> RMB>>> and assume the moduleinfo instead of working it around with automatic RMB> RMB>>> module name? RMB> RMB>>> 2. For the naming it should really be someting like $group.$module IMO, RMB> RMB>>> probably with underscores instead of iphens for the module and maybe RMB> RMB>>> removing cxf from the module dince it is in the package RMB> RMB>>> 3. Is it possible to double relezse each module, one with the module info RMB> RMB>>> (if you do 1, or without the automatic module name if you dont) and a RMB> RMB>>> qualifier jdk9 and keep current ones as today until the whole stack is java RMB> RMB>>> 9 (transitively). Easy to break consumers otherwise. RMB> RMB>>> Le 31 déc. 2017 13:38, "Dennis Kieselhorst" <[email protected]> a écrit : RMB> >>>> > Exactly, that's the idea, updating the manifest with RMB> >>>> Automatic-Module-Name. We could also add a sample RMB> >>>> > project (this would be Java 9 based) to illustrate the basic usage of RMB> >>>> CXF from/within green field Java 9 RMB> >>>> > modular project (although we may need to do more work here I suspect). RMB> >>>> Thanks. RMB> >>>> I've opened CXF-7600 for it. What should be the Automatic-Module-Name RMB> >>>> for cxf-core? Just org.apache.cxf? Or org.apache.cxf.core which doesn't RMB> >>>> match the package name structure? RMB> >>>> Regards RMB> >>>> Dennis
