https://bz.apache.org/bugzilla/show_bug.cgi?id=62355
--- Comment #8 from Andreas Beeker <kiwiwi...@apache.org> --- TL;DR: thank you for the comments; why we should prepare for Java 9 usage; why I think the one-big-jar approach is not good First of all I want to thank you for your comments. Although this kind of discussion is recuring over time, I think it is often necessary to gather the current opinions and not anticipate what everyone could think. Think of it, as a kind of test balloon like we had it with Java 8. (In reply to Nick Burch from comment #5) > This does seem to have a lot of breaking changes for users... As I have the impression, that you might be overwhelmed by the amount of changed classes, I'd like to give you a short overview of what has changed. I've tried to minimize the effects, so it's mainly an organize imports in user code - which the usual IDE is able to do, which we can explain in therelease notes and which might be not so suprising for a new major version If you look at the package moves there are the following notable changes: - extractor and converter classes: - There were some cross references between hwpf and hssf -> now in common - Ooxml, Main, Scratchpad related extractors were in the same package. In other places we separate those - why should we put all of them in the same "pot"? - POIXML* classes: search for "org.apache.poi.POIXML" replace with "org.apache.poi.ooxml.POIXML" ... a no-brainer > ... for something, which I'm not sure many people are using (and which has > had a very mixed > response at best) ... but more and more will use, and as soon as you added a module-info.java to the Java 9 user module, my IDE doesn't compile anymore because of the split packages. So we effectively block developers to use the module-info. I don't understand why we wouldn't clean-up the packages on one hand, but on the other hand try to stay compatible with Java 10+, i.e. the commons compress change. If the user code is also a library and even wouldn't use module-info, the add-opens need to be passed to their users. > and which either needs us to move everything to Java 9, or potentially breaks > loads of tools including Android ones With automatic modules we don't need to move everything now. If we want to stay (?) or become Android compatible, we need to check anyway for the feature set (https://developer.android.com/studio/write/java8-support) > What if we just produced one additional jar, poi-all-java9 ... ? If we (would) have the three options ... - keep the packaging - have format specific modules - "the-one-to-rule-them-all" :) ... is this really the prefered option for the future? I'd like to aim for format specific modules + extras and try to minimize or straighten the package dependencies in future releases - as far as I understand, this is also the goal of Jigsaw, i.e. to have a stronger encapsulation and better maintainability. Providing the one big jar is a step back for me - so for the time being, I would rather keep the packaging than introducing another artifact. So last time we argued about format-specific modules, one argument was, that it is already so confusing to have main, scratchpad, poi-ooxml, poi-ooxml-schemas. So I would say, introducing an additional package doesn't make it better. > We'd then just need to make a smaller number of changes for ... Java 9/10 > fixes ... I think we probably don't go the way of multi release jars, so as far as the changes are compatible with the choosen Java version, we will be ok ... otherwise we need to decide about upgrading. > Given how many people we see on the mailing list and on stackoverflow using > very old versions of POI, just the move from 3.x to 4.x is going to put off > some people upgrading, and a whole bunch of broken imports is probably going > to > mean loads of users don't upgrade. Actually my hope is, the 4 in front might wake up a few of those lingering on 3.9. As we saw on the stackoverflow posts, mostly the 3.9 users don't even try to use a newer version first. They don't complain about incompatible changes ... they simply don't try it ... If I compare the problems of fixing the imports vs. the inability to use POI in jigsaw user project, I rather would like to help the second group. (In reply to Mark Murphy from comment #6) > If we provide a single jar for Java 9 in 4.0, how will that affect our > ability to provide a proper module in the future? I guess we can change that from major to major version. But there was a reason for jigsaw as mentioned above, and I don't want to work against it. -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org For additional commands, e-mail: dev-h...@poi.apache.org