Hello
I'm trying to do some refactoring of Pax Web for coming 8.0.0 (R7) release. The goal is to have support for Undertow 2, Tomcat 9 and Jetty 10 (Undertow 2 and Tomcat 9 are already supported in Pax Web "special" 7.3.x branch).
I also want to take the opportunity and review some interfaces and how Pax Web generally handles resources.
For interfaces, org.ops4j.pax.web.service.WebContainer has 54 methods, including 7 overridden methods named "registerServlet"... org.ops4j.pax.web.service.spi.ServerController also grown too big (IMO). I had to create org.ops4j.pax.web.service.spi.ServerControllerEx to not break semantic versioning - now I want to merge them into one.
org.ops4j.pax.web.service.spi.Configuration interface is also strange - it has way too many methods, adding new option requires API change and there's only one implementation - I don't see any benefit in keeping current shape of this interface...
As for resource handling, I had case where WAR bundle with embedded primefaces.jar didn't work - because MyFaces wasn't able to find all configs (faces, taglib and facelets) in such WAR. The reason is mixing classloader and non-classloader resource loading.
Also xbean-finder we use in Pax Web now doesn't use "new" Wiring API at all to load resources.
I'm not ready yet with the changes, but I think I can show something soon. Full refactoring worked well (IMO) with Pax Logging, where not only I've unified the way 3 logging libraries are used, but I also increased number of integration tests from 1 to 120.
regards
Grzegorz Grzybek