1 Reply Latest reply on Jul 5, 2010 6:17 PM by Aslak Knutsen

    Auxiliary archives in pre-Servlet 3.0 containers

    Dan Allen Master

      We quickly realized as soon as we started working on the Servlet container integrations (e.g., Tomcat, Jetty) that the auxiliary archives were going to present a problem. Auxiliary archives can be added to a WAR application archive as a library (JAR) containing a META-INF/web-fragment.xml in containers that support Servlet 3.0 (which is not yet supported in a Jetty or Tomcat mainstream release) or added as a web archive (WAR) to an EAR for earlier containers.

       

      However, to support pre-3.0 Servlet containers, either the packager needs to merge multiple WAR files or the auxiliary archive appender needs to be able to modify the application archive. I prefer the second approach, as I think it will provide more flexibility for auxiliary archives that are introducing some sort of integration (such as the test execution protocol).

       

      public interface AuxiliaryArchiveAppender
      {
         /**
          * Create an archive containing the needed resources for this extension 
          * to run in-container. This method can optionally modify the application
          * archive to add integration points (e.g., add a servlet definition to web.xml).
          * 
          * @return Archive of any type
          */
         Archive<?> createAuxiliaryArchive(Archive<?> applicationArchive);
      }