We use Undertow as the basis for our custom webserver and I have been very happy with its design and functionality. Before saying anything further, thank you for all the work Undertow represents, and for allowing us to benefit from it gratis.
One thing I would like, though, is better isolation of the core package from everything else. Right now each time I update the core I have to follow a bit of a rabbit trail through Maven to isolate only the bar minimum number of JARs actually needed due to some fairly important overall size constraints, and then build our application server JAR running the JAR through ProGuard, ignoring scores of unresolved references in the process, followed by runtime testing to make sure I haven't excluded anything that is actually needed. The effort involved causes me to minimize how often I update Undertow to once every year or two.
At present for core 2.2.3 I have to separately source updates for ALPN, JBOSS logging, JBOSS threads, wildfly-common, xnio-api, and xnio-nio. ALPN I completely understand and it's been stable forever. Threads too. But since we want to just use the JVM logging features JBOSS logging seems, well, a surprising dependency -- it feels backwards to me, since I believe JBOSS logging should be an optional addition to the JVM logging support, not the other way around. So too does wildfly-common, since it seems that should not be used by Undertow at all, which is a dependency of Wildfly, and should not therefore have a dependency on WildFly. But by far the biggest concern is the myriad implicit dependencies that ProGuard detects which have to be ignored (with their absence causing zero problems over the years).
It would be lovely if Undertow 3 cleaned up this situation. It would be simply amazing if a single, minimal Undertow core JAR contained everything it needs, and nothing it doesn't.
Thanks for hearing me out and considering this.