Merge branch 'master' into release-9
diff --git a/examples/embedded/src/main/java/HelloWorld.java b/examples/embedded/src/main/java/HelloWorld.java
new file mode 100644
index 0000000..2806fc3
--- /dev/null
+++ b/examples/embedded/src/main/java/HelloWorld.java
@@ -0,0 +1,50 @@
+//
+//  ========================================================================
+//  Copyright (c) 1995-2013 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.
+//  ========================================================================
+//
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+import java.io.IOException;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+
+public class HelloWorld extends AbstractHandler
+{
+    @Override
+    public void handle(String target,
+                       Request baseRequest,
+                       HttpServletRequest request,
+                       HttpServletResponse response) 
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html;charset=utf-8");
+        response.setStatus(HttpServletResponse.SC_OK);
+        baseRequest.setHandled(true);
+        response.getWriter().println("<h1>Hello World</h1>");
+    }
+
+    public static void main(String[] args) throws Exception
+    {
+        Server server = new Server(8080);
+        server.setHandler(new HelloWorld());
+ 
+        server.start();
+        server.join();
+    }
+}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java
index 3911a86..c77ac42 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/FileServer.java
@@ -29,29 +29,18 @@
 /* ------------------------------------------------------------ */
 /** Simple Jetty FileServer.
  * This is a simple example of Jetty configured as a FileServer.
- * 
- * File server Usage - java org.eclipse.jetty.server.example.FileServer [ port [
- * docroot ]]
- * 
- * @see FileServerXml for the equivalent example done in XML configuration.
- * @author gregw
- * 
  */
 public class FileServer
 {
-    private static final Logger LOG = Log.getLogger(FileServer.class);
-
     public static void main(String[] args) throws Exception
     {
-        Server server = new Server(args.length == 0?8080:Integer.parseInt(args[0]));
+        Server server = new Server(8080);
 
         ResourceHandler resource_handler = new ResourceHandler();
         resource_handler.setDirectoriesListed(true);
         resource_handler.setWelcomeFiles(new String[]{ "index.html" });
-
-        resource_handler.setResourceBase(args.length == 2?args[1]:".");
-        LOG.info("serving " + resource_handler.getBaseResource());
-        
+        resource_handler.setResourceBase(".");
+                
         HandlerList handlers = new HandlerList();
         handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
         server.setHandler(handlers);
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
index bd01c93..181e6c5 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
@@ -21,15 +21,20 @@
 import java.lang.management.ManagementFactory;
 
 import org.eclipse.jetty.deploy.DeploymentManager;
+import org.eclipse.jetty.deploy.PropertiesConfigurationManager;
 import org.eclipse.jetty.deploy.providers.WebAppProvider;
 import org.eclipse.jetty.jmx.MBeanContainer;
 import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.ForwardedRequestCustomizer;
 import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.HttpConfiguration;
 import org.eclipse.jetty.server.HttpConnectionFactory;
 import org.eclipse.jetty.server.LowResourceMonitor;
 import org.eclipse.jetty.server.NCSARequestLog;
+import org.eclipse.jetty.server.SecureRequestCustomizer;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 import org.eclipse.jetty.server.handler.DefaultHandler;
 import org.eclipse.jetty.server.handler.HandlerCollection;
@@ -46,31 +51,55 @@
         String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
         System.setProperty("jetty.home",jetty_home);
 
+        
+        // === jetty.xml ===
         // Setup Threadpool
         QueuedThreadPool threadPool = new QueuedThreadPool();
         threadPool.setMaxThreads(500);
 
+        // Server
         Server server = new Server(threadPool);
-        server.manage(threadPool);
+
+        // Scheduler
+        server.addBean(new TimerScheduler());
+
+        // HTTP Configuration
+        HttpConfiguration http_config = new HttpConfiguration();
+        http_config.setSecureScheme("https");
+        http_config.setSecurePort(8443);
+        http_config.setOutputBufferSize(32768);
+        http_config.setRequestHeaderSize(8192);
+        http_config.setResponseHeaderSize(8192);
+        http_config.setSendServerVersion(true);
+        http_config.setSendDateHeader(false);
+        // httpConfig.addCustomizer(new ForwardedRequestCustomizer());
+        
+        // Handler Structure
+        HandlerCollection handlers = new HandlerCollection();
+        ContextHandlerCollection contexts = new ContextHandlerCollection();
+        handlers.setHandlers(new Handler[] { contexts, new DefaultHandler() });
+        server.setHandler(handlers);
+
+        // Extra options
         server.setDumpAfterStart(false);
         server.setDumpBeforeStop(false);
-
-        server.addBean(new TimerScheduler());
+        server.setStopAtShutdown(true);
         
-        // Setup JMX
+
+        // === jetty-jmx.xml ===    
         MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
         server.addBean(mbContainer);
 
-        // Setup Connectors
-        HttpConnectionFactory http = new HttpConnectionFactory();
-        http.getHttpConfiguration().setSecurePort(8443);
-        http.getHttpConfiguration().setSendServerVersion(true);
-        ServerConnector connector = new ServerConnector(server,http);
-        connector.setPort(8080);
-        connector.setIdleTimeout(30000);
+ 
+        // === jetty-http.xml === 
+        ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));
+        http.setPort(8080);
+        http.setIdleTimeout(30000);
+        server.addConnector(http);
 
-        server.addConnector(connector);
-
+        
+        // === jetty-https.xml === 
+        // SSL Context Factory
         SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
         sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
@@ -85,52 +114,75 @@
                 "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
                 "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
                 "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
-        ServerConnector sslConnector = new ServerConnector(server,sslContextFactory);
+        
+        // SSL HTTP Configuration
+        HttpConfiguration https_config = new HttpConfiguration(http_config);
+        https_config.addCustomizer(new SecureRequestCustomizer());
+        
+        // SSL Connector
+        ServerConnector sslConnector = new ServerConnector(server,
+            new SslConnectionFactory(sslContextFactory,"http/1.1"),
+            new HttpConnectionFactory(https_config));
         sslConnector.setPort(8443);
         server.addConnector(sslConnector);
-        sslConnector.open();
 
-        HandlerCollection handlers = new HandlerCollection();
-        ContextHandlerCollection contexts = new ContextHandlerCollection();
-        RequestLogHandler requestLogHandler = new RequestLogHandler();
 
-        handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(), requestLogHandler });
-
-        StatisticsHandler stats = new StatisticsHandler();
-        stats.setHandler(handlers);
-
-        server.setHandler(stats);
-
-        // Setup deployers
+        // === jetty-deploy.xml ===
         DeploymentManager deployer = new DeploymentManager();
         deployer.setContexts(contexts);
-        server.addBean(deployer);
+        deployer.setContextAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*/servlet-api-[^/]*\\.jar$");
 
         WebAppProvider webapp_provider = new WebAppProvider();
         webapp_provider.setMonitoredDirName(jetty_home + "/webapps");
-        webapp_provider.setParentLoaderPriority(false);
+        webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
+        webapp_provider.setScanInterval(1);
         webapp_provider.setExtractWars(true);
-        webapp_provider.setScanInterval(2);
-        //webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
-        deployer.addAppProvider(webapp_provider);
+        webapp_provider.setConfigurationManager(new PropertiesConfigurationManager());
 
+        deployer.addAppProvider(webapp_provider);
+        server.addBean(deployer);
+        
+
+        // === jetty-stats.xml === 
+        StatisticsHandler stats = new StatisticsHandler();
+        stats.setHandler(server.getHandler());
+        server.setHandler(stats);
+
+
+        // === jetty-requestlog.xml === 
+        NCSARequestLog requestLog = new NCSARequestLog();
+        requestLog.setFilename(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
+        requestLog.setFilenameDateFormat("yyyy_MM_dd");
+        requestLog.setRetainDays(90);
+        requestLog.setAppend(true);
+        requestLog.setExtended(false);
+        requestLog.setLogCookies(false);
+        requestLog.setLogTimeZone("GMT");
+        RequestLogHandler requestLogHandler = new RequestLogHandler();
+        requestLogHandler.setRequestLog(requestLog);
+        handlers.addHandler(requestLogHandler);
+
+
+        // === jetty-lowresources.xml === 
+        LowResourceMonitor lowResourcesMonitor=new LowResourceMonitor(server);
+        lowResourcesMonitor.setPeriod(1000);
+        lowResourcesMonitor.setLowResourcesIdleTimeout(200);
+        lowResourcesMonitor.setMonitorThreads(true);
+        lowResourcesMonitor.setMaxConnections(0);
+        lowResourcesMonitor.setMaxMemory(0);
+        lowResourcesMonitor.setMaxLowResourcesTime(5000);
+        server.addBean(lowResourcesMonitor);
+
+        
+        // === test-realm.xml === 
         HashLoginService login = new HashLoginService();
         login.setName("Test Realm");
         login.setConfig(jetty_home + "/etc/realm.properties");
+        login.setRefreshInterval(0);
         server.addBean(login);
 
-        NCSARequestLog requestLog = new NCSARequestLog(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
-        requestLog.setExtended(false);
-        requestLogHandler.setRequestLog(requestLog);
 
-        server.setStopAtShutdown(true);
-        
-        LowResourceMonitor lowResourcesMonitor=new LowResourceMonitor(server);
-        lowResourcesMonitor.setLowResourcesIdleTimeout(1000);
-        lowResourcesMonitor.setMaxConnections(2);
-        lowResourcesMonitor.setPeriod(1200);
-        server.addBean(lowResourcesMonitor);
-
+        // Start the server 
         server.start();
         server.join();
     }
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java
index 259ee52..c8b5f94 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyConnectors.java
@@ -18,100 +18,64 @@
 
 package org.eclipse.jetty.embedded;
 
-import org.eclipse.jetty.io.ArrayByteBufferPool;
-import org.eclipse.jetty.io.ByteBufferPool;
 import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.ForwardedRequestCustomizer;
 import org.eclipse.jetty.server.HttpConfiguration;
 import org.eclipse.jetty.server.HttpConnectionFactory;
 import org.eclipse.jetty.server.SecureRequestCustomizer;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.SslConnectionFactory;
-import org.eclipse.jetty.spdy.server.NPNServerConnectionFactory;
-import org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory;
-import org.eclipse.jetty.spdy.server.http.PushStrategy;
-import org.eclipse.jetty.spdy.server.http.ReferrerPushStrategy;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
-import org.eclipse.jetty.util.thread.QueuedThreadPool;
-import org.eclipse.jetty.util.thread.TimerScheduler;
 
 /* ------------------------------------------------------------ */
 /**
  * A Jetty server with multiple connectors.
- *
  */
 public class ManyConnectors
 {
     public static void main(String[] args) throws Exception
     {
-        String jetty_home = System.getProperty("jetty.home","../jetty-server/src/main/config");
+        String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
         System.setProperty("jetty.home", jetty_home);
 
+        // The Server
         Server server = new Server();
 
-        // HTTP connector
-        ServerConnector connector0 = new ServerConnector(server);
-        connector0.setPort(8080);
-        connector0.setIdleTimeout(30000);
+        // HTTP Configuration
+        HttpConfiguration http_config = new HttpConfiguration();
+        http_config.setSecureScheme("https");
+        http_config.setSecurePort(8443);
+        http_config.setOutputBufferSize(32768);
 
-        // HTTPS connector
+        // HTTP connector
+        ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));        
+        http.setPort(8080);
+        http.setIdleTimeout(30000);
+        
+        // SSL Context Factory for HTTPS and SPDY
         SslContextFactory sslContextFactory = new SslContextFactory();
         sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
         sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
         sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
 
-        ServerConnector connector1 = new ServerConnector(server,sslContextFactory);
-        connector1.setPort(8443);
+        // HTTPS Configuration
+        HttpConfiguration https_config = new HttpConfiguration(http_config);
+        https_config.addCustomizer(new SecureRequestCustomizer());
 
-
-        // A verbosely fully configured connector with SSL, SPDY and HTTP
-
-        HttpConfiguration config = new HttpConfiguration();
-        config.setSecureScheme("https");
-        config.setSecurePort(8443);
-        config.setOutputBufferSize(32768);
-        config.setRequestHeaderSize(8192);
-        config.setResponseHeaderSize(8192);
-        config.addCustomizer(new ForwardedRequestCustomizer());
-        config.addCustomizer(new SecureRequestCustomizer());
-
-        HttpConnectionFactory http = new HttpConnectionFactory(config);
-        http.setInputBufferSize(16384);
-
-        PushStrategy push = new ReferrerPushStrategy();
-        HTTPSPDYServerConnectionFactory spdy2 = new HTTPSPDYServerConnectionFactory(2,config,push);
-        spdy2.setInputBufferSize(8192);
-        spdy2.setInitialWindowSize(32768);
-
-        HTTPSPDYServerConnectionFactory spdy3 = new HTTPSPDYServerConnectionFactory(3,config,push);
-        spdy2.setInputBufferSize(8192);
-
-        NPNServerConnectionFactory npn = new NPNServerConnectionFactory(spdy3.getProtocol(),spdy2.getProtocol(),http.getProtocol());
-        npn.setDefaultProtocol(http.getProtocol());
-        npn.setInputBufferSize(1024);
-
-        SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,npn.getProtocol());
-
-        QueuedThreadPool threadPool = new QueuedThreadPool();
-        threadPool.setMaxThreads(256);
-        TimerScheduler scheduler = new TimerScheduler();
-        ByteBufferPool bufferPool= new ArrayByteBufferPool(32,4096,32768);
-
-        ServerConnector connector2 = new ServerConnector(server,threadPool,scheduler,bufferPool,2,2,ssl,npn,spdy3,spdy2,http);
-        connector2.setDefaultProtocol("ssl-npn");
-        connector2.setPort(8444);
-        connector2.setIdleTimeout(30000);
-        connector2.setSoLingerTime(10000);
+        // HTTPS connector
+        ServerConnector https = new ServerConnector(server,
+            new SslConnectionFactory(sslContextFactory,"http/1.1"),
+            new HttpConnectionFactory(https_config));
+        https.setPort(8443);
 
         // Set the connectors
-        server.setConnectors(new Connector[] { connector0, connector1, connector2 });
+        server.setConnectors(new Connector[] { http, https });
 
-
+        // Set a handler
         server.setHandler(new HelloHandler());
 
+        // Start the server
         server.start();
-        server.dumpStdErr();
         server.join();
     }
 }
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java
index 5c39667..80176ef 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/ManyContexts.java
@@ -18,60 +18,37 @@
 
 package org.eclipse.jetty.embedded;
 
-import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.handler.ContextHandler;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 
-/* ------------------------------------------------------------ */
-/**
- * A {@link ContextHandlerCollection} handler may be used to direct a request to
- * a specific Context. The URI path prefix and optional virtual host is used to
- * select the context.
- * 
- */
 public class ManyContexts
 {
-    public final static String BODY=
-        "<a href='/'>root context</a><br/>"+
-        "<a href='http://127.0.0.1:8080/context'>normal context</a><br/>"+
-        "<a href='http://127.0.0.2:8080/context'>virtual context</a><br/>";
-        
     public static void main(String[] args) throws Exception
     {
-        Server server = new Server();
-        ServerConnector connector = new ServerConnector(server);
-        connector.setPort(8080);
-        server.setConnectors(new Connector[]
-        { connector });
+        Server server = new Server(8080);
 
-        ContextHandler context0 = new ContextHandler();
-        context0.setContextPath("/");
-        Handler handler0 = new HelloHandler("Root Context",BODY);
-        context0.setHandler(handler0);
+        ContextHandler context = new ContextHandler("/");
+        context.setContextPath("/");
+        context.setHandler(new HelloHandler("Root Hello"));
 
-        ContextHandler context1 = new ContextHandler();
-        context1.setContextPath("/context");
-        Handler handler1 = new HelloHandler("A Context",BODY);
-        context1.setHandler(handler1);
+        ContextHandler contextFR = new ContextHandler("/fr");
+        contextFR.setHandler(new HelloHandler("Bonjoir"));
+        
+        ContextHandler contextIT = new ContextHandler("/it");
+        contextIT.setHandler(new HelloHandler("Bongiorno"));
 
-        ContextHandler context2 = new ContextHandler();
-        context2.setContextPath("/context");
-        context2.setVirtualHosts(new String[]
-        { "127.0.0.2" });
-        Handler handler2 = new HelloHandler("A Virtual Context",BODY);
-        context2.setHandler(handler2);
+        ContextHandler contextV = new ContextHandler("/");
+        contextV.setVirtualHosts(new String[]{ "127.0.0.2" });
+        contextV.setHandler(new HelloHandler("Virtual Hello"));
 
         ContextHandlerCollection contexts = new ContextHandlerCollection();
-        contexts.setHandlers(new Handler[]
-        { context0, context1, context2 });
+        contexts.setHandlers(new Handler[] { context, contextFR, contextIT, contextV });
 
         server.setHandler(contexts);
 
         server.start();
-        System.err.println(server.dump());
         server.join();
     }
 }
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
index bb2ff17..5d371e2 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
@@ -36,12 +36,12 @@
         ServletHandler handler = new ServletHandler();
         server.setHandler(handler);
 
-        handler.addServletWithMapping("org.eclipse.jetty.embedded.MinimalServlets$HelloServlet","/");
+        handler.addServletWithMapping(HelloServlet.class,"/*");
 
         server.start();
         server.join();
     }
-
+    
     public static class HelloServlet extends HttpServlet
     {
         @Override
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java
new file mode 100644
index 0000000..0459c43
--- /dev/null
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneConnector.java
@@ -0,0 +1,51 @@
+//
+//  ========================================================================
+//  Copyright (c) 1995-2013 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.embedded;
+
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+
+/* ------------------------------------------------------------ */
+/**
+ * A Jetty server with one connectors.
+ */
+public class OneConnector
+{
+    public static void main(String[] args) throws Exception
+    {
+        // The Server
+        Server server = new Server();
+
+        // HTTP connector
+        ServerConnector http = new ServerConnector(server);
+        http.setHost("localhost");
+        http.setPort(8080);
+        http.setIdleTimeout(30000);
+        
+        // Set the connector
+        server.addConnector(http);
+
+        // Set a handler
+        server.setHandler(new HelloHandler());
+
+        // Start the server
+        server.start();
+        server.join();
+    }
+}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java
index 8305e6b..3e91ec4 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java
@@ -37,10 +37,8 @@
         holder.setInitParameter("resourceBase","/tmp");
         holder.setInitParameter("pathInfoOnly","true");
         
-        // Serve some hello world servlets
-        context.addServlet(new ServletHolder(new HelloServlet()),"/*");
-        context.addServlet(new ServletHolder(new HelloServlet("Buongiorno Mondo")),"/it/*");
-        context.addServlet(new ServletHolder(new HelloServlet("Bonjour le Monde")),"/fr/*");
+        // A Dump Servlet
+        context.addServlet(new ServletHolder(new DumpServlet()),"/*");
 
         server.start();
         server.join();
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java
index 281ec11..87a1a66 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneWebApp.java
@@ -18,6 +18,7 @@
 
 package org.eclipse.jetty.embedded;
 
+import org.eclipse.jetty.security.HashLoginService;
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
@@ -27,36 +28,18 @@
 {
     public static void main(String[] args) throws Exception
     {
-        Server server = new Server();
-
-        ServerConnector connector = new ServerConnector(server);
-        connector.setPort(Integer.getInteger("jetty.port",8080).intValue());
-        server.setConnectors(new Connector[]
-        { connector });
-
-
-        //If you're running this from inside Eclipse, then Server.getVersion will not provide
-        //the correct number as there is no manifest. Use the command line instead to provide the path to the
-        //test webapp
-        String war = args.length > 0?args[0]: "../test-jetty-webapp/target/test-jetty-webapp-"+Server.getVersion();
-        String path = args.length > 1?args[1]:"/";
-
-        System.err.println(war + " " + path);
+        Server server = new Server(8080);
 
         WebAppContext webapp = new WebAppContext();
-        webapp.setContextPath(path);
-        webapp.setWar(war);
-        
-        //If the webapp contains security constraints, you will need to configure a LoginService
-        if (war.contains("test-jetty-webapp"))
-        {
-            org.eclipse.jetty.security.HashLoginService loginService = new org.eclipse.jetty.security.HashLoginService();
-            loginService.setName("Test Realm");
-            loginService.setConfig("src/test/resources/realm.properties");
-            webapp.getSecurityHandler().setLoginService(loginService);
-        }
-
+        webapp.setContextPath("/");
+        webapp.setWar("../../tests/test-webapps/test-jetty-webapp/target/test-jetty-webapp-9.0.0-SNAPSHOT.war");
         server.setHandler(webapp);
+        
+        // Configure a LoginService
+        HashLoginService loginService = new HashLoginService();
+        loginService.setName("Test Realm");
+        loginService.setConfig("src/test/resources/realm.properties");
+        server.addBean(loginService);
 
         server.start();
         server.join();
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
new file mode 100644
index 0000000..8b1ffba
--- /dev/null
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java
@@ -0,0 +1,96 @@
+//
+//  ========================================================================
+//  Copyright (c) 1995-2013 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.embedded;
+
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.SecureRequestCustomizer;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
+import org.eclipse.jetty.spdy.server.NPNServerConnectionFactory;
+import org.eclipse.jetty.spdy.server.SPDYServerConnectionFactory;
+import org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory;
+import org.eclipse.jetty.spdy.server.http.ReferrerPushStrategy;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+
+/* ------------------------------------------------------------ */
+/**
+ * A Jetty server with HTTP and SPDY connectors.
+ */
+public class SpdyConnector
+{
+    public static void main(String[] args) throws Exception
+    {
+        String jetty_home = System.getProperty("jetty.home","../../jetty-distribution/target/distribution");
+        System.setProperty("jetty.home", jetty_home);
+
+        // The Server
+        Server server = new Server();
+
+        // HTTP Configuration
+        HttpConfiguration http_config = new HttpConfiguration();
+        http_config.setSecureScheme("https");
+        http_config.setSecurePort(8443);
+
+        // HTTP connector
+        ServerConnector http = new ServerConnector(server,new HttpConnectionFactory(http_config));        
+        http.setPort(8080);
+        server.addConnector(http);
+ 
+        // SSL Context Factory for HTTPS and SPDY
+        SslContextFactory sslContextFactory = new SslContextFactory();
+        sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
+        sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
+        sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
+
+        // HTTPS Configuration
+        HttpConfiguration https_config = new HttpConfiguration(http_config);
+        https_config.addCustomizer(new SecureRequestCustomizer());
+        
+        // SPDY versions
+        HTTPSPDYServerConnectionFactory spdy2 = 
+            new HTTPSPDYServerConnectionFactory(2,https_config);
+
+        HTTPSPDYServerConnectionFactory spdy3 = 
+            new HTTPSPDYServerConnectionFactory(3,https_config,new ReferrerPushStrategy());
+
+        // NPN Factory
+        SPDYServerConnectionFactory.checkNPNAvailable();
+        NPNServerConnectionFactory npn = 
+            new NPNServerConnectionFactory(spdy3.getProtocol(),spdy2.getProtocol(),http.getDefaultProtocol());
+        npn.setDefaultProtocol(http.getDefaultProtocol());
+        
+        // SSL Factory
+        SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory,npn.getProtocol());
+        
+        // SPDY Connector
+        ServerConnector spdyConnector = 
+            new ServerConnector(server,ssl,npn,spdy3,spdy2,new HttpConnectionFactory(https_config));
+        spdyConnector.setPort(8443);
+        server.addConnector(spdyConnector);
+        
+        // Set a handler
+        server.setHandler(new HelloHandler());
+
+        // Start the server
+        server.start();
+        server.join();
+    }
+}
diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
index e9d12cb..8171a94 100644
--- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
+++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java
@@ -81,8 +81,6 @@
         httpConnector.setPort(8080);
         httpConnector.setIdleTimeout(10000);
         server.addConnector(httpConnector);
-
-        
         
         // SSL configurations
         SslContextFactory sslContextFactory = new SslContextFactory();
@@ -99,8 +97,6 @@
                 "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
                 "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
                 "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
-        
-        
 
 
         // Spdy Connector
diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
index fa0fd89..f49c07e 100644
--- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
+++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
@@ -25,8 +25,10 @@
 import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
+import java.util.Set;
 import java.util.jar.JarEntry;
 
 import org.eclipse.jetty.util.Loader;
@@ -50,7 +52,7 @@
 {
     private static final Logger LOG = Log.getLogger(AnnotationParser.class);
 
-    protected List<String> _parsedClassNames = new ArrayList<String>();    
+    protected Set<String> _parsedClassNames = new HashSet<String>();
     protected List<Handler> _handlers = new ArrayList<Handler>();
 
     public static String normalize (String name)
diff --git a/jetty-server/src/main/config/etc/jetty-https.xml b/jetty-server/src/main/config/etc/jetty-https.xml
index 82a57d6..a4aad59 100644
--- a/jetty-server/src/main/config/etc/jetty-https.xml
+++ b/jetty-server/src/main/config/etc/jetty-https.xml
@@ -24,6 +24,17 @@
     <Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
     <Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
     <Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
+    <Set name="ExcludedCipherSuites">
+      <Array type="String">
+        <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
+        <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
+        <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
+        <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
+        <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+        <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+        <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
+      </Array>
+    </Set>
   </New>
 
   <!-- =========================================================== -->
@@ -32,7 +43,7 @@
   <!-- Add a SecureRequestCustomizer to extract certificate and    -->
   <!-- session information                                         -->
   <!-- =========================================================== -->
-  <New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+  <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
     <Arg><Ref refid="httpConfig"/></Arg>
     <Call name="addCustomizer">
       <Arg><New class="org.eclipse.jetty.server.SecureRequestCustomizer"/></Arg>
@@ -65,7 +76,7 @@
               </Item>
               <Item>
                 <New class="org.eclipse.jetty.server.HttpConnectionFactory">
-                  <Arg name="config"><Ref refid="tlsHttpConfig"/></Arg>
+                  <Arg name="config"><Ref refid="sslHttpConfig"/></Arg>
                 </New>
               </Item>
             </Array>
diff --git a/jetty-server/src/main/config/etc/jetty.xml b/jetty-server/src/main/config/etc/jetty.xml
index 477ba55..8a4c695 100644
--- a/jetty-server/src/main/config/etc/jetty.xml
+++ b/jetty-server/src/main/config/etc/jetty.xml
@@ -49,6 +49,15 @@
         <Set name="detailedDump">false</Set>
       </New>
     </Arg>
+    
+    <!-- =========================================================== -->
+    <!-- Add shared Scheduler instance                               -->
+    <!-- =========================================================== -->
+    <Call name="addBean">
+      <Arg>
+        <New class="org.eclipse.jetty.util.thread.TimerScheduler.TimerScheduler"/>
+      </Arg>
+    </Call>
 
     <!-- =========================================================== -->
     <!-- Http Configuration.                                         -->
@@ -71,10 +80,8 @@
       <Set name="outputBufferSize">32768</Set>
       <Set name="requestHeaderSize">8192</Set>
       <Set name="responseHeaderSize">8192</Set>
-      
-      <!-- Uncomment to not send the server version as a header
-      <Set name="sendServerVersion">false</Set>
-      -->
+      <Set name="sendServerVersion">true</Set>
+      <Set name="sendDateHeader">false</Set>
       
       <!-- Uncomment to enable handling of X-Forwarded- style headers 
       <Call name="addCustomizer">
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnectionFactory.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnectionFactory.java
index b14306a..cd55b95 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnectionFactory.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnectionFactory.java
@@ -25,6 +25,13 @@
 import org.eclipse.jetty.io.EndPoint;
 import org.eclipse.jetty.util.annotation.Name;
 
+
+/* ------------------------------------------------------------ */
+/** A Connection Factory for HTTP Connections.
+ * <p>Accepts connections either directly or via SSL and/or NPN chained connection factories.  The accepted 
+ * {@link HttpConnection}s are configured by a {@link HttpConfiguration} instance that is either created by
+ * default or passed in to the constructor.
+ */
 public class HttpConnectionFactory extends AbstractConnectionFactory implements HttpConfiguration.ConnectionFactory
 {
     private final HttpConfiguration _config;
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java
index 6ee3014..79a5d8f 100644
--- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java
+++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java
@@ -65,19 +65,23 @@
         _list=null;
         _entry=null;
         _file=null;
-        
-        if ( _jarFile != null )
+        //if the jvm is not doing url caching, then the JarFiles will not be cached either,
+        //and so they are safe to close
+        if (!getUseCaches())
         {
-            try
+            if ( _jarFile != null )
             {
-                _jarFile.close();
-            }
-            catch ( IOException ioe )
-            {
-                LOG.ignore(ioe);
+                try
+                {
+                    LOG.debug("Closing JarFile "+_jarFile.getName());
+                    _jarFile.close();
+                }
+                catch ( IOException ioe )
+                {
+                    LOG.ignore(ioe);
+                }
             }
         }
-        
         _jarFile=null;
         super.release();
     }
diff --git a/jetty-util/src/test/resources/TestData/test/META-INF/MANIFEST.MF b/jetty-util/src/test/resources/TestData/test/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..b1f9510
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0

+Created-By: 1.2.2 (Sun Microsystems Inc.)

+

diff --git a/jetty-util/src/test/resources/TestData/test/alphabet b/jetty-util/src/test/resources/TestData/test/alphabet
new file mode 100755
index 0000000..72d007b
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/alphabet
@@ -0,0 +1 @@
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/jetty-util/src/test/resources/TestData/test/numbers b/jetty-util/src/test/resources/TestData/test/numbers
new file mode 100755
index 0000000..a32a434
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/numbers
@@ -0,0 +1 @@
+1234567890
diff --git a/jetty-util/src/test/resources/TestData/test/subdir/alphabet b/jetty-util/src/test/resources/TestData/test/subdir/alphabet
new file mode 100755
index 0000000..72d007b
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/subdir/alphabet
@@ -0,0 +1 @@
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/jetty-util/src/test/resources/TestData/test/subdir/numbers b/jetty-util/src/test/resources/TestData/test/subdir/numbers
new file mode 100755
index 0000000..a32a434
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/subdir/numbers
@@ -0,0 +1 @@
+1234567890
diff --git a/jetty-util/src/test/resources/TestData/test/subdir/subsubdir/alphabet b/jetty-util/src/test/resources/TestData/test/subdir/subsubdir/alphabet
new file mode 100755
index 0000000..72d007b
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/subdir/subsubdir/alphabet
@@ -0,0 +1 @@
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/jetty-util/src/test/resources/TestData/test/subdir/subsubdir/numbers b/jetty-util/src/test/resources/TestData/test/subdir/subsubdir/numbers
new file mode 100755
index 0000000..a32a434
--- /dev/null
+++ b/jetty-util/src/test/resources/TestData/test/subdir/subsubdir/numbers
@@ -0,0 +1 @@
+1234567890
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
index 8303f16..8318787 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
@@ -116,6 +116,7 @@
         "org.eclipse.jetty.jndi.",          // webapp cannot change naming classes
         "org.eclipse.jetty.jaas.",          // webapp cannot change jaas classes
         "org.eclipse.jetty.websocket.",        // WebSocket is a jetty extension
+        "org.eclipse.jetty.websocket.WebSocketServlet", // webapp cannot change WebSocketServlet
         "org.eclipse.jetty.servlet.DefaultServlet" // webapp cannot change default servlets
     } ;
 
@@ -129,6 +130,7 @@
         "-org.eclipse.jetty.jndi.",         // don't hide naming classes
         "-org.eclipse.jetty.jaas.",         // don't hide jaas classes
         "-org.eclipse.jetty.servlets.",     // don't hide jetty servlets
+        "-org.eclipse.jetty.websocket.WebSocketServlet", // don't hide WebSocketServlet
         "-org.eclipse.jetty.servlet.DefaultServlet", // don't hide default servlet
         "-org.eclipse.jetty.servlet.listener.", // don't hide useful listeners
         "-org.eclipse.jetty.websocket.",    //not a serverclass, is a systemclass
diff --git a/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketMinVersionTest.java b/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketMinVersionTest.java
new file mode 100644
index 0000000..5fb4713
--- /dev/null
+++ b/jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketMinVersionTest.java
@@ -0,0 +1,119 @@
+//
+//  ========================================================================
+//  Copyright (c) 1995-2013 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.websocket;
+
+import static org.hamcrest.Matchers.*;
+
+import java.net.URI;
+import java.util.concurrent.TimeUnit;
+
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.websocket.helper.CaptureSocket;
+import org.eclipse.jetty.websocket.helper.SafariD00;
+import org.eclipse.jetty.websocket.helper.WebSocketCaptureServlet;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class WebSocketMinVersionTest
+{
+    private Server server;
+    private WebSocketCaptureServlet servlet;
+    private URI serverUri;
+
+    @BeforeClass
+    public static void initLogging()
+    {
+        // Configure Logging
+        // System.setProperty("org.eclipse.jetty.util.log.class",StdErrLog.class.getName());
+        System.setProperty("org.eclipse.jetty.websocket.helper.LEVEL","DEBUG");
+    }
+
+    @Before
+    public void startServer() throws Exception
+    {
+        // Configure Server
+        server = new Server(0);
+
+        ServletContextHandler context = new ServletContextHandler();
+        context.setContextPath("/");
+        server.setHandler(context);
+
+        // Serve capture servlet
+        servlet = new WebSocketCaptureServlet();
+        ServletHolder holder = new ServletHolder(servlet);
+        holder.setInitParameter("minVersion","8");
+        context.addServlet(holder,"/");
+
+        // Start Server
+        server.start();
+
+        Connector conn = server.getConnectors()[0];
+        String host = conn.getHost();
+        if (host == null)
+        {
+            host = "localhost";
+        }
+        int port = conn.getLocalPort();
+        serverUri = new URI(String.format("ws://%s:%d/",host,port));
+        // System.out.printf("Server URI: %s%n",serverUri);
+    }
+
+    @Test
+    public void testAttemptUpgrade() throws Exception
+    {
+        SafariD00 safari = new SafariD00(serverUri);
+
+        try
+        {
+            safari.connect();
+            safari.issueHandshake();
+            Assert.fail("Expected upgrade failure");
+        }
+        catch(IllegalStateException e) {
+            String respHeader = e.getMessage();
+            Assert.assertThat("Response Header", respHeader, allOf(
+                    containsString("HTTP/1.1 400 Unsupported"),
+                    containsString("minVersion [8]"),
+                    containsString("[13, 8]")));
+        }
+        finally
+        {
+            // System.out.println("Closing client socket");
+            safari.disconnect();
+        }
+    }
+
+    public static void threadSleep(int dur, TimeUnit unit) throws InterruptedException
+    {
+        long ms = TimeUnit.MILLISECONDS.convert(dur,unit);
+        Thread.sleep(ms);
+    }
+
+    @After
+    public void stopServer() throws Exception
+    {
+        server.stop();
+    }
+}
diff --git a/tests/test-webapps/test-jndi-webapp/src/main/templates/jetty-test-jndi-header.xml b/tests/test-webapps/test-jndi-webapp/src/main/templates/jetty-test-jndi-header.xml
index 0faae62..de012e7 100644
--- a/tests/test-webapps/test-jndi-webapp/src/main/templates/jetty-test-jndi-header.xml
+++ b/tests/test-webapps/test-jndi-webapp/src/main/templates/jetty-test-jndi-header.xml
@@ -15,6 +15,8 @@
   <!-- =============================================================== -->
   <!-- Configure the webapp                                            -->
   <!-- =============================================================== -->
+ <!-- Only uncomment if you are not using etc/jetty-plus.xml from start.ini
+
   <Set name="configurationClasses">
     <Call class="org.eclipse.jetty.webapp.Configuration$ClassList" name="serverDefault">
       <Arg><Ref refid="Server" /></Arg>
@@ -30,6 +32,7 @@
       </Call>
     </Call>
   </Set>
+ -->
 
   <Set name="contextPath">/test-jndi</Set>
   <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/test-jndi.war</Set>
diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/src/main/templates/annotations-context-header.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/src/main/templates/annotations-context-header.xml
index 775008f..1ec49c7 100644
--- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/src/main/templates/annotations-context-header.xml
+++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/src/main/templates/annotations-context-header.xml
@@ -18,6 +18,9 @@
   <!-- =============================================================== -->
   <!-- Configure the webapp                                            -->
   <!-- =============================================================== -->
+  <!-- Only uncomment this if you are not using the plus and 
+       annotations sections of start.ini
+
   <Set name="configurationClasses">
     <Call class="org.eclipse.jetty.webapp.Configuration$ClassList" name="serverDefault">
       <Arg><Ref refid="Server" /></Arg>
@@ -33,6 +36,7 @@
       </Call>
     </Call>
   </Set>
+  -->
 
   <Set name="contextPath">/test-spec</Set>
   <Set name="war"><SystemProperty name="jetty.home"/>/webapps/test-spec.war</Set>