Description: Update to Jetty 8
Origin: backport, https://svn.apache.org/r1298108 
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
@@ -22,19 +22,20 @@
 import java.net.URL;
 import java.util.Random;
 
+import javax.servlet.DispatcherType;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.solr.servlet.SolrDispatchFilter;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.bio.SocketConnector;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.FilterHolder;
-import org.mortbay.jetty.servlet.HashSessionIdManager;
-import org.mortbay.log.Logger;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.server.session.DefaultSessionIdManager;
+import org.eclipse.jetty.util.log.Logger;
 
 /**
  * Run solr using jetty
@@ -81,20 +82,20 @@
     if (System.getProperty("jetty.testMode") != null) {
       // SelectChannelConnector connector = new SelectChannelConnector();
       // Normal SocketConnector is what solr's example server uses by default
-      SocketConnector connector = new SocketConnector();
+      ServerConnector connector = new ServerConnector(server);
       connector.setPort(port);
       connector.setReuseAddress(true);
       server.setConnectors(new Connector[] { connector });
-      server.setSessionIdManager(new HashSessionIdManager(new Random()));
+      server.setSessionIdManager(new DefaultSessionIdManager(server, new Random()));
     }
     server.setStopAtShutdown( true );
     
     // Initialize the servlets
-    Context root = new Context( server, context, Context.SESSIONS );
+    ServletContextHandler root = new ServletContextHandler(server,context,ServletContextHandler.SESSIONS);
     
     // for some reason, there must be a servlet for this to get applied
     root.addServlet( Servlet404.class, "/*" );
-    dispatchFilter = root.addFilter( SolrDispatchFilter.class, "*", Handler.REQUEST );
+    dispatchFilter = root.addFilter(SolrDispatchFilter.class, "*", java.util.EnumSet.of(DispatcherType.REQUEST) );
   }
 
   //------------------------------------------------------------------------------------------------
@@ -160,7 +161,7 @@
     if (0 == conns.length) {
       throw new RuntimeException("Jetty Server has no Connectors");
     }
-    return conns[0].getLocalPort();
+    return ((org.eclipse.jetty.server.NetworkConnector) conns[0]).getLocalPort();
   }
 
   //--------------------------------------------------------------
@@ -220,11 +221,52 @@
     debug=enabled;
   }
   
-  public void info(String msg,Object arg0, Object arg1) {}
   public void debug(String msg,Throwable th){}
-  public void debug(String msg,Object arg0, Object arg1){}
-  public void warn(String msg,Object arg0, Object arg1){}
-  public void warn(String msg, Throwable th){}
+
+  @Override
+  public void debug(Throwable arg0) {
+  }
+
+  @Override
+  public void debug(String arg0, Object... arg1) {
+  }
+
+  @Override
+  public void debug(String arg0, long arg1) {
+  }
+
+  @Override
+  public String getName() {
+    return toString();
+  }
+
+  @Override
+  public void ignore(Throwable arg0) {
+  }
+
+  @Override
+  public void info(Throwable arg0) {
+  }
+
+  @Override
+  public void info(String arg0, Object... arg1) {
+  }
+
+  @Override
+  public void info(String arg0, Throwable arg1) {
+  }
+
+  @Override
+  public void warn(Throwable arg0) {
+  }
+
+  @Override
+  public void warn(String arg0, Object... arg1) {
+  }
+
+  @Override
+  public void warn(String arg0, Throwable arg1) {
+  }
 
   public Logger getLogger(String name)
   {
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
@@ -17,10 +17,10 @@
 
 package org.apache.solr.client.solrj;
 
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.bio.SocketConnector;
-import org.mortbay.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.webapp.WebAppContext;
 
 /**
  * @since solr 1.3
@@ -32,9 +32,9 @@
     //System.setProperty("solr.solr.home", "../../../example/solr");
 
     Server server = new Server();
-    SocketConnector connector = new SocketConnector();
+    ServerConnector connector = new ServerConnector(server);
     // Set some timeout options to make debugging easier.
-    connector.setMaxIdleTime(1000 * 60 * 60);
+    connector.setIdleTimeout(1000 * 60 * 60);
     connector.setSoLingerTime(-1);
     connector.setPort(8080);
     server.setConnectors(new Connector[] { connector });
@@ -52,7 +52,7 @@
 //      mBeanContainer.start();
 //    }
     
-    server.addHandler(bb);
+    server.setHandler(bb);
 
     try {
       System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
@@ -29,11 +29,12 @@
 import org.junit.Rule;
 import org.junit.rules.RuleChain;
 import org.junit.rules.TestRule;
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.bio.SocketConnector;
-import org.mortbay.jetty.servlet.HashSessionIdManager;
-import org.mortbay.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.session.HashSessionIdManager;
+import org.eclipse.jetty.webapp.Configuration;
+import org.eclipse.jetty.webapp.WebAppContext;
 
 /**
  * @version $Id$
@@ -67,8 +68,12 @@
     server.setSessionIdManager(new HashSessionIdManager(new Random(random.nextLong())));
     new WebAppContext(server, path, context );
 
-    SocketConnector connector = new SocketConnector();
-    connector.setMaxIdleTime(1000 * 60 * 60);
+    Configuration.ClassList classlist = Configuration.ClassList.setServerDefault(server);
+    classlist.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
+                        "org.eclipse.jetty.annotations.AnnotationConfiguration");
+
+    ServerConnector connector = new ServerConnector(server);
+    connector.setIdleTimeout(1000 * 60 * 60);
     connector.setSoLingerTime(-1);
     connector.setPort(0);
     server.setConnectors(new Connector[]{connector});
