I work on a platform team that supports a large number of SpringBoot microservices, mostly running Java 8. We've been working on a Java 11 upgrade for a while now. Our first steps will be basically "lift and shift", not attempting any functional changes to take advantage of Java 11 features.
I do want to implement "package sealing" for the internal platform libraries we construct, which isn't the same as Java 9 modules. After I started investigating this, I wondered about all of the third-party artifacts we support, mostly the Spring Framework. I notice that even the latest versions of the Spring Framework jars don't specify package sealing, and they don't specify Java 9 modules either.
Has anyone ever considered augmenting the Spring Framework artifacts provided within an enterprise to either implement package sealing or adding a Java 9 module specification? I've run into some teams that attempted to implement "uber jars" for their services that provided many of the classes we support, but sometimes the wrong versions of those artifacts. I'd like to do something to prevent that from working at all, so it makes it perfectly clear you can't do that.