https://bz.apache.org/bugzilla/show_bug.cgi?id=64858

            Bug ID: 64858
           Summary: Allow to deploy a WAR whose dependencies are on a
                    Maven repository
           Product: Tomcat 10
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: gael.lal...@gaellalire.fr
  Target Milestone: ------

The war in the Maven repository will not have any lib in WEB-INF/lib, Tomcat
should use Maven dependency resolving to get the dependencies.

Thanks to the missing WEB-INF/lib of the war its size will allow it to be
publish in a Maven repository without a disk usage explosion.

Tomcat could use directly the Maven resolver project
(https://github.com/apache/maven-resolver), however there is a lot of work on
the classloader construction.

I created Vestige (https://gaellalire.fr/vestige/) which is able to manage
classloader very precisely: you can group interdependent jar in same
classloader, you can tell which jar should not be shared because of its use of
static variable ...

I decided to create an API
(https://github.com/vestige-java/vestige.spi.resolver.maven) that dynamic
application can use to create and share classloader.

Then I modified some Tomcat to be sure my API is enough and the POC 
(https://github.com/vestige-java-app/tomcat_vestige) is able to load a this WAR
(https://github.com/vestige-java-app/mywar) using it.

This POC was done on Tomcat 8.0.32, you could copy and correct the code in
Tomcat master or maybe better create an extension point API which will allow to
enable this functionality without overloading any Tomcat class.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to