[MNG-6731] Jetty getLocalPort() returns -1 resulting in build failures
diff --git a/core-it-suite/pom.xml b/core-it-suite/pom.xml
index e1c484d..5b3536b 100644
--- a/core-it-suite/pom.xml
+++ b/core-it-suite/pom.xml
@@ -110,38 +110,15 @@
       <!-- TODO: not transitive in tests artifact, so must be left in main 
         scope <scope>test</scope> -->
     </dependency>
-    <!-- Should be fine to introduce this here, even if we use the embedder 
-      as it should be using an isolated classloader Used to simplify tests that 
-      provide a test HTTP server. -->
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jetty</artifactId>
-      <version>6.1.14</version>
-      <!-- TODO: not transitive in tests artifact, so must be left in main 
-        scope <scope>test</scope> -->
-      <exclusions>
-        <exclusion>
-          <artifactId>servlet-api-2.5</artifactId>
-          <groupId>org.mortbay.jetty</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.shared</groupId>
-      <artifactId>maven-shared-utils</artifactId>
-      <version>0.9</version>
-    </dependency>
-
-    <!-- Jetty9 server for testing -->
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-server</artifactId>
       <version>${jetty9Version}</version>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty9Version}</version>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-shared-utils</artifactId>
+      <version>0.9</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
@@ -149,9 +126,9 @@
       <version>${jetty9Version}</version>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty.orbit</groupId>
-      <artifactId>javax.servlet</artifactId>
-      <version>3.0.0.v201112011016</version>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty9Version}</version>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java b/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java
index 2f10b84..8d87dd5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java
@@ -5,6 +5,8 @@
 import org.eclipse.jetty.security.ConstraintSecurityHandler;
 import org.eclipse.jetty.security.HashLoginService;
 import org.eclipse.jetty.security.authentication.BasicAuthenticator;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.NetworkConnector;
 import org.eclipse.jetty.server.Request;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
@@ -66,21 +68,20 @@
 
     public int port()
     {
-        return ( (ServerConnector) server.getConnectors()[0] ).getLocalPort();
+        return ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
     }
 
     private Server server( int port )
     {
-
         QueuedThreadPool threadPool = new QueuedThreadPool();
         threadPool.setMaxThreads( 500 );
         Server server = new Server( threadPool );
+        server.setConnectors( new Connector[]{ new ServerConnector( server ) } );
         server.addBean( new ScheduledExecutorScheduler() );
 
-        ServerConnector http = new ServerConnector( server );
-        http.setPort( port );
-        http.setIdleTimeout( 30000 );
-        server.addConnector( http );
+        ServerConnector connector = (ServerConnector) server.getConnectors()[0];
+        connector.setIdleTimeout( 30_000L );
+        connector.setPort( port );
 
         StreamSourceHandler handler = new StreamSourceHandler( source );
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
index f902976..0f262e8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
@@ -162,6 +162,7 @@
         suite.addTestSuite( MavenITmng5230MakeReactorWithExcludesTest.class );
         suite.addTestSuite( MavenITmng5224InjectedSettings.class );
         suite.addTestSuite( MavenITmng5214DontMapWsdlToJar.class );
+        suite.addTestSuite( MavenITmng5175WagonHttpTest.class );
         suite.addTestSuite( MavenITmng5137ReactorResolutionInForkedBuildTest.class );
         suite.addTestSuite( MavenITmng5135AggregatorDepResolutionModuleExtensionTest.class );
         suite.addTestSuite( MavenITmng5096ExclusionAtDependencyWithImpliedClassifierTest.class );
@@ -663,6 +664,7 @@
         suite.addTestSuite( MavenITmng0249ResolveDepsFromReactorTest.class );
         suite.addTestSuite( MavenITmng0187CollectedProjectsTest.class );
         suite.addTestSuite( MavenITmng0095ReactorFailureBehaviorTest.class );
+        suite.addTestSuite( MavenIT0146InstallerSnapshotNaming.class );
         suite.addTestSuite( MavenIT0145ReactorWithIncludesExcludesTest.class );
         suite.addTestSuite( MavenIT0144LifecycleExecutionOrderTest.class );
         suite.addTestSuite( MavenIT0143TransitiveDependencyScopesTest.class );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java
index 065064e..0d18182 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenIT0146InstallerSnapshotNaming.java
@@ -20,11 +20,12 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
 
 import java.io.File;
 import java.io.IOException;
@@ -59,15 +60,11 @@
         server = new Server( 0 );
         server.setHandler( handlers );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
@@ -86,7 +83,6 @@
     public void testitRemoteDownloadTimestampedName()
         throws Exception
     {
-
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
 
         Properties properties = verifier.newDefaultFilterProperties();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java
index 1dea9a0..6a0698c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0553SettingsAuthzEncryptionTest.java
@@ -26,14 +26,21 @@
 import java.util.List;
 import java.util.Properties;
 
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.util.security.Password;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-553">MNG-553</a>.
@@ -61,21 +68,21 @@
     {
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0553" );
 
-        Constraint constraint = new Constraint();
-        constraint.setName( Constraint.__BASIC_AUTH );
-        constraint.setRoles( new String[] { "user" } );
+        Constraint constraint = new Constraint( __BASIC_AUTH, "user" );
         constraint.setAuthenticate( true );
 
         ConstraintMapping constraintMapping = new ConstraintMapping();
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "user" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "user" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         ResourceHandler repoHandler = new ResourceHandler();
@@ -86,18 +93,13 @@
         handlerList.addHandler( repoHandler );
         handlerList.addHandler( new DefaultHandler() );
 
-        server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java
index 45c4d03..26d3681 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0768OfflineModeTest.java
@@ -20,7 +20,14 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -29,14 +36,6 @@
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-768">MNG-768</a>.
  * 
@@ -64,7 +63,8 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
@@ -103,17 +103,12 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
 
-            int port = server.getConnectors()[0].getLocalPort();
-            System.out.println( "Bound server socket to the port " + port );
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
 
             {
                 // phase 1: run build in online mode to fill local repo
@@ -176,6 +171,8 @@
                 verifier.resetStreams();
             }
 
+            System.out.println( "Bound server socket to the port " + port );
+
             assertTrue( requestedUris.toString(), requestedUris.isEmpty() );
         }
         finally
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java
index 59f2dc7..1cdc653 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2305MultipleProxiesTest.java
@@ -30,11 +30,18 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.security.SslSocketConnector;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+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.AbstractHandler;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+
+import static org.eclipse.jetty.http.HttpVersion.HTTP_1_1;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-2305">MNG-2305</a>.
@@ -71,20 +78,16 @@
         String keyPwd = "key-passwd";
 
         Server server = new Server( 0 );
-        server.addConnector( newHttpsConnector( storePath, storePwd, keyPwd ) );
+        addHttpsConnector( server, storePath, storePwd, keyPwd );
         server.setHandler( new RepoHandler() );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        int httpPort = server.getConnectors()[0].getLocalPort();
+        int httpPort = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to HTTP port " + httpPort );
-        int httpsPort = server.getConnectors()[1].getLocalPort();
+        int httpsPort = ( (NetworkConnector) server.getConnectors()[1] ).getLocalPort();
         System.out.println( "Bound server socket to HTTPS port " + httpsPort );
 
         TunnelingProxyServer proxy = new TunnelingProxyServer( 0, "localhost", httpsPort, "https.mngit:443" );
@@ -115,6 +118,7 @@
         {
             proxy.stop();
             server.stop();
+            server.join();
         }
 
         List<String> cp = verifier.loadLines( "target/classpath.txt", "UTF-8" );
@@ -122,20 +126,25 @@
         assertTrue( cp.toString(), cp.contains( "https-0.1.jar" ) );
     }
 
-    private Connector newHttpsConnector( String keystore, String storepwd, String keypwd )
+    private void addHttpsConnector( Server server, String keyStorePath, String keyStorePassword, String keyPassword )
     {
-        SslSocketConnector connector = new SslSocketConnector();
-        connector.setPort( 0 );
-        connector.setKeystore( keystore );
-        connector.setPassword( storepwd );
-        connector.setKeyPassword( keypwd );
-        return connector;
+        SslContextFactory sslContextFactory = new SslContextFactory( keyStorePath );
+        sslContextFactory.setKeyStorePassword( keyStorePassword );
+        sslContextFactory.setKeyManagerPassword( keyPassword );
+        HttpConfiguration httpConfiguration = new HttpConfiguration();
+        httpConfiguration.setSecureScheme( "https" );
+        HttpConfiguration httpsConfiguration = new HttpConfiguration( httpConfiguration );
+        httpsConfiguration.addCustomizer( new SecureRequestCustomizer() );
+        ServerConnector httpsConnector = new ServerConnector( server,
+                new SslConnectionFactory( sslContextFactory, HTTP_1_1.asString() ),
+                new HttpConnectionFactory( httpsConfiguration ) );
+        server.addConnector( httpsConnector );
     }
 
     static class RepoHandler extends AbstractHandler
     {
-
-        public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+        public void handle( String target, Request baseRequest, HttpServletRequest request,
+                            HttpServletResponse response )
             throws IOException
         {
             PrintWriter writer = response.getWriter();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java
index 3548da1..e6d28cb 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng2387InactiveProxyTest.java
@@ -19,17 +19,18 @@
  * under the License.
  */
 
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+
 import java.io.File;
 import java.net.InetAddress;
 import java.util.Properties;
 
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-2387">MNG-2387</a>.
  * 
@@ -69,15 +70,11 @@
         server = new Server( 0 );
         server.setHandler( handlers );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the HTTP port " + port );
 
         resourceHandler = new ResourceHandler();
@@ -89,15 +86,11 @@
         proxyServer = new Server( 0 );
         proxyServer.setHandler( handlers );
         proxyServer.start();
-        while ( !proxyServer.isRunning() || !proxyServer.isStarted() )
+        if ( proxyServer.isFailed() )
         {
-            if ( proxyServer.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        proxyPort = proxyServer.getConnectors()[0].getLocalPort();
+        proxyPort = ( (NetworkConnector) proxyServer.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the HTTPS port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java
index 3c88611..a92e4c1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3415JunkRepositoryMetadataTest.java
@@ -21,10 +21,11 @@
 
 import org.apache.maven.it.util.ResourceExtractor;
 import org.apache.maven.shared.utils.io.FileUtils;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -162,7 +163,8 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -180,16 +182,12 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
 
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
 
             Properties filterProps = verifier.newDefaultFilterProperties();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java
index dee4138..ffc6dc9 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3461MirrorMatchingTest.java
@@ -20,18 +20,17 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Properties;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3461">MNG-3461</a>.
@@ -84,7 +83,9 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
@@ -119,16 +120,12 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
 
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
 
             verifier.setAutoclean( false );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java
index ddc8d2d..3b65f86 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVMk2Test.java
@@ -26,10 +26,11 @@
 import org.apache.maven.it.util.ResourceExtractor;
 import org.apache.maven.shared.utils.StringUtils;
 import org.apache.maven.shared.utils.io.FileUtils;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3599">MNG-3599</a>.
@@ -67,7 +68,8 @@
     {
         Handler handler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Got request for URL: '" + request.getRequestURL() + "'" );
@@ -113,15 +115,11 @@
         server = new Server( 0 );
         server.setHandler( handler );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVTest.java
index 6b07295..42de235 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3599useHttpProxyForWebDAVTest.java
@@ -28,10 +28,11 @@
 import org.apache.maven.it.util.ResourceExtractor;
 import org.apache.maven.shared.utils.StringUtils;
 import org.apache.maven.shared.utils.io.FileUtils;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3599">MNG-3599</a>.
@@ -69,7 +70,9 @@
     {
         Handler handler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Got request for URL: '" + request.getRequestURL() + "'" );
@@ -115,15 +118,11 @@
         server = new Server( 0 );
         server.setHandler( handler );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java
index 04d23fd..bed88a2 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3652UserAgentHeaderTest.java
@@ -19,18 +19,18 @@
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3652">MNG-3652</a>.
@@ -59,7 +59,9 @@
     {
         Handler handler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Handling URL: '" + request.getRequestURL() + "'" );
@@ -82,15 +84,11 @@
         server = new Server( 0 );
         server.setHandler( handler );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java
index 7979f45..fef5e6f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3953AuthenticatedDeploymentTest.java
@@ -19,21 +19,27 @@
  * under the License.
  */
 
-import java.io.File;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3953">MNG-3953</a>.
@@ -61,7 +67,9 @@
     {
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -88,30 +96,27 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "deployer" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "deployer" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         HandlerList handlerList = new HandlerList();
         handlerList.addHandler( securityHandler );
         handlerList.addHandler( repoHandler );
 
-        server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
         deployed = false;
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java
index 08921fe..e5c8f2d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4068AuthenticatedMirrorTest.java
@@ -19,18 +19,25 @@
  * under the License.
  */
 
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
+
 import java.io.File;
 import java.util.Properties;
 
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4068">MNG-4068</a>.
@@ -57,8 +64,6 @@
     protected void setUp()
         throws Exception
     {
-        super.setUp();
-
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4068" );
 
         Constraint constraint = new Constraint();
@@ -70,12 +75,14 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "user" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "user" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         ResourceHandler repoHandler = new ResourceHandler();
@@ -86,18 +93,13 @@
         handlerList.addHandler( repoHandler );
         handlerList.addHandler( new DefaultHandler() );
 
-        server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java
index dfef093..9597d40 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4235HttpAuthDeploymentChecksumsTest.java
@@ -22,28 +22,34 @@
 import org.apache.maven.it.util.ResourceExtractor;
 import org.apache.maven.it.utils.DeployedResource;
 import org.codehaus.plexus.util.StringUtils;
-import org.mortbay.jetty.HttpMethods;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
-import org.mortbay.resource.Resource;
-import org.mortbay.util.IO;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.resource.Resource;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.nio.file.Files;
+import java.util.Deque;
 import java.util.Properties;
+import java.util.concurrent.ConcurrentLinkedDeque;
+
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4235">MNG-4235</a>.
@@ -84,13 +90,14 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testpass" );
-        userRealm.addUserToRole( "testuser", "deployer" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testpass" ), new String[] { "deployer" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
-        securityHandler.setConstraintMappings( new ConstraintMapping[]{ constraintMapping } );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
+        securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         HandlerList handlerList = new HandlerList();
         handlerList.addHandler( securityHandler );
@@ -100,15 +107,11 @@
         server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
@@ -176,18 +179,18 @@
                     expectedHash.equalsIgnoreCase( actualHash ) );
     }
 
-
-    public static class RepoHandler
-        extends ResourceHandler
+    private static class RepoHandler
+            extends ResourceHandler
     {
-        List<DeployedResource> deployedResources = new ArrayList<>();
+        private final Deque<DeployedResource> deployedResources = new ConcurrentLinkedDeque<>();
 
-        public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+        @Override
+        public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException
         {
             System.out.println( request.getMethod() + " " + request.getRequestURI() );
 
-            if ( HttpMethods.PUT.equals( request.getMethod() ) )
+            if ( "PUT".equals( request.getMethod() ) )
             {
                 Resource resource = getResource( request );
 
@@ -198,12 +201,7 @@
                     dir.mkdirs();
                 }
 
-                request.getContentLength();
-
-                try ( OutputStream os = resource.getOutputStream() )
-                {
-                    IO.copy( request.getInputStream(), os );
-                }
+                Files.copy( request.getInputStream(), resource.getFile().toPath(), REPLACE_EXISTING );
 
                 DeployedResource deployedResource = new DeployedResource();
 
@@ -220,10 +218,8 @@
             }
             else
             {
-                super.handle( target, request, response, dispatch );
+                super.handle( target, baseRequest, request, response );
             }
         }
     }
-
-
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java
index 0a45c7f..8c21c95 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4326LocalSnapshotSuppressesRemoteCheckTest.java
@@ -20,10 +20,11 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -72,7 +73,9 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 PrintWriter writer = response.getWriter();
@@ -135,15 +138,11 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             // test 1: resolve snapshot, just built local copy should suppress daily remote update check
             verifier = newVerifier( new File( testDir, "test" ).getAbsolutePath() );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java
index 2c42a64..8505a8c 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4343MissingReleaseUpdatePolicyTest.java
@@ -32,10 +32,11 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.hamcrest.CoreMatchers;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import static org.hamcrest.CoreMatchers.hasItem;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -68,7 +69,9 @@
     {
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
@@ -114,15 +117,11 @@
         server = new Server( 0 );
         server.setHandler( repoHandler );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
         requestedUris = new ConcurrentLinkedDeque<>();
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java
index 6eccf87..5e5d57d 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4348NoUnnecessaryRepositoryAccessTest.java
@@ -20,21 +20,20 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4348">MNG-4348</a>.
  * 
@@ -65,7 +64,9 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -87,15 +88,11 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteArtifacts( "org.apache.maven.its.mng4348" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java
index 2c0539a..b800314 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4360WebDavSupportTest.java
@@ -20,21 +20,20 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4360">MNG-4360</a>.
  * 
@@ -81,7 +80,9 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
@@ -118,15 +119,11 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteArtifacts( "org.apache.maven.its.mng4360" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java
index 85532d1..2a5d48f 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4413MirroringOfDependencyRepoTest.java
@@ -20,18 +20,24 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import java.io.File;
 import java.util.Properties;
 
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4413">MNG-4413</a>.
@@ -65,12 +71,14 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "user" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "user" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        Server server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         ResourceHandler repoHandler = new ResourceHandler();
@@ -81,21 +89,16 @@
         handlerList.addHandler( repoHandler );
         handlerList.addHandler( new DefaultHandler() );
 
-        Server server = new Server( 0 );
         server.setHandler( handlerList );
 
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             Verifier verifier = newVerifier( testDir.getAbsolutePath() );
             verifier.setAutoclean( false );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java
index 0c1dd44..455f8fd 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4428FollowHttpRedirectTest.java
@@ -20,21 +20,27 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+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.AbstractHandler;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.security.SslSocketConnector;
+import static org.eclipse.jetty.http.HttpVersion.HTTP_1_1;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4428">MNG-4428</a>.
@@ -124,28 +130,25 @@
         String keyPwd = "key-passwd";
 
         Server server = new Server( 0 );
-        server.addConnector( newHttpsConnector( storePath, storePwd, keyPwd ) );
+        addHttpsConnector( server, storePath, storePwd, keyPwd );
         Connector from = server.getConnectors()[ fromHttp ? 0 : 1 ];
         Connector to = server.getConnectors()[ toHttp ? 0 : 1 ];
-        server.setHandler( new RedirectHandler( toHttp ? "http" : "https", relativeLocation ? null : to ) );
+        server.setHandler(
+                new RedirectHandler( toHttp ? "http" : "https", relativeLocation ? null : (NetworkConnector) to ) );
 
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
             verifier.setAutoclean( false );
             verifier.deleteArtifacts( "org.apache.maven.its.mng4428" );
             verifier.deleteDirectory( "target" );
             Properties filterProps = verifier.newDefaultFilterProperties();
             filterProps.setProperty( "@protocol@", fromHttp ? "http" : "https" );
-            filterProps.setProperty( "@port@", Integer.toString( from.getLocalPort() ) );
+            filterProps.setProperty( "@port@", Integer.toString( ( (NetworkConnector) from ).getLocalPort() ) );
             verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
             verifier.addCliOption( "-X --settings" );
             verifier.addCliOption( "settings.xml" );
@@ -166,30 +169,35 @@
         assertTrue( cp.toString(), cp.contains( "dep-0.1.jar" ) );
     }
 
-    private Connector newHttpsConnector( String keystore, String storepwd, String keypwd )
+    private void addHttpsConnector( Server server, String keyStorePath, String keyStorePassword, String keyPassword )
     {
-        SslSocketConnector connector = new SslSocketConnector();
-        connector.setPort( 0 );
-        connector.setKeystore( keystore );
-        connector.setPassword( storepwd );
-        connector.setKeyPassword( keypwd );
-        return connector;
+        SslContextFactory sslContextFactory = new SslContextFactory( keyStorePath );
+        sslContextFactory.setKeyStorePassword( keyStorePassword );
+        sslContextFactory.setKeyManagerPassword( keyPassword );
+        HttpConfiguration httpConfiguration = new HttpConfiguration();
+        httpConfiguration.setSecureScheme( "https" );
+        HttpConfiguration httpsConfiguration = new HttpConfiguration( httpConfiguration );
+        httpsConfiguration.addCustomizer( new SecureRequestCustomizer() );
+        ServerConnector httpsConnector = new ServerConnector( server,
+                new SslConnectionFactory( sslContextFactory, HTTP_1_1.asString() ),
+                new HttpConnectionFactory( httpsConfiguration ) );
+        server.addConnector( httpsConnector );
     }
 
     static class RedirectHandler extends AbstractHandler
     {
-
         private final String protocol;
 
-        private final Connector connector;
+        private final NetworkConnector connector;
 
-        RedirectHandler( String protocol, Connector connector )
+        RedirectHandler( String protocol, NetworkConnector connector )
         {
             this.protocol = protocol;
             this.connector = connector;
         }
 
-        public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+        public void handle( String target, Request baseRequest, HttpServletRequest request,
+                            HttpServletResponse response )
             throws IOException
         {
             System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
@@ -236,7 +244,5 @@
 
             ( (Request) request ).setHandled( true );
         }
-
     }
-
 }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java
index 7524912..04a43af 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4469AuthenticatedDeploymentToCustomRepoTest.java
@@ -19,21 +19,27 @@
  * under the License.
  */
 
-import java.io.File;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4469">MNG-4469</a>.
@@ -61,7 +67,9 @@
     {
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -88,30 +96,27 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "deployer" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "deployer" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         HandlerList handlerList = new HandlerList();
         handlerList.addHandler( securityHandler );
         handlerList.addHandler( repoHandler );
 
-        server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
         deployed = false;
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java
index 90e5f66..b974601 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4470AuthenticatedDeploymentToProxyTest.java
@@ -22,24 +22,32 @@
 import org.apache.maven.it.util.ResourceExtractor;
 import org.apache.maven.it.utils.DeployedResource;
 import org.codehaus.plexus.util.StringUtils;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.security.B64Code;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.B64Code;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.Deque;
 import java.util.concurrent.ConcurrentLinkedDeque;
 
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
+
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4470">MNG-4470</a>.
  *
@@ -68,7 +76,9 @@
     {
         Handler proxyHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -76,7 +86,7 @@
                 if ( auth != null )
                 {
                     auth = auth.substring( auth.indexOf( ' ' ) + 1 ).trim();
-                    auth = B64Code.decode( auth );
+                    auth = B64Code.decode( auth, StandardCharsets.US_ASCII.name() );
                 }
                 System.out.println( "Proxy-Authorization: " + auth );
 
@@ -100,7 +110,9 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -136,31 +148,28 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "deployer" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "deployer" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
-        securityHandler.setConstraintMappings( new ConstraintMapping[]{ constraintMapping } );
+        server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
+        securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         HandlerList handlerList = new HandlerList();
         handlerList.addHandler( proxyHandler );
         handlerList.addHandler( securityHandler );
         handlerList.addHandler( repoHandler );
 
-        server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
         deployed = false;
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java
index 37aeb00..4829c26 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4489MirroringOfExtensionRepoTest.java
@@ -20,18 +20,24 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import java.io.File;
 import java.util.Properties;
 
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4489">MNG-4489</a>.
@@ -65,12 +71,14 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "user" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "user" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        Server server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         ResourceHandler repoHandler = new ResourceHandler();
@@ -81,21 +89,16 @@
         handlerList.addHandler( repoHandler );
         handlerList.addHandler( new DefaultHandler() );
 
-        Server server = new Server( 0 );
         server.setHandler( handlerList );
 
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             Verifier verifier = newVerifier( testDir.getAbsolutePath() );
             verifier.setAutoclean( false );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java
index 0759d05..25d9e44 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4500NoUpdateOfTimestampedSnapshotsTest.java
@@ -20,22 +20,22 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4500">MNG-4500</a>.
  * 
@@ -66,7 +66,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 requestedUris.add( request.getRequestURI() );
             }
@@ -87,15 +89,11 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java
index 282fcaf..0f22d93 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4554PluginPrefixMappingUpdateTest.java
@@ -19,6 +19,18 @@
  * under the License.
  */
 
+import org.apache.maven.it.util.ResourceExtractor;
+import org.apache.maven.shared.utils.io.FileUtils;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -26,17 +38,6 @@
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.maven.it.util.ResourceExtractor;
-import org.apache.maven.shared.utils.io.FileUtils;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4554">MNG-4554</a>.
  * 
@@ -66,7 +67,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 requestedUris.add( request.getRequestURI() );
             }
@@ -87,13 +90,9 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
@@ -107,7 +106,8 @@
                 assertFalse( new File( verifier.getArtifactMetadataPath( "org.apache.maven.its.mng4554", null, null, "maven-metadata-mng4554.xml" ) ).exists() );
             }
             Properties filterProps = verifier.newDefaultFilterProperties();
-            filterProps.setProperty( "@port@", Integer.toString( server.getConnectors()[0].getLocalPort() ) );
+            NetworkConnector connector = (NetworkConnector) server.getConnectors()[0];
+            filterProps.setProperty( "@port@", Integer.toString( connector.getLocalPort() ) );
             filterProps.setProperty( "@repo@", "repo-1" );
             verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
             verifier.addCliOption( "-s" );
@@ -151,7 +151,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 requestedUris.add( request.getRequestURI() );
             }
@@ -172,13 +174,9 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
@@ -192,7 +190,8 @@
                 assertFalse( new File( verifier.getArtifactMetadataPath( "org.apache.maven.its.mng4554", null, null, "maven-metadata-mng4554.xml" ) ).exists() );
             }
             Properties filterProps = verifier.newDefaultFilterProperties();
-            filterProps.setProperty( "@port@", Integer.toString( server.getConnectors()[0].getLocalPort() ) );
+            NetworkConnector connector = (NetworkConnector) server.getConnectors()[0];
+            filterProps.setProperty( "@port@", Integer.toString( connector.getLocalPort() ) );
             filterProps.setProperty( "@repo@", "repo-1" );
             verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
             verifier.addCliOption( "-U" );
@@ -239,7 +238,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 requestedUris.add( request.getRequestURI() );
             }
@@ -260,13 +261,9 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
@@ -280,7 +277,8 @@
                 assertFalse( new File( verifier.getArtifactMetadataPath( "org.apache.maven.its.mng4554", null, null, "maven-metadata-mng4554.xml" ) ).exists() );
             }
             Properties filterProps = verifier.newDefaultFilterProperties();
-            filterProps.setProperty( "@port@", Integer.toString( server.getConnectors()[0].getLocalPort() ) );
+            NetworkConnector connector = (NetworkConnector) server.getConnectors()[0];
+            filterProps.setProperty( "@port@", Integer.toString( connector.getLocalPort() ) );
             filterProps.setProperty( "@repo@", "repo-it" );
             verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
             verifier.addCliOption( "-s" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java
index 6eae399..f995dd0 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4555MetaversionResolutionOfflineTest.java
@@ -20,10 +20,11 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -58,7 +59,9 @@
 
         Handler repoHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 String uri = request.getRequestURI();
 
@@ -82,15 +85,11 @@
         verifier.deleteArtifacts( "org.apache.maven.its.mng4555" );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             Properties filterProps = verifier.newDefaultFilterProperties();
             filterProps.setProperty( "@port@", Integer.toString( port ) );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java
index b530f85..cb57ee5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4561MirroringOfPluginRepoTest.java
@@ -20,18 +20,24 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import java.io.File;
 import java.util.Properties;
 
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4561">MNG-4561</a>.
@@ -65,12 +71,14 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "user" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "user" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        Server server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         ResourceHandler repoHandler = new ResourceHandler();
@@ -81,22 +89,17 @@
         handlerList.addHandler( repoHandler );
         handlerList.addHandler( new DefaultHandler() );
 
-        Server server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
 
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java
index 061f243..f6d4b67 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4729MirrorProxyAuthUsedByProjectBuilderTest.java
@@ -20,18 +20,24 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
 
 import java.io.File;
 import java.util.Properties;
 
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.jetty.security.Constraint;
-import org.mortbay.jetty.security.ConstraintMapping;
-import org.mortbay.jetty.security.HashUserRealm;
-import org.mortbay.jetty.security.SecurityHandler;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SECURITY;
+import static org.eclipse.jetty.servlet.ServletContextHandler.SESSIONS;
+import static org.eclipse.jetty.util.security.Constraint.__BASIC_AUTH;
 
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4729">MNG-4729</a>.
@@ -65,12 +71,14 @@
         constraintMapping.setConstraint( constraint );
         constraintMapping.setPathSpec( "/*" );
 
-        HashUserRealm userRealm = new HashUserRealm( "TestRealm" );
-        userRealm.put( "testuser", "testtest" );
-        userRealm.addUserToRole( "testuser", "user" );
+        HashLoginService userRealm = new HashLoginService( "TestRealm" );
+        userRealm.putUser( "testuser", new Password( "testtest" ), new String[] { "user" } );
 
-        SecurityHandler securityHandler = new SecurityHandler();
-        securityHandler.setUserRealm( userRealm );
+        Server server = new Server( 0 );
+        ServletContextHandler ctx = new ServletContextHandler( server, "/", SESSIONS | SECURITY );
+        ConstraintSecurityHandler securityHandler = (ConstraintSecurityHandler) ctx.getSecurityHandler();
+        securityHandler.setLoginService( userRealm );
+        securityHandler.setAuthMethod( __BASIC_AUTH );
         securityHandler.setConstraintMappings( new ConstraintMapping[] { constraintMapping } );
 
         ResourceHandler repoHandler = new ResourceHandler();
@@ -81,22 +89,17 @@
         handlerList.addHandler( repoHandler );
         handlerList.addHandler( new DefaultHandler() );
 
-        Server server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
 
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java
index 9dff77b..56b5d90 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4771PluginPrefixResolutionDoesntTouchDisabledRepoTest.java
@@ -20,20 +20,20 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.Deque;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentLinkedDeque;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4771">MNG-4771</a>.
  * 
@@ -61,7 +61,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 requestedUris.add( request.getRequestURI() );
             }
@@ -78,15 +80,11 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java
index eac97f0..82390a1 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4772PluginVersionResolutionDoesntTouchDisabledRepoTest.java
@@ -20,21 +20,21 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-4772">MNG-4772</a>.
  * 
@@ -62,7 +62,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 requestedUris.add( request.getRequestURI() );
             }
@@ -79,15 +81,11 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java
index 07bad02..8783ab5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4781DeploymentToNexusStagingRepoTest.java
@@ -19,19 +19,19 @@
  * under the License.
  */
 
-import java.io.File;
-import java.util.Deque;
-import java.util.concurrent.ConcurrentLinkedDeque;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.HandlerList;
+import java.io.File;
+import java.util.Deque;
+import java.util.concurrent.ConcurrentLinkedDeque;
 
 import static org.hamcrest.CoreMatchers.hasItem;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -64,7 +64,8 @@
         {
             private volatile boolean putSeen;
 
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response )
             {
                 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
 
@@ -94,15 +95,11 @@
         server = new Server( 0 );
         server.setHandler( handlerList );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java
index 29e2a92..64d89d5 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4991NonProxyHostsTest.java
@@ -20,11 +20,12 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
 
 import java.io.File;
 import java.net.InetAddress;
@@ -73,31 +74,25 @@
         try
         {
             server.start();
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
 
             proxy.start();
-            while ( !proxy.isRunning() || !proxy.isStarted() )
+            if ( proxy.isFailed() )
             {
-                if ( proxy.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
 
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
             verifier.deleteArtifacts( "org.apache.maven.its.mng4991" );
             Properties filterProps = verifier.newDefaultFilterProperties();
-            filterProps.setProperty( "@port@", Integer.toString( server.getConnectors()[0].getLocalPort() ) );
-            filterProps.setProperty( "@proxyPort@", Integer.toString( proxy.getConnectors()[0].getLocalPort() ) );
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
+            filterProps.setProperty( "@port@", Integer.toString( port ) );
+            int proxyPort = ( (NetworkConnector) proxy.getConnectors()[0] ).getLocalPort();
+            filterProps.setProperty( "@proxyPort@", Integer.toString( proxyPort ) );
             filterProps.setProperty( "@localhost@", InetAddress.getLocalHost().getCanonicalHostName() );
             verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
             verifier.addCliOption( "-s" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java
index add81ea..e71b851 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5064SuppressSnapshotUpdatesTest.java
@@ -20,22 +20,22 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.DefaultHandler;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.handler.ResourceHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-5064">MNG-5064</a>.
  * 
@@ -65,7 +65,9 @@
 
         AbstractHandler logHandler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
             {
                 if ( request.getRequestURI().startsWith( "/repo/" ) )
                 {
@@ -89,15 +91,11 @@
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
         try
         {
-            while ( !server.isRunning() || !server.isStarted() )
+            if ( server.isFailed() )
             {
-                if ( server.isFailed() )
-                {
-                    fail( "Couldn't bind the server socket to a free port!" );
-                }
-                Thread.sleep( 100L );
+                fail( "Couldn't bind the server socket to a free port!" );
             }
-            int port = server.getConnectors()[0].getLocalPort();
+            int port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
             System.out.println( "Bound server socket to the port " + port );
             verifier.setAutoclean( false );
             verifier.deleteDirectory( "target" );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java
index cac5380..45a615e 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5175WagonHttpTest.java
@@ -20,10 +20,11 @@
  */
 
 import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Handler;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
@@ -56,7 +57,9 @@
     {
         Handler handler = new AbstractHandler()
         {
-            public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+            @Override
+            public void handle( String target, Request baseRequest, HttpServletRequest request,
+                                HttpServletResponse response )
                 throws IOException, ServletException
             {
                 try
@@ -79,15 +82,11 @@
         server = new Server( 0 );
         server.setHandler( handler );
         server.start();
-        while ( !server.isRunning() || !server.isStarted() )
+        if ( server.isFailed() )
         {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        port = server.getConnectors()[0].getLocalPort();
+        port = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
         System.out.println( "Bound server socket to the port " + port );
     }
 
@@ -121,9 +120,13 @@
         verifier.addCliOption( "-U" );
         verifier.addCliOption( "--settings" );
         verifier.addCliOption( "settings.xml" );
-        //verifier.
+        verifier.addCliOption( "--fail-never" );
+        verifier.addCliOption( "--errors" );
+        verifier.setMavenDebug( true );
         verifier.executeGoal( "validate" );
 
+        verifier.verifyTextInLog(
+                "Could not transfer artifact org.apache.maven.its.mng5175:fake-dependency:pom:1.0-SNAPSHOT" );
         verifier.verifyTextInLog( "Read timed out" );
         verifier.resetStreams();
     }
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java
index cc9539b..bc6cd94 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5280SettingsProfilesRepositoriesOrderTest.java
@@ -19,6 +19,14 @@
  * under the License.
  */
 
+import org.apache.maven.it.util.ResourceExtractor;
+import org.eclipse.jetty.server.NetworkConnector;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -27,14 +35,6 @@
 import java.io.PrintWriter;
 import java.util.Properties;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.maven.it.util.ResourceExtractor;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-
 /**
  * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-5280">MNG-5280</a>.
  * 
@@ -47,8 +47,6 @@
 
     private Server server;
 
-    private int httpPort;
-
     public MavenITmng5280SettingsProfilesRepositoriesOrderTest()
     {
         super( "[3.1-A,)" );
@@ -59,19 +57,7 @@
         throws Exception
     {
         testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-5280" );
-
         server = new Server( 0 );
-        server.start();
-        while ( !server.isRunning() || !server.isStarted() )
-        {
-            if ( server.isFailed() )
-            {
-                fail( "Couldn't bind the server socket to a free port!" );
-            }
-            Thread.sleep( 100L );
-        }
-        httpPort = server.getConnectors()[0].getLocalPort();
-        System.out.println( "Bound server socket to the port " + httpPort );
     }
 
     @Override
@@ -93,6 +79,13 @@
     {
         RepoHandler repoHandler = new RepoHandler();
         server.setHandler( repoHandler );
+        server.start();
+        if ( server.isFailed() )
+        {
+            fail( "Couldn't bind the server socket to a free port!" );
+        }
+        int httpPort = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
+        System.out.println( "Bound server socket to the port " + httpPort );
 
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
 
@@ -120,6 +113,13 @@
     {
         PluginRepoHandler pluginRepoHandler = new PluginRepoHandler();
         server.setHandler( pluginRepoHandler );
+        server.start();
+        if ( server.isFailed() )
+        {
+            fail( "Couldn't bind the server socket to a free port!" );
+        }
+        int httpPort = ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
+        System.out.println( "Bound server socket to the port " + httpPort );
 
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
 
@@ -145,7 +145,8 @@
 
         private volatile boolean artifactRequestedFromRepo2;
 
-        public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+        public void handle( String target, Request baseRequest, HttpServletRequest request,
+                            HttpServletResponse response )
             throws IOException
         {
             String uri = request.getRequestURI();
@@ -202,7 +203,8 @@
 
         private volatile boolean pluginRequestedFromRepo2;
 
-        public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+        public void handle( String target, Request baseRequest, HttpServletRequest request,
+                            HttpServletResponse response )
             throws IOException
         {
             String uri = request.getRequestURI();
diff --git a/core-it-suite/src/test/java/org/mortbay/log/StdErrLog.java b/core-it-suite/src/test/java/org/mortbay/log/StdErrLog.java
deleted file mode 100644
index 903fd12..0000000
--- a/core-it-suite/src/test/java/org/mortbay/log/StdErrLog.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package org.mortbay.log;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.PrintStream;
-
-/**
- * A modified version of the original Jetty logger which treats info level the same as debug level. This is merely meant
- * as a cosmetic tweak to reduce the log noise from Jetty on the console during our tests.
- * 
- * @author Benjamin Bentmann
- * @version $Id$
- */
-public class StdErrLog
-    implements Logger
-{
-
-    private static boolean debug = System.getProperty( "DEBUG" ) != null;
-
-    private String name;
-
-    private boolean hideStacks;
-
-    private PrintStream out = System.err;
-
-    private static final String PREFIX = "[JETTY] ";
-
-    public StdErrLog()
-    {
-        this( null );
-    }
-
-    public StdErrLog( String name )
-    {
-        this.name = ( name == null ) ? "" : name;
-    }
-
-    public boolean isDebugEnabled()
-    {
-        return debug;
-    }
-
-    public void setDebugEnabled( boolean enabled )
-    {
-        debug = enabled;
-    }
-
-    public boolean isHideStacks()
-    {
-        return hideStacks;
-    }
-
-    public void setHideStacks( boolean hideStacks )
-    {
-        this.hideStacks = hideStacks;
-    }
-
-    public void debug( String msg, Throwable th )
-    {
-        if ( debug )
-        {
-            this.out.println( PREFIX + msg );
-            if ( th != null )
-            {
-                if ( hideStacks )
-                    this.out.println( th );
-                else
-                    th.printStackTrace( this.out );
-            }
-        }
-    }
-
-    public void debug( String msg, Object arg0, Object arg1 )
-    {
-        if ( debug )
-        {
-            this.out.println( PREFIX + format( msg, arg0, arg1 ) );
-        }
-    }
-
-    public void info( String msg, Object arg0, Object arg1 )
-    {
-        if ( debug )
-        {
-            this.out.println( PREFIX + format( msg, arg0, arg1 ) );
-        }
-    }
-
-    public void warn( String msg, Object arg0, Object arg1 )
-    {
-        this.out.println( PREFIX + format( msg, arg0, arg1 ) );
-    }
-
-    public void warn( String msg, Throwable th )
-    {
-        this.out.println( PREFIX + msg );
-        if ( th != null )
-        {
-            if ( this.hideStacks )
-            {
-                this.out.println( th );
-            }
-            else
-            {
-                th.printStackTrace( this.out );
-            }
-        }
-    }
-
-    private String format( String msg, Object arg0, Object arg1 )
-    {
-        int i0 = msg.indexOf( "{}" );
-        int i1 = i0 < 0 ? -1 : msg.indexOf( "{}", i0 + 2 );
-
-        if ( arg1 != null && i1 >= 0 )
-        {
-            msg = msg.substring( 0, i1 ) + arg1 + msg.substring( i1 + 2 );
-        }
-        if ( arg0 != null && i0 >= 0 )
-        {
-            msg = msg.substring( 0, i0 ) + arg0 + msg.substring( i0 + 2 );
-        }
-        return msg;
-    }
-
-    public Logger getLogger( String name )
-    {
-        if ( ( name == null && this.name == null ) || ( name != null && name.equals( this.name ) ) )
-        {
-            return this;
-        }
-        return new StdErrLog( name );
-    }
-
-    public String toString()
-    {
-        return "STDERR" + this.name;
-    }
-
-}