deferred apache and quickstart until 9.2
diff --git a/apache-jsp/pom.xml b/apache-jsp/pom.xml
deleted file mode 100644
index 252f677..0000000
--- a/apache-jsp/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.eclipse.jetty</groupId>
-    <artifactId>jetty-project</artifactId>
-    <version>9.1.4-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>apache-jsp</artifactId>
-  <name>Jetty :: Apache JSP</name>
-  <url>http://www.eclipse.org/jetty</url>
-  <packaging>jar</packaging>
-  <properties>
-    <bundle-symbolic-name>${project.groupId}.${project.artifactId}</bundle-symbolic-name>
-  </properties>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <executions>
-          <execution>
-            <id>generate-manifest</id>
-            <goals>
-              <goal>manifest</goal>
-            </goals>
-            <configuration>
-              <instructions>
-                <Export-Package>org.eclipse.jetty.apache.jsp.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"</Export-Package>
-                <Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"</Require-Capability>
-                <Provide-Capability>osgi.serviceloader; osgi.serviceloader=javax.servlet.ServletContainerInitializer</Provide-Capability>
-                <_nouses>true</_nouses>
-              </instructions>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptorRefs>
-                <descriptorRef>config</descriptorRef>
-              </descriptorRefs>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-util</artifactId>
-        <version>${project.version}</version>
-    </dependency>
-    
-    <!-- Schemas -->
-    <dependency>
-      <groupId>org.eclipse.jetty.toolchain</groupId>
-      <artifactId>jetty-schemas</artifactId>
-    </dependency>
-
-    <!-- servlet api -->
-    <dependency>
-       <groupId>javax.servlet</groupId>
-       <artifactId>javax.servlet-api</artifactId>
-    </dependency>
-
-    <!-- JSP Api -->
-    <dependency>
-      <groupId>javax.servlet.jsp</groupId>
-      <artifactId>javax.servlet.jsp-api</artifactId>
-    </dependency>
-
-    <!-- JSP Impl -->
-    <dependency>
-      <groupId>org.mortbay.jasper</groupId>
-      <artifactId>apache-jsp</artifactId>
-    </dependency>
-
-    <!-- Eclipse Java Compiler (for JSP Compilation) -->
-    <dependency>
-      <groupId>org.eclipse.jetty.orbit</groupId>
-      <artifactId>org.eclipse.jdt.core</artifactId>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/apache-jsp/src/main/config/modules/apache-jsp.mod b/apache-jsp/src/main/config/modules/apache-jsp.mod
deleted file mode 100644
index 19a2f66..0000000
--- a/apache-jsp/src/main/config/modules/apache-jsp.mod
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Apache JSP Module
-#
-
-[depend]
-servlet
-
-[lib]
-lib/apache-jsp/*.jar
-
-[ini-template]
-# JSP Configuration
-# To use an non-jdk compiler for JSP compilation uncomment next line
-# -Dorg.apache.jasper.compiler.disablejsr199=true
diff --git a/apache-jsp/src/main/java/org/eclipse/jetty/apache/jsp/JettyJasperInitializer.java b/apache-jsp/src/main/java/org/eclipse/jetty/apache/jsp/JettyJasperInitializer.java
deleted file mode 100644
index 4cd7993..0000000
--- a/apache-jsp/src/main/java/org/eclipse/jetty/apache/jsp/JettyJasperInitializer.java
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.apache.jsp;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-import org.apache.jasper.servlet.JasperInitializer;
-import org.apache.jasper.servlet.TldPreScanned;
-import org.apache.jasper.servlet.TldScanner;
-import org.xml.sax.SAXException;
-
-/**
- * JettyJasperInitializer
- *
- */
-public class JettyJasperInitializer extends JasperInitializer
-{
-    
-    /**
-     * NullTldScanner
-     *
-     * Does nothing. Used when we can tell that all jsps have been precompiled, in which case
-     * the tlds are not needed.
-     */
-    private final class NullTldScanner extends TldScanner
-    {
-        /**
-         * @param context
-         * @param namespaceAware
-         * @param validation
-         * @param blockExternal
-         */
-        private NullTldScanner(ServletContext context, boolean namespaceAware, boolean validation, boolean blockExternal)
-        {
-            super(context, namespaceAware, validation, blockExternal);
-        }
-
-        /**
-         * @see org.apache.jasper.servlet.TldScanner#scan()
-         */
-        @Override
-        public void scan() throws IOException, SAXException
-        {
-            return; //do nothing
-        }
-
-        /**
-         * @see org.apache.jasper.servlet.TldScanner#getListeners()
-         */
-        @Override
-        public List<String> getListeners()
-        {
-            return Collections.emptyList();
-        }
-
-        /**
-         * @see org.apache.jasper.servlet.TldScanner#scanJars()
-         */
-        @Override
-        public void scanJars()
-        {
-           return; //do nothing
-        }
-    }
-
-    /**
-     * Make a TldScanner, and prefeed it the tlds that have already been discovered in jar files
-     * by the MetaInfConfiguration.
-     * 
-     * @see org.apache.jasper.servlet.JasperInitializer#prepareScanner(javax.servlet.ServletContext, boolean, boolean, boolean)
-     */
-    @Override
-    public TldScanner newTldScanner(ServletContext context, boolean namespaceAware, boolean validate, boolean blockExternal)
-    {  
-        String tmp = context.getInitParameter("org.eclipse.jetty.jsp.precompiled");
-        if (tmp!=null && !tmp.equals("") && Boolean.valueOf(tmp))
-        {
-            return new NullTldScanner(context, namespaceAware, validate, blockExternal);
-        }
-        
-        Collection<URL> tldUrls = (Collection<URL>)context.getAttribute("org.eclipse.jetty.tlds");
-        if (tldUrls != null && !tldUrls.isEmpty())
-        {
-            return new TldPreScanned(context,namespaceAware,validate,blockExternal,tldUrls);
-        }
-        return super.newTldScanner(context, namespaceAware, validate, blockExternal);
-    }
-    
-
-}
diff --git a/apache-jsp/src/main/java/org/eclipse/jetty/apache/jsp/JuliLog.java b/apache-jsp/src/main/java/org/eclipse/jetty/apache/jsp/JuliLog.java
deleted file mode 100644
index e58781d..0000000
--- a/apache-jsp/src/main/java/org/eclipse/jetty/apache/jsp/JuliLog.java
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.apache.jsp;
-
-public class JuliLog implements org.apache.juli.logging.Log 
-{
-    public static org.apache.juli.logging.Log getInstance(String name)
-    {
-        return new JuliLog(name);
-    }
-    
-    private final org.eclipse.jetty.util.log.Logger _logger;
-    private final org.eclipse.jetty.util.log.StdErrLog _stdErrLog;
-
-    public JuliLog()
-    {    
-        _logger=org.eclipse.jetty.util.log.Log.getRootLogger();
-        _stdErrLog=(_logger instanceof org.eclipse.jetty.util.log.StdErrLog) ? (org.eclipse.jetty.util.log.StdErrLog)_logger:null;
-    }
-    
-    public JuliLog(String name)
-    {
-        _logger=org.eclipse.jetty.util.log.Log.getLogger(name);
-        _stdErrLog=(_logger instanceof org.eclipse.jetty.util.log.StdErrLog) ? (org.eclipse.jetty.util.log.StdErrLog)_logger:null;
-    }
-    
-    @Override
-    public boolean isDebugEnabled()
-    {
-        return _logger.isDebugEnabled();
-    }
-
-    @Override
-    public boolean isErrorEnabled()
-    {
-        return _stdErrLog==null?true:_stdErrLog.getLevel()<=org.eclipse.jetty.util.log.StdErrLog.LEVEL_WARN;
-    }
-
-    @Override
-    public boolean isFatalEnabled()
-    {
-        return _stdErrLog==null?true:_stdErrLog.getLevel()<=org.eclipse.jetty.util.log.StdErrLog.LEVEL_WARN;
-    }
-
-    @Override
-    public boolean isInfoEnabled()
-    {
-        return _stdErrLog==null?true:_stdErrLog.getLevel()<=org.eclipse.jetty.util.log.StdErrLog.LEVEL_INFO;
-    }
-
-    @Override
-    public boolean isTraceEnabled()
-    {
-        return _stdErrLog==null?true:_stdErrLog.getLevel()<=org.eclipse.jetty.util.log.StdErrLog.LEVEL_DEBUG;
-    }
-
-    @Override
-    public boolean isWarnEnabled()
-    {
-        return _stdErrLog==null?true:_stdErrLog.getLevel()<=org.eclipse.jetty.util.log.StdErrLog.LEVEL_WARN;
-    }
-
-    @Override
-    public void trace(Object message)
-    {
-        if (message instanceof String)
-            _logger.debug((String)message);
-        else
-            _logger.debug("{}",message);
-    }
-
-    @Override
-    public void trace(Object message, Throwable t)
-    {
-        if (message instanceof String)
-            _logger.debug((String)message,t);
-        else
-            _logger.debug("{}",message,t);
-    }
-
-    @Override
-    public void debug(Object message)
-    {
-        if (message instanceof String)
-            _logger.debug((String)message);
-        else
-            _logger.debug("{}",message);
-    }
-
-    @Override
-    public void debug(Object message, Throwable t)
-    {
-        if (message instanceof String)
-            _logger.debug((String)message,t);
-        else
-            _logger.debug("{}",message,t);
-    }
-
-    @Override
-    public void info(Object message)
-    {
-        if (message instanceof String)
-            _logger.info((String)message);
-        else
-            _logger.info("{}",message);
-    }
-
-    @Override
-    public void info(Object message, Throwable t)
-    {
-        if (message instanceof String)
-            _logger.info((String)message,t);
-        else
-            _logger.info("{}",message,t);
-    }
-
-    @Override
-    public void warn(Object message)
-    {
-        if (message instanceof String)
-            _logger.warn((String)message);
-        else
-            _logger.warn("{}",message);
-    }
-
-    @Override
-    public void warn(Object message, Throwable t)
-    {
-        if (message instanceof String)
-            _logger.warn((String)message,t);
-        else
-            _logger.warn("{}",message,t);
-    }
-
-    @Override
-    public void error(Object message)
-    {
-        if (message instanceof String)
-            _logger.warn((String)message);
-        else
-            _logger.warn("{}",message);
-    }
-
-    @Override
-    public void error(Object message, Throwable t)
-    {
-        if (message instanceof String)
-            _logger.warn((String)message,t);
-        else
-            _logger.warn("{}",message,t);
-    }
-
-    @Override
-    public void fatal(Object message)
-    {
-        if (message instanceof String)
-            _logger.warn((String)message);
-        else
-            _logger.warn("{}",message);
-    }
-
-    @Override
-    public void fatal(Object message, Throwable t)
-    {
-        if (message instanceof String)
-            _logger.warn((String)message,t);
-        else
-            _logger.warn("{}",message,t);
-    }
-}
-
-
diff --git a/apache-jsp/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer b/apache-jsp/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
deleted file mode 100644
index 6346705..0000000
--- a/apache-jsp/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.jetty.apache.jsp.JettyJasperInitializer
diff --git a/apache-jsp/src/main/resources/META-INF/services/org.apache.juli.logging.Log b/apache-jsp/src/main/resources/META-INF/services/org.apache.juli.logging.Log
deleted file mode 100644
index efa397b..0000000
--- a/apache-jsp/src/main/resources/META-INF/services/org.apache.juli.logging.Log
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.jetty.apache.jsp.JuliLog
diff --git a/apache-jstl/pom.xml b/apache-jstl/pom.xml
deleted file mode 100644
index 06bf1ea..0000000
--- a/apache-jstl/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.eclipse.jetty</groupId>
-    <artifactId>jetty-project</artifactId>
-    <version>9.1.4-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>apache-jstl</artifactId>
-  <name>Apache :: JSTL module</name>
-  <url>http://tomcat.apache.org/taglibs/standard/</url>
-  <packaging>jar</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptorRefs>
-                <descriptorRef>config</descriptorRef>
-              </descriptorRefs>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- JSTL Api -->
-    <dependency>
-       <groupId>org.apache.taglibs</groupId>
-       <artifactId>taglibs-standard-spec</artifactId>
-    </dependency>
-
-    <!-- JSTL Impl -->
-    <dependency>
-       <groupId>org.apache.taglibs</groupId>
-       <artifactId>taglibs-standard-impl</artifactId>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/apache-jstl/src/main/config/modules/apache-jstl.mod b/apache-jstl/src/main/config/modules/apache-jstl.mod
deleted file mode 100644
index 89a9c50..0000000
--- a/apache-jstl/src/main/config/modules/apache-jstl.mod
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Apache JSTL 
-#
-
-[lib]
-lib/apache-jstl/*.jar
-
-[ini-template]
-# This module adds the Apache JSTL implementation to the server classpath
-# This module is not needed if the glassfish JSP impl (module == jsp) is used, as it includes the glassfish version of jstl
-# This module is needed if JSTL will be used by the apache JSP impl (module == apache-jsp) and there is no JSTL impl in the WEB-INF/lib of the webapp
diff --git a/apache-jstl/src/main/resources/readme.txt b/apache-jstl/src/main/resources/readme.txt
deleted file mode 100644
index a516023..0000000
--- a/apache-jstl/src/main/resources/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This empty jar file is purely to work around a problem with the Maven Dependency plugin.
-Several modules in jetty use the Dependency plugin to copy or unpack the dependencies of  other modules.
-However, the Dependency plugin is not capable of unpacking or copying a dependency of type 'pom', which
-this module is, as it consists purely of external dependencies needed to run jsp.
diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml
index 433cc61..7e250a9 100644
--- a/jetty-distribution/pom.xml
+++ b/jetty-distribution/pom.xml
@@ -302,7 +302,7 @@
             <configuration>
               <includeGroupIds>org.eclipse.jetty</includeGroupIds>
               <excludeGroupIds>org.eclipse.jetty.orbit,org.eclipse.jetty.spdy,org.eclipse.jetty.websocket,org.eclipse.jetty.fcgi,org.eclipse.jetty.toolchain,org.apache.taglibs</excludeGroupIds>
-              <excludeArtifactIds>jetty-all,jetty-jsp,apache-jsp,jetty-start,jetty-monitor</excludeArtifactIds>
+              <excludeArtifactIds>jetty-all,jetty-jsp,jetty-start,jetty-monitor</excludeArtifactIds>
               <includeTypes>jar</includeTypes>
               <outputDirectory>${assembly-directory}/lib</outputDirectory>
             </configuration>
@@ -458,20 +458,6 @@
             </configuration>
           </execution>
           <execution>
-            <id>copy-apache-jsp-deps</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy-dependencies</goal>
-            </goals>
-            <configuration>
-              <includeGroupIds>org.eclipse.jetty,org.eclipse.jetty.toolchain,javax.servlet.jsp,org.mortbay.jasper,org.mortbay.jasper,org.eclipse.jetty.orbit</includeGroupIds>
-              <includeArtifactIds>apache-jsp,jetty-schemas,javax.servlet.jsp-api,apache-el,org.eclipse.jdt.core</includeArtifactIds>
-              <includeTypes>jar</includeTypes>
-              <prependGroupId>true</prependGroupId>
-              <outputDirectory>${assembly-directory}/lib/apache-jsp</outputDirectory>
-            </configuration>
-          </execution>
-          <execution>
            <id>copy-jstl-api</id>
            <phase>generate-resources</phase>
            <goals>
@@ -499,20 +485,6 @@
            </configuration>
           </execution>
           <execution>
-           <id>copy-apache-jstl-deps</id>
-           <phase>generate-resources</phase>
-           <goals>
-             <goal>copy-dependencies</goal>
-           </goals>
-           <configuration>
-          <excludeGroupIds>org.glassfish.web</excludeGroupIds>
-          <includeArtifactIds>taglibs-standard-spec,taglibs-standard-impl</includeArtifactIds>
-              <prependGroupId>true</prependGroupId>
-              <includeTypes>jar</includeTypes>
-              <outputDirectory>${assembly-directory}/lib/apache-jstl</outputDirectory>
-           </configuration>
-          </execution>
-          <execution>
             <id>copy-jaspi-deps</id>
             <phase>generate-resources</phase>
             <goals>
@@ -697,11 +669,6 @@
     </dependency>
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-quickstart</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-start</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -732,16 +699,6 @@
     </dependency>
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
-      <artifactId>apache-jsp</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>apache-jstl</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-plus</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/jetty-quickstart/README.txt b/jetty-quickstart/README.txt
deleted file mode 100644
index 43ad7f3..0000000
--- a/jetty-quickstart/README.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-mvn exec:java -Dexec.classpathScope=test -Dexec.mainClass="org.eclipse.jetty.quickstart.StartBenchmarkWar"
-
-OR
-
-mvn exec:java -Dexec.classpathScope=test -Dexec.mainClass="org.eclipse.jetty.quickstart.PreconfigureBenchmarkWar"
-mvn exec:java -Dexec.classpathScope=test -Dexec.mainClass="org.eclipse.jetty.quickstart.QuickStartBenchmarkWar"
diff --git a/jetty-quickstart/pom.xml b/jetty-quickstart/pom.xml
deleted file mode 100644
index 5f9f03c..0000000
--- a/jetty-quickstart/pom.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.eclipse.jetty</groupId>
-    <artifactId>jetty-project</artifactId>
-    <version>9.1.4-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.eclipse.jetty</groupId>
-  <artifactId>jetty-quickstart</artifactId>
-  <name>Example :: Jetty Quick Start</name>
-  <description>Jetty Quick Start</description>
-  <url>http://www.eclipse.org/jetty</url>
-  <dependencies>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-jmx</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-plus</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-annotations</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>javax.transaction</groupId>
-      <artifactId>javax.transaction-api</artifactId>
-      <version>1.2</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty.tests</groupId>
-      <artifactId>test-mock-resources</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty.orbit</groupId>
-      <artifactId>javax.mail.glassfish</artifactId>
-      <version>1.4.1.v201005082020</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlets</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty.websocket</groupId>
-      <artifactId>javax-websocket-server-impl</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty.websocket</groupId>
-      <artifactId>websocket-server</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>apache-jsp</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>apache-jstl</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-
-    <plugin>
-      <groupId>org.codehaus.mojo</groupId>
-      <artifactId>appassembler-maven-plugin</artifactId>
-      <version>1.7</version>
-      <configuration>
-        <platforms>
-          <platform>unix</platform>
-        </platforms>
-        <programs>
-          <program>
-            <id>preconfigure</id>
-            <mainClass>org.eclipse.jetty.quickstart.PreconfigureQuickStartWar</mainClass>
-          </program>
-          <program>
-            <mainClass>org.eclipse.jetty.quickstart.QuickStartWar</mainClass>
-            <id>quickstart</id>
-          </program>
-        </programs>
-      </configuration>
-      </plugin>
-
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>copy</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.eclipse.jetty.tests</groupId>
-                  <artifactId>test-jndi-webapp</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>true</overWrite>
-                  <includes>**</includes>
-                  <outputDirectory>${basedir}/target</outputDirectory>
-                  <destFileName>test-jndi.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.eclipse.jetty.tests</groupId>
-                  <artifactId>test-spec-webapp</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>true</overWrite>
-                  <includes>**</includes>
-                  <outputDirectory>${basedir}/target</outputDirectory>
-                  <destFileName>test-spec.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.eclipse.jetty</groupId>
-                  <artifactId>test-jetty-webapp</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>true</overWrite>
-                  <includes>**</includes>
-                  <outputDirectory>${basedir}/target</outputDirectory>
-                  <destFileName>test-standard.war</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-	</executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptorRefs>
-                <descriptorRef>config</descriptorRef>
-              </descriptorRefs>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/jetty-quickstart/src/main/config/etc/example-quickstart.xml b/jetty-quickstart/src/main/config/etc/example-quickstart.xml
deleted file mode 100644
index 9a012c7..0000000
--- a/jetty-quickstart/src/main/config/etc/example-quickstart.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"  encoding="ISO-8859-1"?>
-<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
-
-<!-- An example context XML for a quickstart webapp
-A quick started webapp has all the jar scanning and fragment resolution done in a 
-Preconfigure phase, with all the discovered configuration encoded into a
-WEB-INF/quickstart-web.xml file.
-
-This allows very rapid and precise starting of a webapp, without the risk of accidental
-deployment of other discovered resources.  This is above and beyond what is available 
-with web.xml meta-data-complete, as it also prevents scanning for ServletContainer 
-initialisers and any annotations/classes they require.
-
-If autoPreconfigure is set to true, then the webapp will be preconfigured the first
-time it is run.
- -->
-<Configure class="org.eclipse.jetty.quickstart.QuickStartWebApp">
-  <Set name="autoPreconfigure">true</Set>
-  <Set name="contextPath">/</Set>
-  <Set name="war"><Property name="jetty.webapps" default="."/>/application.war</Set>
-</Configure>
diff --git a/jetty-quickstart/src/main/config/modules/quickstart.mod b/jetty-quickstart/src/main/config/modules/quickstart.mod
deleted file mode 100644
index 89db9fd..0000000
--- a/jetty-quickstart/src/main/config/modules/quickstart.mod
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Jetty Quickstart module
-#
-
-[depend]
-server
-plus
-annotations
-
-
-[lib]
-lib/jetty-quickstart-${jetty.version}.jar
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureDescriptorProcessor.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureDescriptorProcessor.java
deleted file mode 100644
index 627277e..0000000
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureDescriptorProcessor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-import org.eclipse.jetty.webapp.Descriptor;
-import org.eclipse.jetty.webapp.IterativeDescriptorProcessor;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.eclipse.jetty.xml.XmlParser;
-
-/**
- * Preconfigure DescriptorProcessor
- *
- * Saves literal XML snippets
- *
- */
-
-public class PreconfigureDescriptorProcessor extends IterativeDescriptorProcessor
-{
-    private static final Logger LOG = Log.getLogger(PreconfigureDescriptorProcessor.class);
-    
-    private final StringBuilder _buffer = new StringBuilder();
-    private final boolean _showOrigin;
-    private String _origin;
-
-    public PreconfigureDescriptorProcessor ()
-    {
-        _showOrigin=LOG.isDebugEnabled();
-        try
-        {
-            registerVisitor("env-entry", getClass().getDeclaredMethod("saveSnippet", __signature));
-            registerVisitor("resource-ref", getClass().getDeclaredMethod("saveSnippet", __signature));
-            registerVisitor("resource-env-ref", getClass().getDeclaredMethod("saveSnippet", __signature));
-            registerVisitor("message-destination-ref", getClass().getDeclaredMethod("saveSnippet", __signature));
-            registerVisitor("data-source", getClass().getDeclaredMethod("saveSnippet", __signature));
-        }
-        catch (Exception e)
-        {
-            throw new IllegalStateException(e);
-        }
-    }
-
-    @Override
-    public void start(WebAppContext context, Descriptor descriptor)
-    {
-        LOG.debug("process {}",descriptor);
-        _origin=("  <!-- "+descriptor+" -->\n");
-    }
-
-
-    @Override
-    public void end(WebAppContext context,Descriptor descriptor)
-    {
-    }
-
-
-    public void saveSnippet (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
-    throws Exception
-    {
-        LOG.debug("save {}",node.getTag());
-        if (_showOrigin)
-            _buffer.append(_origin);
-        _buffer.append("  ").append(node.toString()).append("\n");
-    }
-    
-    public String getXML()
-    {
-        return _buffer.toString();
-    }
-
-}
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java
deleted file mode 100644
index 204ad2e..0000000
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-import org.eclipse.jetty.util.resource.JarResource;
-import org.eclipse.jetty.util.resource.Resource;
-import org.eclipse.jetty.xml.XmlConfiguration;
-
-public class PreconfigureQuickStartWar
-{
-    private static final Logger LOG = Log.getLogger(PreconfigureQuickStartWar.class);
-    static final boolean ORIGIN=LOG.isDebugEnabled();
-    
-
-    public static void main(String... args) throws Exception
-    {
-        Resource war = null;
-        Resource dir = null;
-        Resource xml = null;
-
-        switch (args.length)
-        {
-            case 0:
-                error("No WAR file or directory given");
-                break;
-
-            case 1:
-                dir = Resource.newResource(args[0]);
-
-            case 2:
-                war = Resource.newResource(args[0]);
-                if (war.isDirectory())
-                {
-                    dir = war;
-                    war = null;
-                    xml = Resource.newResource(args[1]);
-                }
-                else
-                {
-                    dir = Resource.newResource(args[1]);
-                }
-
-                break;
-
-            case 3:
-                war = Resource.newResource(args[0]);
-                dir = Resource.newResource(args[1]);
-                xml = Resource.newResource(args[2]);
-                break;
-
-            default:
-                error("Too many args");
-                break;
-        }
-
-        
-        preconfigure(war,dir,xml);
-    }
-
-    /**
-     * @param war The war (or directory) to preconfigure
-     * @param dir The directory to expand the war into (or null if war is a directory)
-     * @param xml A context XML to apply (or null if none)
-     * @throws Exception
-     */
-    public static void preconfigure(Resource war, Resource dir, Resource xml) throws Exception 
-    {
-        // Do we need to unpack a war?
-        if (war != null)
-        {
-            if (war.isDirectory())
-                error("war file is directory");
-
-            if (!dir.exists())
-                dir.getFile().mkdirs();
-            JarResource.newJarResource(war).copyTo(dir.getFile());
-        }
-        
-        final Server server = new Server();
-
-        QuickStartWebApp webapp = new QuickStartWebApp();
-
-        if (xml != null)
-        {
-            if (xml.isDirectory() || !xml.toString().toLowerCase().endsWith(".xml"))
-                error("Bad context.xml: "+xml);
-            XmlConfiguration xmlConfiguration = new XmlConfiguration(xml.getURL());
-            xmlConfiguration.configure(webapp);
-        }
-        webapp.setResourceBase(dir.getFile().getAbsolutePath());
-        webapp.setPreconfigure(true);
-        server.setHandler(webapp);
-        server.start();
-        server.stop();
-    }
-    
-    
-    
-
-    private static void error(String message)
-    {
-        System.err.println("ERROR: " + message);
-        System.err.println("Usage: java -jar PreconfigureQuickStartWar.jar <war-directory>");
-        System.err.println("       java -jar PreconfigureQuickStartWar.jar <war-directory> <context-xml-file>");
-        System.err.println("       java -jar PreconfigureQuickStartWar.jar <war-file> <target-war-directory>");
-        System.err.println("       java -jar PreconfigureQuickStartWar.jar <war-file> <target-war-directory> <context-xml-file>");
-        System.exit(1);
-    }
-
-}
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartConfiguration.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartConfiguration.java
deleted file mode 100644
index 313c5c0..0000000
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartConfiguration.java
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import org.eclipse.jetty.annotations.AnnotationConfiguration;
-import org.eclipse.jetty.annotations.AnnotationDecorator;
-import org.eclipse.jetty.annotations.ServletContainerInitializersStarter;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-import org.eclipse.jetty.util.resource.Resource;
-import org.eclipse.jetty.webapp.StandardDescriptorProcessor;
-import org.eclipse.jetty.webapp.WebAppClassLoader;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.eclipse.jetty.webapp.WebInfConfiguration;
-
-/**
- * QuickStartConfiguration
- * 
- * Re-inflate a deployable webapp from a saved effective-web.xml
- * which combines all pre-parsed web xml descriptors and annotations.
- * 
- */
-public class QuickStartConfiguration extends WebInfConfiguration
-{
-    private static final Logger LOG = Log.getLogger(QuickStartConfiguration.class);
-
-    /**
-     * @see org.eclipse.jetty.webapp.AbstractConfiguration#preConfigure(org.eclipse.jetty.webapp.WebAppContext)
-     */
-    @Override
-    public void preConfigure(WebAppContext context) throws Exception
-    {
-        //check that webapp is suitable for quick start - it is not a packed war
-        String war = context.getWar();
-        if (war == null || war.length()<=0)
-            throw new IllegalStateException ("No location for webapp");  
-        
-        //Make a temp directory for the webapp if one is not already set
-        resolveTempDirectory(context);
-
-        Resource webApp = context.newResource(war);
-
-        // Accept aliases for WAR files
-        if (webApp.getAlias() != null)
-        {
-            LOG.debug(webApp + " anti-aliased to " + webApp.getAlias());
-            webApp = context.newResource(webApp.getAlias());
-        }
-
-        // Is the WAR usable directly?
-        if (!webApp.exists() || !webApp.isDirectory() || webApp.toString().startsWith("jar:"))
-            throw new IllegalStateException("Webapp does not exist or is not unpacked");
-        
-        context.setBaseResource(webApp);
-
-        LOG.debug("webapp={}",webApp);
-
-        
-        //look for effective-web.xml in WEB-INF of webapp
-        Resource webInf = context.getWebInf();
-        if (webInf == null || !webInf.exists())
-            throw new IllegalStateException("No WEB-INF");
-        LOG.debug("webinf={}",webInf);
-  
-        Resource quickStartWebXml = webInf.addPath("quickstart-web.xml");
-        if (!quickStartWebXml.exists())
-            throw new IllegalStateException ("No WEB-INF/quickstart-web.xml");
-        LOG.debug("quickStartWebXml={}",quickStartWebXml);
-        
-        context.getMetaData().setWebXml(quickStartWebXml);
-    }
-
-    
-    /**
-     * @see org.eclipse.jetty.webapp.AbstractConfiguration#configure(org.eclipse.jetty.webapp.WebAppContext)
-     */
-    @Override
-    public void configure(WebAppContext context) throws Exception
-    {
-        LOG.debug("configure {}",this);
-        if (context.isStarted())
-        {
-            LOG.warn("Cannot configure webapp after it is started");
-            return;
-        }
-        
-        //Temporary:  set up the classpath here. This should be handled by the QuickStartDescriptorProcessor
-        Resource webInf = context.getWebInf();
-
-        if (webInf != null && webInf.isDirectory() && context.getClassLoader() instanceof WebAppClassLoader)
-        {
-            // Look for classes directory
-            Resource classes= webInf.addPath("classes/");
-            if (classes.exists())
-                ((WebAppClassLoader)context.getClassLoader()).addClassPath(classes);
-
-            // Look for jars
-            Resource lib= webInf.addPath("lib/");
-            if (lib.exists() || lib.isDirectory())
-                ((WebAppClassLoader)context.getClassLoader()).addJars(lib);
-        }
-
-        //add the processor to handle normal web.xml content
-        context.getMetaData().addDescriptorProcessor(new StandardDescriptorProcessor());
-        
-        //add a processor to handle extended web.xml format
-        context.getMetaData().addDescriptorProcessor(new QuickStartDescriptorProcessor());
-        
-        //add a decorator that will find introspectable annotations
-        context.addDecorator(new AnnotationDecorator(context)); //this must be the last Decorator because they are run in reverse order!
-        
-        //add a context bean that will run ServletContainerInitializers as the context starts
-        ServletContainerInitializersStarter starter = (ServletContainerInitializersStarter)context.getAttribute(AnnotationConfiguration.CONTAINER_INITIALIZER_STARTER);
-        if (starter != null)
-            throw new IllegalStateException("ServletContainerInitializersStarter already exists");
-        starter = new ServletContainerInitializersStarter(context);
-        context.setAttribute(AnnotationConfiguration.CONTAINER_INITIALIZER_STARTER, starter);
-        context.addBean(starter, true);       
-
-        LOG.debug("configured {}",this);
-    }
-
-}
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartDescriptorProcessor.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartDescriptorProcessor.java
deleted file mode 100644
index 7e5a6c8..0000000
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartDescriptorProcessor.java
+++ /dev/null
@@ -1,218 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-
-import org.eclipse.jetty.annotations.AnnotationConfiguration;
-import org.eclipse.jetty.annotations.ServletContainerInitializersStarter;
-import org.eclipse.jetty.plus.annotation.ContainerInitializer;
-import org.eclipse.jetty.util.QuotedStringTokenizer;
-import org.eclipse.jetty.util.resource.Resource;
-import org.eclipse.jetty.util.resource.ResourceCollection;
-import org.eclipse.jetty.webapp.Descriptor;
-import org.eclipse.jetty.webapp.IterativeDescriptorProcessor;
-import org.eclipse.jetty.webapp.MetaInfConfiguration;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.eclipse.jetty.xml.XmlParser;
-
-/**
- * QuickStartDescriptorProcessor
- * 
- * Handle  extended elements for quickstart-web.xml
- */
-public class QuickStartDescriptorProcessor extends IterativeDescriptorProcessor
-{
-    /**
-     * 
-     */
-    public QuickStartDescriptorProcessor()
-    {
-        try
-        {
-            registerVisitor("context-param", this.getClass().getDeclaredMethod("visitContextParam", __signature));
-        }    
-        catch (Exception e)
-        {
-            throw new IllegalStateException(e);
-        }
-    }
-
-    /**
-     * @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#start(org.eclipse.jetty.webapp.WebAppContext, org.eclipse.jetty.webapp.Descriptor)
-     */
-    @Override
-    public void start(WebAppContext context, Descriptor descriptor)
-    {
-    }
-
-    /**
-     * @see org.eclipse.jetty.webapp.IterativeDescriptorProcessor#end(org.eclipse.jetty.webapp.WebAppContext, org.eclipse.jetty.webapp.Descriptor)
-     */
-    @Override
-    public void end(WebAppContext context, Descriptor descriptor)
-    { 
-    }
-    
-
-    /**
-     * @param context
-     * @param descriptor
-     * @param node
-     */
-    public void visitContextParam (WebAppContext context, Descriptor descriptor, XmlParser.Node node)
-            throws Exception
-    {
-        String name = node.getString("param-name", false, true);
-        String value = node.getString("param-value", false, true);
-        List<String> values = new ArrayList<>();
-        
-        // extract values
-        switch(name)
-        {
-            case ServletContext.ORDERED_LIBS:
-            case AnnotationConfiguration.CONTAINER_INITIALIZERS:
-            case MetaInfConfiguration.METAINF_TLDS:
-            case MetaInfConfiguration.METAINF_RESOURCES:
-
-                context.removeAttribute(name);
-                
-                QuotedStringTokenizer tok = new QuotedStringTokenizer(value,",");
-                while(tok.hasMoreElements())
-                    values.add(tok.nextToken().trim());
-                
-                break;
-                
-            default:
-                values.add(value);
-        }
-
-        // handle values
-        switch(name)
-        {
-            case ServletContext.ORDERED_LIBS:
-            {
-                List<Object> libs = new ArrayList<>();
-                Object o=context.getAttribute(ServletContext.ORDERED_LIBS);
-                if (o instanceof Collection<?>)
-                    libs.addAll((Collection<?>)o);
-                libs.addAll(values);
-                if (libs.size()>0)
-                    context.setAttribute(ServletContext.ORDERED_LIBS,libs);
-                
-                break;
-            }
-                
-            case AnnotationConfiguration.CONTAINER_INITIALIZERS:
-            {
-                for (String i : values)
-                    visitContainerInitializer(context, new ContainerInitializer(Thread.currentThread().getContextClassLoader(), i));
-                break;
-            }
-            
-            case MetaInfConfiguration.METAINF_TLDS:
-            {
-                List<Object> tlds = new ArrayList<>();
-                String war=context.getBaseResource().getURI().toString();
-                Object o=context.getAttribute(MetaInfConfiguration.METAINF_TLDS);
-                if (o instanceof Collection<?>)
-                    tlds.addAll((Collection<?>)o);
-                for (String i : values)
-                {
-                    Resource r = Resource.newResource(i.replace("${WAR}/",war));
-                    if (r.exists())
-                        tlds.add(r.getURL());
-                    else
-                        throw new IllegalArgumentException("TLD not found: "+r);                    
-                }
-                
-                if (tlds.size()>0)
-                    context.setAttribute(MetaInfConfiguration.METAINF_TLDS,tlds);
-                break;
-            }
-            
-            case MetaInfConfiguration.METAINF_RESOURCES:
-            {
-                String war=context.getBaseResource().getURI().toString();
-                for (String i : values)
-                {
-                    Resource r = Resource.newResource(i.replace("${WAR}/",war));
-                    if (r.exists())
-                        visitMetaInfResource(context,r); 
-                    else
-                        throw new IllegalArgumentException("Resource not found: "+r);                    
-                }
-                break;
-            }
-                
-            default:
-                
-        }
-    }
-    
-
-    public void visitContainerInitializer (WebAppContext context, ContainerInitializer containerInitializer)
-    {
-        if (containerInitializer == null)
-            return;
-        
-        //add the ContainerInitializer to the list of container initializers
-        List<ContainerInitializer> containerInitializers = (List<ContainerInitializer>)context.getAttribute(AnnotationConfiguration.CONTAINER_INITIALIZERS);
-        if (containerInitializers == null)
-        {
-            containerInitializers = new ArrayList<ContainerInitializer>();
-            context.setAttribute(AnnotationConfiguration.CONTAINER_INITIALIZERS, containerInitializers);
-        }
-        
-        containerInitializers.add(containerInitializer);
-
-        //Ensure a bean is set up on the context that will invoke the ContainerInitializers as the context starts
-        ServletContainerInitializersStarter starter = (ServletContainerInitializersStarter)context.getAttribute(AnnotationConfiguration.CONTAINER_INITIALIZER_STARTER);
-        if (starter == null)
-        {
-            starter = new ServletContainerInitializersStarter(context);
-            context.setAttribute(AnnotationConfiguration.CONTAINER_INITIALIZER_STARTER, starter);
-            context.addBean(starter, true);
-        }
-    }
-    
-    
-    public void visitMetaInfResource (WebAppContext context, Resource dir)
-    {
-        Collection<Resource> metaInfResources =  (Collection<Resource>)context.getAttribute(MetaInfConfiguration.METAINF_RESOURCES);
-        if (metaInfResources == null)
-        {
-            metaInfResources = new HashSet<Resource>();
-            context.setAttribute(MetaInfConfiguration.METAINF_RESOURCES, metaInfResources);
-        }
-        metaInfResources.add(dir);
-        //also add to base resource of webapp
-        Resource[] collection=new Resource[metaInfResources.size()+1];
-        int i=0;
-        collection[i++]=context.getBaseResource();
-        for (Resource resource : metaInfResources)
-            collection[i++]=resource;
-        context.setBaseResource(new ResourceCollection(collection));
-    }
-}
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java
deleted file mode 100644
index bcbcab8..0000000
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java
+++ /dev/null
@@ -1,720 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventListener;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.DispatcherType;
-import javax.servlet.MultipartConfigElement;
-import javax.servlet.ServletContext;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.descriptor.JspPropertyGroupDescriptor;
-import javax.servlet.descriptor.TaglibDescriptor;
-
-import org.eclipse.jetty.annotations.AnnotationConfiguration;
-import org.eclipse.jetty.http.MimeTypes;
-import org.eclipse.jetty.plus.annotation.LifeCycleCallback;
-import org.eclipse.jetty.plus.annotation.LifeCycleCallbackCollection;
-import org.eclipse.jetty.security.ConstraintAware;
-import org.eclipse.jetty.security.ConstraintMapping;
-import org.eclipse.jetty.security.SecurityHandler;
-import org.eclipse.jetty.security.authentication.FormAuthenticator;
-import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.FilterMapping;
-import org.eclipse.jetty.servlet.Holder;
-import org.eclipse.jetty.servlet.ServletHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.servlet.ServletMapping;
-import org.eclipse.jetty.util.QuotedStringTokenizer;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-import org.eclipse.jetty.util.resource.JarResource;
-import org.eclipse.jetty.util.resource.Resource;
-import org.eclipse.jetty.util.security.Constraint;
-import org.eclipse.jetty.webapp.MetaData;
-import org.eclipse.jetty.webapp.MetaData.OriginInfo;
-import org.eclipse.jetty.webapp.MetaInfConfiguration;
-import org.eclipse.jetty.webapp.WebAppContext;
-import org.eclipse.jetty.xml.XmlAppendable;
-
-/**
- * QuickStartWar
- *
- */
-public class QuickStartWebApp extends WebAppContext
-{
-    private static final Logger LOG = Log.getLogger(QuickStartWebApp.class);
-    
-    public static final String[] __configurationClasses = new String[] 
-            {
-                org.eclipse.jetty.quickstart.QuickStartConfiguration.class.getCanonicalName(),
-                org.eclipse.jetty.plus.webapp.EnvConfiguration.class.getCanonicalName(),
-                org.eclipse.jetty.plus.webapp.PlusConfiguration.class.getCanonicalName(),
-                org.eclipse.jetty.webapp.JettyWebXmlConfiguration.class.getCanonicalName()
-            };
-    
-    
-    private boolean _preconfigure=false;
-    private boolean _autoPreconfigure=false;
-    private boolean _startWebapp=false;
-    private PreconfigureDescriptorProcessor _preconfigProcessor;
-    
-
-    public static final String[] __preconfigurationClasses = new String[]
-    { 
-        org.eclipse.jetty.webapp.WebInfConfiguration.class.getCanonicalName(), 
-        org.eclipse.jetty.webapp.WebXmlConfiguration.class.getCanonicalName(),
-        org.eclipse.jetty.webapp.MetaInfConfiguration.class.getCanonicalName(), 
-        org.eclipse.jetty.webapp.FragmentConfiguration.class.getCanonicalName(),
-        org.eclipse.jetty.plus.webapp.EnvConfiguration.class.getCanonicalName(), 
-        org.eclipse.jetty.plus.webapp.PlusConfiguration.class.getCanonicalName(),
-        org.eclipse.jetty.annotations.AnnotationConfiguration.class.getCanonicalName(),
-    };
-    
-    public QuickStartWebApp()
-    {
-        super();
-        setConfigurationClasses(__preconfigurationClasses);
-        setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*\\.jar");
-    }
-
-    public boolean isPreconfigure()
-    {
-        return _preconfigure;
-    }
-
-    /* ------------------------------------------------------------ */
-    /** Preconfigure webapp
-     * @param preconfigure  If true, then starting the webapp will generate 
-     * the WEB-INF/quickstart-web.xml rather than start the webapp.
-     */
-    public void setPreconfigure(boolean preconfigure)
-    {
-        _preconfigure = preconfigure;
-    }
-
-    public boolean isAutoPreconfigure()
-    {
-        return _autoPreconfigure;
-    }
-    
-    public void setAutoPreconfigure(boolean autoPrecompile)
-    {
-        _autoPreconfigure = autoPrecompile;
-    }
-    
-    @Override
-    protected void startWebapp() throws Exception
-    {
-        if (isPreconfigure())
-            generateQuickstartWebXml(_preconfigProcessor.getXML());
-        
-        if (_startWebapp)
-            super.startWebapp();
-    }
-    
-    @Override
-    protected void doStart() throws Exception
-    {
-        // unpack and Adjust paths.
-        Resource war = null;
-        Resource dir = null;
-
-        Resource base = getBaseResource();
-        if (base==null)
-            base=Resource.newResource(getWar());
-
-        if (base.isDirectory())
-            dir=base;
-        else if (base.toString().toLowerCase().endsWith(".war"))
-        {
-            war=base;
-            String w=war.toString();
-            dir=Resource.newResource(w.substring(0,w.length()-4));
-
-            if (!dir.exists())
-            {                       
-                LOG.info("Quickstart Extract " + war + " to " + dir);
-                dir.getFile().mkdirs();
-                JarResource.newJarResource(war).copyTo(dir.getFile());
-            }
-
-            setWar(null);
-            setBaseResource(dir);
-        }
-        else 
-            throw new IllegalArgumentException();
-
-
-        Resource qswebxml=dir.addPath("/WEB-INF/quickstart-web.xml");
-        
-        if (isPreconfigure())
-        {
-            _preconfigProcessor = new PreconfigureDescriptorProcessor();
-            getMetaData().addDescriptorProcessor(_preconfigProcessor);
-            _startWebapp=false;
-        }
-        else if (qswebxml.exists())
-        {
-            setConfigurationClasses(__configurationClasses);
-            _startWebapp=true;
-        }
-        else if (_autoPreconfigure)
-        {   
-            LOG.info("Quickstart preconfigure: {}(war={},dir={})",this,war,dir);
-
-            _preconfigProcessor = new PreconfigureDescriptorProcessor();
-            
-            getMetaData().addDescriptorProcessor(_preconfigProcessor);
-            setPreconfigure(true);
-            _startWebapp=true;
-        }
-        else
-            _startWebapp=true;
-            
-        super.doStart();
-    }
-
-
-    public void generateQuickstartWebXml(String extraXML) throws IOException
-    {
-        getMetaData().getOrigins();
-        // dumpStdErr();
-
-        if (getBaseResource()==null)
-            throw new IllegalArgumentException("No base resource for "+this);
-        
-        File webxml = new File(getWebInf().getFile(),"quickstart-web.xml");
-
-        LOG.info("Quickstart generate {}",webxml);
-
-        XmlAppendable out = new XmlAppendable(new FileOutputStream(webxml),"UTF-8");
-        MetaData md = getMetaData();
-
-        Map<String, String> webappAttr = new HashMap<>();
-        webappAttr.put("xmlns","http://xmlns.jcp.org/xml/ns/javaee");
-        webappAttr.put("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
-        webappAttr.put("xsi:schemaLocation","http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd");
-        webappAttr.put("metadata-complete","true");
-        webappAttr.put("version","3.1");
-
-        out.open("web-app",webappAttr);
-
-        if (getDisplayName() != null)
-            out.tag("display-name",getDisplayName());
-
-        // Set some special context parameters
-
-        // The location of the war file on disk
-        String resourceBase=getBaseResource().getFile().getCanonicalFile().getAbsoluteFile().toURI().toString();
-        
-        // The library order
-        addContextParamFromAttribute(out,ServletContext.ORDERED_LIBS);
-        //the servlet container initializers
-        addContextParamFromAttribute(out,AnnotationConfiguration.CONTAINER_INITIALIZERS);
-        //the tlds discovered
-        addContextParamFromAttribute(out,MetaInfConfiguration.METAINF_TLDS,resourceBase);
-        //the META-INF/resources discovered
-        addContextParamFromAttribute(out,MetaInfConfiguration.METAINF_RESOURCES,resourceBase);
-
-        
-        // init params
-        for (String p : getInitParams().keySet())
-            out.open("context-param",origin(md,"context-param." + p))
-            .tag("param-name",p)
-            .tag("param-value",getInitParameter(p))
-            .close();
-
-        if (getEventListeners() != null)
-            for (EventListener e : getEventListeners())
-                out.open("listener",origin(md,e.getClass().getCanonicalName() + ".listener"))
-                .tag("listener-class",e.getClass().getCanonicalName())
-                .close();
-
-        ServletHandler servlets = getServletHandler();
-
-        if (servlets.getFilters() != null)
-        {
-            for (FilterHolder holder : servlets.getFilters())
-                outholder(out,md,"filter",holder);
-        }
-
-        if (servlets.getFilterMappings() != null)
-        {
-            for (FilterMapping mapping : servlets.getFilterMappings())
-            {
-                out.open("filter-mapping");
-                out.tag("filter-name",mapping.getFilterName());
-                if (mapping.getPathSpecs() != null)
-                    for (String s : mapping.getPathSpecs())
-                        out.tag("url-pattern",s);
-                if (mapping.getServletNames() != null)
-                    for (String n : mapping.getServletNames())
-                        out.tag("servlet-name",n);
-
-                if (!mapping.isDefaultDispatches())
-                {
-                    if (mapping.appliesTo(DispatcherType.REQUEST))
-                        out.tag("dispatcher","REQUEST");
-                    if (mapping.appliesTo(DispatcherType.ASYNC))
-                        out.tag("dispatcher","ASYNC");
-                    if (mapping.appliesTo(DispatcherType.ERROR))
-                        out.tag("dispatcher","ERROR");
-                    if (mapping.appliesTo(DispatcherType.FORWARD))
-                        out.tag("dispatcher","FORWARD");
-                    if (mapping.appliesTo(DispatcherType.INCLUDE))
-                        out.tag("dispatcher","INCLUDE");
-                }
-                out.close();
-            }
-        }
-
-        if (servlets.getServlets() != null)
-        {
-            for (ServletHolder holder : servlets.getServlets())
-                outholder(out,md,"servlet",holder);
-        }
-
-        if (servlets.getServletMappings() != null)
-        {
-            for (ServletMapping mapping : servlets.getServletMappings())
-            {
-                out.open("servlet-mapping",origin(md,mapping.getServletName() + ".servlet.mappings"));
-                out.tag("servlet-name",mapping.getServletName());
-                if (mapping.getPathSpecs() != null)
-                    for (String s : mapping.getPathSpecs())
-                        out.tag("url-pattern",s);
-                out.close();
-            }
-        }
-
-        // Security elements
-        SecurityHandler security = getSecurityHandler();
-        
-        if (security!=null && (security.getRealmName()!=null || security.getAuthMethod()!=null))
-        {
-            out.open("login-config");
-            if (security.getAuthMethod()!=null)
-                out.tag("auth-method",origin(md,"auth-method"),security.getAuthMethod());
-            if (security.getRealmName()!=null)
-                out.tag("realm-name",origin(md,"realm-name"),security.getRealmName());
-            
-            
-            if (Constraint.__FORM_AUTH.equalsIgnoreCase(security.getAuthMethod()))
-            {
-                out.open("form-login-config");
-                out.tag("form-login-page",origin(md,"form-login-page"),security.getInitParameter(FormAuthenticator.__FORM_LOGIN_PAGE));
-                out.tag("form-error-page",origin(md,"form-error-page"),security.getInitParameter(FormAuthenticator.__FORM_ERROR_PAGE));
-                out.close();
-            }
-            
-            out.close();
-        }
-        
-        if (security instanceof ConstraintAware)
-        {
-            ConstraintAware ca = (ConstraintAware)security;
-            for (String r:ca.getRoles())
-                out.open("security-role")
-                .tag("role-name",r)
-                .close();
-            
-            for (ConstraintMapping m : ca.getConstraintMappings())
-            {
-                out.open("security-constraint");
-                
-                if (m.getConstraint().getAuthenticate())
-                {
-                    out.open("auth-constraint");
-                    if (m.getConstraint().getRoles()!=null)
-                        for (String r : m.getConstraint().getRoles())
-                            out.tag("role-name",r);
-
-                    out.close();
-                }
-                
-                switch (m.getConstraint().getDataConstraint())
-                {
-                    case Constraint.DC_NONE:
-                        out.open("user-data-constraint").tag("transport-guarantee","NONE").close();
-                        break;
-                        
-                    case Constraint.DC_INTEGRAL:
-                        out.open("user-data-constraint").tag("transport-guarantee","INTEGRAL").close();
-                        break;
-                        
-                    case Constraint.DC_CONFIDENTIAL:
-                        out.open("user-data-constraint").tag("transport-guarantee","CONFIDENTIAL").close();
-                        break;
-                        
-                    default:
-                            break;
-                        
-                }
-
-                out.open("web-resource-collection");
-                {
-                    if (m.getConstraint().getName()!=null)
-                        out.tag("web-resource-name",m.getConstraint().getName());
-                    if (m.getPathSpec()!=null)
-                        out.tag("url-pattern",origin(md,"constraint.url."+m.getPathSpec()),m.getPathSpec());
-                    if (m.getMethod()!=null)
-                        out.tag("http-method",m.getMethod());
-
-                    if (m.getMethodOmissions()!=null)
-                        for (String o:m.getMethodOmissions())
-                            out.tag("http-method-omission",o);
-
-                    out.close();
-                }
-                
-                out.close();
-                
-            }
-        }
-        
-        if (getWelcomeFiles() != null)
-        {
-            out.open("welcome-file-list");
-            for (String welcomeFile:getWelcomeFiles())
-            {
-                out.tag("welcome-file", welcomeFile);
-            }
-            out.close();
-        }
-    
-        Map<String,String> localeEncodings = getLocaleEncodings();
-        if (localeEncodings != null && !localeEncodings.isEmpty())
-        {
-            out.open("locale-encoding-mapping-list");
-            for (Map.Entry<String, String> entry:localeEncodings.entrySet())
-            {
-                out.open("locale-encoding-mapping", origin(md,"locale-encoding."+entry.getKey()));
-                out.tag("locale", entry.getKey());
-                out.tag("encoding", entry.getValue());
-                out.close();
-            }
-            out.close();
-        }
-
-        //session-config
-        if (getSessionHandler().getSessionManager() != null)
-        {
-            out.open("session-config");
-            int maxInactiveSec = getSessionHandler().getSessionManager().getMaxInactiveInterval();
-            out.tag("session-timeout", (maxInactiveSec==0?"0":Integer.toString(maxInactiveSec/60)));
- 
-            Set<SessionTrackingMode> modes = getSessionHandler().getSessionManager().getEffectiveSessionTrackingModes();
-            if (modes != null)
-            {
-                for (SessionTrackingMode mode:modes)
-                    out.tag("tracking-mode", mode.toString());
-            }
-            
-            //cookie-config
-            SessionCookieConfig cookieConfig = getSessionHandler().getSessionManager().getSessionCookieConfig();
-            if (cookieConfig != null)
-            {
-                out.open("cookie-config");
-                if (cookieConfig.getName() != null)
-                    out.tag("name", origin(md,"cookie-config.name"), cookieConfig.getName());
-                
-                if (cookieConfig.getDomain() != null)
-                    out.tag("domain", origin(md, "cookie-config.domain"), cookieConfig.getDomain());
-                
-                if (cookieConfig.getPath() != null)
-                    out.tag("path", origin(md, "cookie-config.path"), cookieConfig.getPath());
-                
-                if (cookieConfig.getComment() != null)
-                    out.tag("comment", origin(md, "cookie-config.comment"), cookieConfig.getComment());
-                
-                out.tag("http-only", origin(md, "cookie-config.http-only"), Boolean.toString(cookieConfig.isHttpOnly()));
-                out.tag("secure", origin(md, "cookie-config.secure"), Boolean.toString(cookieConfig.isSecure()));
-                out.tag("max-age", origin(md, "cookie-config.max-age"), Integer.toString(cookieConfig.getMaxAge()));
-                out.close();
-            }
-            out.close();     
-        }
-        
-        //error-pages
-        Map<String,String> errorPages = ((ErrorPageErrorHandler)getErrorHandler()).getErrorPages();
-        if (errorPages != null)
-        {
-            for (Map.Entry<String, String> entry:errorPages.entrySet())
-            {
-                out.open("error-page", origin(md, "error."+entry.getKey()));
-                //a global or default error page has no code or exception               
-                if (!ErrorPageErrorHandler.GLOBAL_ERROR_PAGE.equals(entry.getKey()))
-                {
-                    if (entry.getKey().matches("\\d{3}"))
-                        out.tag("error-code", entry.getKey());
-                    else
-                        out.tag("exception-type", entry.getKey());
-                }
-                out.tag("location", entry.getValue());
-                out.close();
-            }
-        }
-        
-        //mime-types
-        MimeTypes mimeTypes = getMimeTypes();
-        if (mimeTypes != null)
-        {
-            for (Map.Entry<String, String> entry:mimeTypes.getMimeMap().entrySet())
-            {
-                out.open("mime-mapping");
-                out.tag("extension", origin(md, "extension."+entry.getKey()), entry.getKey());
-                out.tag("mime-type", entry.getValue());
-                out.close();
-            }
-        }
-        
-        //jsp-config
-        JspConfig jspConfig = (JspConfig)getServletContext().getJspConfigDescriptor();
-        if (jspConfig != null)
-        {
-            out.open("jsp-config");
-            Collection<TaglibDescriptor> tlds = jspConfig.getTaglibs();
-            if (tlds != null && !tlds.isEmpty())
-            {
-                for (TaglibDescriptor tld:tlds)
-                {
-                    out.open("taglib");
-                    out.tag("taglib-uri", tld.getTaglibURI());
-                    out.tag("taglib-location", tld.getTaglibLocation());
-                    out.close();
-                }
-            }
-            
-            Collection<JspPropertyGroupDescriptor> jspPropertyGroups = jspConfig.getJspPropertyGroups();
-            if (jspPropertyGroups != null && !jspPropertyGroups.isEmpty())
-            {
-                for (JspPropertyGroupDescriptor jspPropertyGroup:jspPropertyGroups)
-                {
-                    out.open("jsp-property-group");
-                    Collection<String> strings = jspPropertyGroup.getUrlPatterns();
-                    if (strings != null && !strings.isEmpty())
-                    {
-                        for (String urlPattern:strings)
-                            out.tag("url-pattern", urlPattern);
-                    }
-
-                    if (jspPropertyGroup.getElIgnored() != null)
-                        out.tag("el-ignored", jspPropertyGroup.getElIgnored());
-
-                    if (jspPropertyGroup.getPageEncoding() != null)
-                        out.tag("page-encoding", jspPropertyGroup.getPageEncoding());
-
-                    if (jspPropertyGroup.getScriptingInvalid() != null)
-                        out.tag("scripting-invalid", jspPropertyGroup.getScriptingInvalid());
-
-                    if (jspPropertyGroup.getIsXml() != null)
-                        out.tag("is-xml", jspPropertyGroup.getIsXml());
-
-                    if (jspPropertyGroup.getDeferredSyntaxAllowedAsLiteral() != null)
-                        out.tag("deferred-syntax-allowed-as-literal", jspPropertyGroup.getDeferredSyntaxAllowedAsLiteral());
-
-                    if (jspPropertyGroup.getTrimDirectiveWhitespaces() != null)
-                        out.tag("trim-directive-whitespaces", jspPropertyGroup.getTrimDirectiveWhitespaces());
-
-                    if (jspPropertyGroup.getDefaultContentType() != null)
-                        out.tag("default-content-type", jspPropertyGroup.getDefaultContentType());
-
-                    if (jspPropertyGroup.getBuffer() != null)
-                        out.tag("buffer", jspPropertyGroup.getBuffer());
-
-                    if (jspPropertyGroup.getErrorOnUndeclaredNamespace() != null)
-                        out.tag("error-on-undeclared-namespace", jspPropertyGroup.getErrorOnUndeclaredNamespace());
-
-                    strings = jspPropertyGroup.getIncludePreludes();
-                    if (strings != null && !strings.isEmpty())
-                    {
-                        for (String prelude:strings)
-                            out.tag("include-prelude", prelude);
-                    }
-                   
-                    strings = jspPropertyGroup.getIncludeCodas();
-                    if (strings != null && !strings.isEmpty())
-                    {
-                        for (String coda:strings)
-                            out.tag("include-coda", coda);
-                    }
-                   
-                    out.close();
-                }
-            }
-            
-            out.close();
-        }
-
-        //lifecycle: post-construct, pre-destroy
-        LifeCycleCallbackCollection lifecycles = ((LifeCycleCallbackCollection)getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION));
-        if (lifecycles != null)
-        {
-            Collection<LifeCycleCallback> tmp = lifecycles.getPostConstructCallbacks();
-
-            for (LifeCycleCallback c:tmp)
-            {
-                out.open("post-construct");
-                out.tag("lifecycle-callback-class", c.getTargetClassName());
-                out.tag("lifecycle-callback-method", c.getMethodName());
-                out.close();
-            }
-            
-            tmp = lifecycles.getPreDestroyCallbacks();
-            for (LifeCycleCallback c:tmp)
-            {
-                out.open("pre-destroy");
-                out.tag("lifecycle-callback-class", c.getTargetClassName());
-                out.tag("lifecycle-callback-method", c.getMethodName());
-                out.close();
-            }
-        }
-
-        out.literal(extraXML);
-        
-        out.close();
-    }
-
-    private void addContextParamFromAttribute(XmlAppendable out, String attribute) throws IOException
-    {
-        addContextParamFromAttribute(out,attribute,null);
-    }
-    
-    private void addContextParamFromAttribute(XmlAppendable out, String attribute, String resourceBase) throws IOException
-    {
-        Object o=getAttribute(attribute);
-        if (o==null)
-            return;
-                
-        Collection<?> c =  (o instanceof Collection)? (Collection<?>)o:Collections.singletonList(o);
-        StringBuilder v=new StringBuilder();
-        for (Object i:c)
-        {
-            if (i!=null)
-            {
-                if (v.length()>0)
-                    v.append(",\n    ");
-                else
-                    v.append("\n    ");
-                if (resourceBase==null)
-                    QuotedStringTokenizer.quote(v,i.toString());
-                else
-                    QuotedStringTokenizer.quote(v,i.toString().replace(resourceBase,"${WAR}/"));
-            }
-        }
-        out.open("context-param")
-        .tag("param-name",attribute)
-        .tagCDATA("param-value",v.toString())
-        .close();        
-    }
-
-    private static void outholder(XmlAppendable out, MetaData md, String tag, Holder<?> holder) throws IOException
-    {
-        out.open(tag,Collections.singletonMap("source",holder.getSource().toString()));
-        String n = holder.getName();
-        out.tag(tag + "-name",n);
-
-        String ot = n + "." + tag + ".";
-
-        out.tag(tag + "-class",origin(md,ot + tag + "-class"),holder.getClassName());
-
-        for (String p : holder.getInitParameters().keySet())
-        {
-            if ("scratchdir".equalsIgnoreCase(p)) //don't preconfigure the temp dir for jsp output
-                continue;
-            out.open("init-param",origin(md,ot + "init-param." + p))
-            .tag("param-name",p)
-            .tag("param-value",holder.getInitParameter(p))
-            .close();
-        }
-
-        if (holder instanceof ServletHolder)
-        {
-            ServletHolder s = (ServletHolder)holder;
-            if (s.getForcedPath() != null)
-                out.tag("jsp-file",s.getForcedPath());
-
-            if (s.getInitOrder() != 0)
-                out.tag("load-on-startup",Integer.toString(s.getInitOrder()));
-
-            if (s.getRunAsRole() != null)
-                out.open("run-as",origin(md,ot + "run-as"))
-                .tag("role-name",s.getRunAsRole())
-                .close();
-
-            Map<String,String> roles = s.getRoleRefMap();
-            if (roles!=null)
-            {
-                for (Map.Entry<String, String> e : roles.entrySet())
-                {
-                    out.open("security-role-ref",origin(md,ot+"role-name."+e.getKey()))
-                    .tag("role-name",e.getKey())
-                    .tag("role-link",e.getValue())
-                    .close();
-                }
-            }
-            
-            if (!s.isEnabled())
-                out.tag("enabled",origin(md,ot + "enabled"),"false");
-
-            //multipart-config
-            MultipartConfigElement multipartConfig = ((ServletHolder.Registration)s.getRegistration()).getMultipartConfig();
-            if (multipartConfig != null)
-            {
-                out.open("multipart-config", origin(md, s.getName()+".servlet.multipart-config"));
-                if (multipartConfig.getLocation() != null)
-                    out.tag("location", multipartConfig.getLocation());
-                out.tag("max-file-size", Long.toString(multipartConfig.getMaxFileSize()));
-                out.tag("max-request-size", Long.toString(multipartConfig.getMaxRequestSize()));
-                out.tag("file-size-threshold", Long.toString(multipartConfig.getFileSizeThreshold()));
-                out.close();
-            }
-        }
-
-        out.tag("async-supported",origin(md,ot + "async-supported"),holder.isAsyncSupported()?"true":"false");
-        out.close();
-    }
-
-    public static Map<String, String> origin(MetaData md, String name)
-    {
-        if (!LOG.isDebugEnabled())
-            return Collections.emptyMap();
-        if (name == null)
-            return Collections.emptyMap();
-        OriginInfo origin = md.getOriginInfo(name);
-        // System.err.println("origin of "+name+" is "+origin);
-        if (origin == null)
-            return Collections.emptyMap();
-        return Collections.singletonMap("origin",origin.toString());
-
-    }
-    
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureJNDIWar.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureJNDIWar.java
deleted file mode 100644
index 570b724..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureJNDIWar.java
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.concurrent.TimeUnit;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.util.IO;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-
-public class PreconfigureJNDIWar
-{
-    private static final long __start=System.nanoTime();
-    private static final Logger LOG = Log.getLogger(Server.class);
-    
-    public static void main(String[] args) throws Exception
-    {
-        String target="target/test-jndi-preconfigured";
-        File file = new File(target);
-        if (file.exists())
-            IO.delete(file);
-        
-        PreconfigureQuickStartWar.main("target/test-jndi.war",target, "src/test/resources/test-jndi.xml");
-
-        LOG.info("Preconfigured in {}ms",TimeUnit.NANOSECONDS.toMillis(System.nanoTime()-__start));
-        
-        IO.copy(new FileInputStream("target/test-jndi-preconfigured/WEB-INF/quickstart-web.xml"),System.out);
-    }
-
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureSpecWar.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureSpecWar.java
deleted file mode 100644
index f8b49c7..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureSpecWar.java
+++ /dev/null
@@ -1,58 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.concurrent.TimeUnit;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.util.IO;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-import org.eclipse.jetty.util.resource.Resource;
-
-public class PreconfigureSpecWar
-{
-    private static final long __start=System.nanoTime();
-    private static final Logger LOG = Log.getLogger(Server.class);
-    
-    public static void main(String[] args) throws Exception
-    {
-        String target="target/test-spec-preconfigured";
-        File file = new File(target);
-        if (file.exists())
-            IO.delete(file);
-        
-        File realmPropertiesDest = new File ("target/test-spec-realm.properties");
-        if (realmPropertiesDest.exists())
-            IO.delete(realmPropertiesDest);
-        
-        Resource realmPropertiesSrc = Resource.newResource("src/test/resources/realm.properties");
-        realmPropertiesSrc.copyTo(realmPropertiesDest);
-        System.setProperty("jetty.home", "target");
-        
-        PreconfigureQuickStartWar.main("target/test-spec.war",target, "src/test/resources/test-spec.xml");
-
-        LOG.info("Preconfigured in {}ms",TimeUnit.NANOSECONDS.toMillis(System.nanoTime()-__start));
-        
-        IO.copy(new FileInputStream("target/test-spec-preconfigured/WEB-INF/quickstart-web.xml"),System.out);
-    }
-
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureStandardTestWar.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureStandardTestWar.java
deleted file mode 100644
index 91e4241..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/PreconfigureStandardTestWar.java
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.concurrent.TimeUnit;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.util.IO;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
-import org.eclipse.jetty.util.resource.Resource;
-
-/**
- * PreconfigureStandardTestWar
- *
- */
-public class PreconfigureStandardTestWar
-{
-    
-    private static final long __start=System.nanoTime();
-    private static final Logger LOG = Log.getLogger(Server.class);
-    
-    public static void main(String[] args) throws Exception
-    {
-        String target="target/test-standard-preconfigured";
-        File file = new File(target);
-        if (file.exists())
-            IO.delete(file);
-        
-        File realmPropertiesDest = new File ("target/test-standard-realm.properties");
-        if (realmPropertiesDest.exists())
-            IO.delete(realmPropertiesDest);
-        
-        Resource realmPropertiesSrc = Resource.newResource("src/test/resources/realm.properties");
-        realmPropertiesSrc.copyTo(realmPropertiesDest);
-        System.setProperty("jetty.home", "target");
-        
-        PreconfigureQuickStartWar.main("target/test-standard.war",target, "src/test/resources/test.xml");
-
-        LOG.info("Preconfigured in {}ms",TimeUnit.NANOSECONDS.toMillis(System.nanoTime()-__start));
-        
-        IO.copy(new FileInputStream("target/test-standard-preconfigured/WEB-INF/quickstart-web.xml"),System.out);
-    }
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartJNDIWar.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartJNDIWar.java
deleted file mode 100644
index 07bc1b6..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartJNDIWar.java
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-public class QuickStartJNDIWar 
-{    
-
-    public static void main(String... args) throws Exception
-    {   
-        // Log.getRootLogger().setDebugEnabled(true);
-        Quickstart.main("target/test-jndi-preconfigured", "src/test/resources/test-jndi.xml");
-    }
-    
-    
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartSpecWar.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartSpecWar.java
deleted file mode 100644
index b84a12f..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartSpecWar.java
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-
-public class QuickStartSpecWar 
-{    
-    public static void main(String... args) throws Exception
-    {   
-        // Log.getRootLogger().setDebugEnabled(true);
-       System.setProperty("jetty.home", "target");
-       Quickstart.main("target/test-spec-preconfigured", "src/test/resources/test-spec.xml");
-    }
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartStandardTestWar.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartStandardTestWar.java
deleted file mode 100644
index 7da8b23..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/QuickStartStandardTestWar.java
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-public class QuickStartStandardTestWar 
-{
-
-    public static void main(String... args) throws Exception
-    {   
-        // Log.getRootLogger().setDebugEnabled(true);
-       System.setProperty("jetty.home", "target");
-       Quickstart.main("target/test-standard-preconfigured", "src/test/resources/test.xml");
-    }
-}
diff --git a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/Quickstart.java b/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/Quickstart.java
deleted file mode 100644
index 75dc114..0000000
--- a/jetty-quickstart/src/test/java/org/eclipse/jetty/quickstart/Quickstart.java
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.quickstart;
-
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.util.resource.Resource;
-import org.eclipse.jetty.xml.XmlConfiguration;
-
-public class Quickstart
-{
-    
-    public static void main(String... args) throws Exception
-    {   
-        if (args.length<1)
-            error("No WAR file or directory given");
-        
-        //war file or dir to start
-        String war = args[0];
-        
-        //optional jetty context xml file to configure the webapp
-        Resource contextXml = null;
-        if (args.length > 1)
-            contextXml = Resource.newResource(args[1]);
-        
-        Server server = new Server(8080);
-        
-        QuickStartWebApp webapp = new QuickStartWebApp();
-        webapp.setAutoPreconfigure(true);
-        webapp.setWar(war);
-        webapp.setContextPath("/");
-
-        //apply context xml file
-        if (contextXml != null)
-        {
-            // System.err.println("Applying "+contextXml);
-            XmlConfiguration xmlConfiguration = new XmlConfiguration(contextXml.getURL());  
-            xmlConfiguration.configure(webapp);   
-        }
-        
-        server.setHandler(webapp);
-
-        server.start();
-
-        
-      
-        server.join();
-    }
-    
-
-    private static void error(String message)
-    {
-        System.err.println("ERROR: "+message);
-        System.err.println("Usage: java -jar QuickStartWar.jar <war-directory> <context-xml>");
-        System.err.println("       java -jar QuickStartWar.jar <war-file> <context-xml>");
-        System.exit(1);
-    }
-}
diff --git a/jetty-quickstart/src/test/resources/realm.properties b/jetty-quickstart/src/test/resources/realm.properties
deleted file mode 100644
index 9d88b85..0000000
--- a/jetty-quickstart/src/test/resources/realm.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# This file defines users passwords and roles for a HashUserRealm
-#
-# The format is
-#  <username>: <password>[,<rolename> ...]
-#
-# Passwords may be clear text, obfuscated or checksummed.  The class 
-# org.eclipse.util.Password should be used to generate obfuscated
-# passwords or password checksums
-#
-# If DIGEST Authentication is used, the password must be in a recoverable
-# format, either plain text or OBF:.
-#
-jetty: MD5:164c88b302622e17050af52c89945d44,user
-admin: CRYPT:adpexzg3FUZAk,server-administrator,content-administrator,admin,user
-other: OBF:1xmk1w261u9r1w1c1xmq,user
-plain: plain,user
-user: password,user
-
-# This entry is for digest auth.  The credential is a MD5 hash of username:realmname:password
-digest: MD5:6e120743ad67abfbc385bc2bb754e297,user
diff --git a/jetty-quickstart/src/test/resources/test-jndi.xml b/jetty-quickstart/src/test/resources/test-jndi.xml
deleted file mode 100644
index 14c0934..0000000
--- a/jetty-quickstart/src/test/resources/test-jndi.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
-
-<!-- =============================================================== -->
-<!-- Configure the test-jndi webapp                                  -->
-<!-- =============================================================== -->
-<Configure id='wac' class="org.eclipse.jetty.webapp.WebAppContext">
-
-  <New id="tx" class="org.eclipse.jetty.plus.jndi.Transaction">
-    <Arg>
-      <New class="com.acme.MockUserTransaction"/>
-    </Arg>
-  </New>
-
-  <!-- Define an env entry with Server scope for java:comp/env                   -->
-  <New id="woggle"  class="org.eclipse.jetty.plus.jndi.EnvEntry">
-    <Arg><Property name='server'/></Arg>
-    <Arg>woggle</Arg>
-    <Arg type="java.lang.Integer">4000</Arg>
-    <Arg type="boolean">false</Arg>
-  </New>
-
-  <!-- Define an env entry with webapp scope for java:comp/env                   -->
-  <New id="wiggle"  class="org.eclipse.jetty.plus.jndi.EnvEntry">
-    <Arg><Ref refid='wac'/></Arg>
-    <Arg>wiggle</Arg>
-    <Arg type="java.lang.Double">100</Arg>
-    <Arg type="boolean">true</Arg>
-  </New>
-
- <!-- Mail Session setup                                          -->
- <New id="xxxmail" class="org.eclipse.jetty.plus.jndi.Resource">
-    <Arg><Ref refid='wac'/></Arg>
-     <Arg>mail/Session</Arg>
-     <Arg>
-       <New class="org.eclipse.jetty.jndi.factories.MailSessionReference">
-         <Set name="user">CHANGE-ME</Set>
-         <Set name="password">CHANGE-ME</Set>
-         <Set name="properties">
-           <New class="java.util.Properties">
-             <Put name="mail.smtp.auth">false</Put> <!-- change to true if you want to authenticate -->
-             <Put name="mail.smtp.host">CHANGE-ME</Put>
-             <Put name="mail.from">CHANGE-ME</Put>
-             <Put name="mail.debug">false</Put>
-           </New>
-          </Set>
-       </New>
-     </Arg>
- </New>
-
-  <!-- A mock DataSource                                           -->
-  <New id="mydatasource" class="org.eclipse.jetty.plus.jndi.Resource">
-    <Arg><Ref refid='wac'/></Arg>
-    <Arg>jdbc/mydatasource</Arg>
-    <Arg>
-      <New class="com.acme.MockDataSource"/>
-    </Arg>
-  </New>
-
-</Configure>
diff --git a/jetty-quickstart/src/test/resources/test-spec.xml b/jetty-quickstart/src/test/resources/test-spec.xml
deleted file mode 100644
index 99fc577..0000000
--- a/jetty-quickstart/src/test/resources/test-spec.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
-
-<Configure id='wac' class="org.eclipse.jetty.webapp.WebAppContext">
-
-  <New id="tx" class="org.eclipse.jetty.plus.jndi.Transaction">
-    <Arg>
-      <New class="com.acme.MockUserTransaction"/>
-    </Arg>
-  </New>
-
-  <Get name="securityHandler">
-    <Set name="loginService">
-      <New class="org.eclipse.jetty.security.HashLoginService">
-        <Set name="name">Test Realm</Set>
-        <Set name="config"><SystemProperty name="jetty.home" default="."/>/test-spec-realm.properties</Set>
-      </New>
-    </Set>
-  </Get>
-
-
-  <New id="maxAmount"  class="org.eclipse.jetty.plus.jndi.EnvEntry">
-    <Arg><Ref refid='wac'/></Arg>
-    <Arg>maxAmount</Arg>
-    <Arg type="java.lang.Double">100</Arg>
-    <Arg type="boolean">true</Arg>
-  </New>
-
-
-  <New id="mydatasource" class="org.eclipse.jetty.plus.jndi.Resource">
-    <Arg><Ref refid='wac'/></Arg>
-    <Arg>jdbc/mydatasource</Arg>
-    <Arg>
-     <New class="com.acme.MockDataSource">
-     </New>
-    </Arg>
-   </New>
-
-</Configure>
diff --git a/jetty-quickstart/src/test/resources/test.xml b/jetty-quickstart/src/test/resources/test.xml
deleted file mode 100644
index bbdf08a..0000000
--- a/jetty-quickstart/src/test/resources/test.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"  encoding="ISO-8859-1"?>
-<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
-
-<!-- ==================================================================
-Configure and deploy the test web application in $(jetty.home)/webapps/test
-
-Note. If this file did not exist or used a context path other that /test
-then the default configuration of jetty.xml would discover the test
-webapplication with a WebAppDeployer.  By specifying a context in this
-directory, additional configuration may be specified and hot deployments
-detected.
-===================================================================== -->
-
-<Configure class="org.eclipse.jetty.webapp.WebAppContext">
-
-  <Set name="contextPath">/test</Set>
-
-  <Get name="securityHandler">
-    <Set name="loginService">
-      <New class="org.eclipse.jetty.security.HashLoginService">
-        <Set name="name">Test Realm</Set>        
-        <Set name="config"><SystemProperty name="jetty.home" default="."/>/test-standard-realm.properties</Set>
-      </New>
-    </Set>
-    <Set name="authenticator">
-      <New class="org.eclipse.jetty.security.authentication.FormAuthenticator">
-        <Set name="alwaysSaveUri">true</Set>
-      </New>
-    </Set>
-    <Set name="checkWelcomeFiles">true</Set>
-  </Get>
-
-  <!-- Non standard error page mapping -->
-  <!--
-  <Get name="errorHandler">
-    <Call name="addErrorPage">
-      <Arg type="int">500</Arg>
-      <Arg type="int">599</Arg>
-      <Arg type="String">/dump/errorCodeRangeMapping</Arg>
-    </Call>
-  </Get>
-  -->
-
-
-</Configure>
diff --git a/pom.xml b/pom.xml
index 4393f45..73e887c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -419,8 +419,6 @@
     <module>jetty-servlets</module>
     <module>jetty-util-ajax</module>
     <module>jetty-jsp</module>
-    <module>apache-jsp</module>
-    <module>apache-jstl</module>
     <module>jetty-maven-plugin</module>
     <module>jetty-jspc-maven-plugin</module>
     <module>jetty-deploy</module>
@@ -436,7 +434,6 @@
     <module>jetty-osgi</module>
     <module>jetty-rewrite</module>
     <module>jetty-nosql</module>
-    <module>jetty-quickstart</module>
     <module>tests</module>
     <module>examples</module>
     <module>jetty-distribution</module>
@@ -522,12 +519,6 @@
       </dependency>
 
       <dependency>
-        <groupId>org.mortbay.jasper</groupId>
-        <artifactId>apache-jsp</artifactId>
-        <version>8.0.3.v20140313</version>
-      </dependency>
-
-      <dependency>
         <groupId>org.eclipse.jetty.orbit</groupId>
         <artifactId>org.eclipse.jdt.core</artifactId>
        <version>3.8.2.v20130121</version>