To be clear, it's not necessarily having _all of a package_. It's more about all the reachable class references. For instance jdeps looks at classes and finds any reachable references. So does bnd for calculating OSGi metadata.
So the issue is not really about packages, it's about having missing class references and whether those should be elided in configuration, or simple fixed in packaging (which again does not necessarily mean full packages :) - Ray On Thu, Jun 11, 2020 at 3:20 PM Rémy Maucherat <r...@apache.org> wrote: > On Thu, Jun 11, 2020 at 9:01 PM Mark Thomas <ma...@apache.org> wrote: > >> Hi, >> >> As discussed in PR#298 , properly/fully/correctly supporting JPMS / >> OSGi gets trickier than necessary with the bootstrap JAR because of the >> way we currently package it with the minimum that it needs and duplicate >> some classes. >> >> My simplistic understanding is that having all of a Java package in a >> single JAR makes JPMS and OSGi a lot simpler. Further, our current >> approach may not be 100% compatible with one or both of them. >> >> The trade-offs involved here are: >> - having all of a package in a JAR simplifies JPMS and OSGi >> - We want to keep the bootstrap JAR small (is this much of a concern?) >> - We don't want duplicate code (maintenance overhead) >> - Bootstrap uses various utility functions from the Tomcat code base >> >> I'm wondering if there is a better approach we could adopt that makes >> JPMS / OSGi simpler without compromising too much on the other trade-offs. >> >> The sort of thing I have in mind is: >> - move everything out of o.a.c.startup that doesn't need to be there to >> either some new package (name TBD) or an existing package >> > > That means way too many risky changes IMO, the listeners in the startup > package are often extended to add features so they need to remain in the > catalina.startup package. > > >> - create an o.a.c.startup.util package and, during the build process, >> copy and package rename any utility classes the remaining classes in >> o.a.c.startup depend on >> > > Good idea, when I read your requirements, I thought about package > renaming. So I think we could use package renaming for everything that > bootstrap.jar has to a tomcat.bootstrap or catalina.bootstrap package. > > Rémy > > >> >> The end result should be a nice clean mapping of packages to JARs. >> >> Thoughts? >> >> Mark >> >> >> >>  https://github.com/apache/tomcat/pull/298 >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: dev-h...@tomcat.apache.org >> >> -- *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> (@Liferay)