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

    Auxiliary archives in pre-Servlet 3.0 containers

    dan.j.allen

      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);
      }