This is an automated email from the ASF dual-hosted git repository.

olamy pushed a commit to branch jetty-upgrade
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git

commit 8ed322eb11e7abf81fd39375b7a9699f34b5addb
Author: Olivier Lamy <[email protected]>
AuthorDate: Thu Aug 5 19:14:52 2021 +1000

    [MJAVADOC-687] Upgrade Jetty Version to last 9.4.x
    
    Signed-off-by: Olivier Lamy <[email protected]>
---
 pom.xml                                            | 23 +++++++++---
 .../maven/plugins/javadoc/JavadocUtilTest.java     | 43 +++++++++++-----------
 .../apache/maven/plugins/javadoc/ProxyServer.java  | 41 +++++++++++++--------
 3 files changed, 65 insertions(+), 42 deletions(-)

diff --git a/pom.xml b/pom.xml
index 14eacd7..c027184 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,7 @@ under the License.
     <wagonVersion>2.4</wagonVersion>
     <sonatypeAetherVersion>1.13.1</sonatypeAetherVersion>
     <plexus-java.version>1.0.7</plexus-java.version>
+    <jetty.version>9.4.43.v20210629</jetty.version>
     <!-- for ITs -->
     <sitePluginVersion>3.3</sitePluginVersion>
     <projectInfoReportsPluginVersion>2.7</projectInfoReportsPluginVersion>
@@ -333,15 +334,27 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jetty</artifactId>
-      <version>6.1.26</version>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.mortbay.jetty</groupId>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-proxy</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-client</artifactId>
-      <version>6.1.26</version>
+      <version>${jetty.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git 
a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java 
b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
index 8260d66..3a7c93f 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
@@ -37,6 +37,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.regex.PatternSyntaxException;
 
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -46,10 +47,12 @@ import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.jetty.handler.MovedContextHandler;
-import org.mortbay.util.ByteArrayISO8859Writer;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.eclipse.jetty.server.handler.MovedContextHandler;
+import org.eclipse.jetty.util.ByteArrayISO8859Writer;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -473,12 +476,11 @@ public class JavadocUtilTest
         try
         {
             redirectServer = new Server( 0 );
-            redirectServer.addHandler( new AbstractHandler()
+            redirectServer.setHandler( new AbstractHandler()
             {
                 @Override
-                public void handle( String target, HttpServletRequest request, 
HttpServletResponse response,
-                                    int dispatch )
-                    throws IOException
+                public void handle(String target, Request baseRequest, 
HttpServletRequest request, HttpServletResponse response)
+                        throws IOException, ServletException
                 {
                     response.setStatus( HttpServletResponse.SC_OK );
                     ByteArrayISO8859Writer writer = new 
ByteArrayISO8859Writer( 100 );
@@ -495,12 +497,12 @@ public class JavadocUtilTest
 
             server = new Server( 0 );
             MovedContextHandler handler = new MovedContextHandler();
-            int redirectPort = 
redirectServer.getConnectors()[0].getLocalPort();
+            int redirectPort = 
((ServerConnector)redirectServer.getConnectors()[0]).getLocalPort();
             handler.setNewContextURL( "http://localhost:"; + redirectPort );
-            server.addHandler( handler );
+            server.setHandler( handler );
             server.start();
 
-            URL url = new URI( "http://localhost:"; + 
server.getConnectors()[0].getLocalPort() ).toURL();
+            URL url = new URI( "http://localhost:"; + 
((ServerConnector)redirectServer.getConnectors()[0]).getLocalPort() ).toURL();
             URL redirectUrl = JavadocUtil.getRedirectUrl( url, new Settings() 
);
 
             assertTrue( redirectUrl.toString().startsWith( "http://localhost:"; 
+ redirectPort ) );
@@ -522,12 +524,11 @@ public class JavadocUtilTest
         try
         {
             server = new Server( 0 );
-            server.addHandler( new AbstractHandler()
+            server.setHandler( new AbstractHandler()
             {
                 @Override
-                public void handle( String target, HttpServletRequest request, 
HttpServletResponse response,
-                                    int dispatch )
-                    throws IOException
+                public void handle(String target, Request baseRequest, 
HttpServletRequest request, HttpServletResponse response)
+                        throws IOException, ServletException
                 {
                     response.setStatus( HttpServletResponse.SC_OK );
                     ByteArrayISO8859Writer writer = new 
ByteArrayISO8859Writer( 100 );
@@ -542,7 +543,7 @@ public class JavadocUtilTest
             } );
             server.start();
 
-            URL url = new URI( "http://localhost:"; + 
server.getConnectors()[0].getLocalPort() ).toURL();
+            URL url = new URI( "http://localhost:"; + 
((ServerConnector)server.getConnectors()[0]).getLocalPort() ).toURL();
             URL redirectUrl = JavadocUtil.getRedirectUrl( url, new Settings() 
);
 
             assertEquals( url.toURI(), redirectUrl.toURI() );
@@ -564,13 +565,13 @@ public class JavadocUtilTest
         try
         {
             server = new Server( 0 );
-            server.addHandler( new AbstractHandler()
+            server.setHandler( new AbstractHandler()
             {
                 @Override
-                public void handle( String target, HttpServletRequest request, 
HttpServletResponse response,
-                                    int dispatch )
-                    throws IOException
+                public void handle(String target, Request baseRequest, 
HttpServletRequest request, HttpServletResponse response)
+                        throws IOException, ServletException
                 {
+
                     if ( request.getHeader( "Accept" ) == null )
                     {
                         response.setStatus( HttpServletResponse.SC_FORBIDDEN );
@@ -584,7 +585,7 @@ public class JavadocUtilTest
             } );
             server.start();
 
-            URL url = new URI( "http://localhost:"; + 
server.getConnectors()[0].getLocalPort() ).toURL();
+            URL url = new URI( "http://localhost:"; + 
((ServerConnector)server.getConnectors()[0]).getLocalPort() ).toURL();
             JavadocUtil.getRedirectUrl( url, new Settings() );
         }
         finally
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/ProxyServer.java 
b/src/test/java/org/apache/maven/plugins/javadoc/ProxyServer.java
index 7c1ad2d..deb6507 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/ProxyServer.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/ProxyServer.java
@@ -22,6 +22,8 @@ package org.apache.maven.plugins.javadoc;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import java.util.Map;
 
 import javax.servlet.ServletException;
@@ -30,13 +32,12 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.bio.SocketConnector;
-import org.mortbay.jetty.security.B64Code;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.ServletHolder;
-import org.mortbay.proxy.AsyncProxyServlet;
+import org.eclipse.jetty.proxy.AsyncProxyServlet;
+import org.eclipse.jetty.proxy.ConnectHandler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
 
 /**
  * A Proxy server.
@@ -65,11 +66,17 @@ class ProxyServer
     {
         proxyServer = new Server();
 
-        proxyServer.addConnector( getDefaultConnector( hostName, port ) );
+        proxyServer.addConnector(getDefaultConnector( hostName, port, 
proxyServer ));
 
-        Context context = new Context( proxyServer, "/", 0 );
+        // Setup proxy handler to handle CONNECT methods
+        ConnectHandler proxy = new ConnectHandler();
+        proxyServer.setHandler(proxy);
+
+        // Setup proxy servlet
+        ServletContextHandler context = new ServletContextHandler(proxy, "/", 
true, false);
+        ServletHolder appServletHolder = new ServletHolder(proxyServlet);
+        context.addServlet(appServletHolder, "/*");
 
-        context.addServlet( new ServletHolder( proxyServlet ), "/" );
     }
 
     /**
@@ -77,7 +84,7 @@ class ProxyServer
      */
     public String getHostName()
     {
-        Connector connector = proxyServer.getConnectors()[0];
+        ServerConnector connector = (ServerConnector) 
proxyServer.getConnectors()[0];
         return connector.getHost();
     }
 
@@ -86,7 +93,7 @@ class ProxyServer
      */
     public int getPort()
     {
-        Connector connector = proxyServer.getConnectors()[0];
+        ServerConnector connector = (ServerConnector) 
proxyServer.getConnectors()[0];
         return ( connector.getLocalPort() <= 0 ? connector.getPort() : 
connector.getLocalPort() );
     }
 
@@ -115,9 +122,9 @@ class ProxyServer
         proxyServer = null;
     }
 
-    private Connector getDefaultConnector( String hostName, int port )
+    private ServerConnector getDefaultConnector( String hostName, int port, 
Server server )
     {
-        Connector connector = new SocketConnector();
+        ServerConnector connector = new ServerConnector( server );
         if ( hostName != null )
         {
             connector.setHost( hostName );
@@ -198,8 +205,10 @@ class ProxyServer
                 String proxyAuthorization = request.getHeader( 
"Proxy-Authorization" );
                 if ( proxyAuthorization != null && 
proxyAuthorization.startsWith( "Basic " ) )
                 {
-                    String proxyAuth = proxyAuthorization.substring( 6 );
-                    String authorization = B64Code.decode( proxyAuth );
+                    String proxyAuth = proxyAuthorization.substring("Basic 
".length());
+                    String authorization = new 
String(Base64.getDecoder().decode(proxyAuth), StandardCharsets.UTF_8);
+
+
                     String[] authTokens = authorization.split( ":" );
                     String user = authTokens[0];
                     String password = authTokens[1];

Reply via email to