You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2021/08/05 09:15:14 UTC

[maven-javadoc-plugin] branch jetty-upgrade created (now 8ed322e)

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

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


      at 8ed322e  [MJAVADOC-687] Upgrade Jetty Version to last 9.4.x

This branch includes the following new commits:

     new 8ed322e  [MJAVADOC-687] Upgrade Jetty Version to last 9.4.x

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[maven-javadoc-plugin] 01/01: [MJAVADOC-687] Upgrade Jetty Version to last 9.4.x

Posted by ol...@apache.org.
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 <ol...@apache.org>
AuthorDate: Thu Aug 5 19:14:52 2021 +1000

    [MJAVADOC-687] Upgrade Jetty Version to last 9.4.x
    
    Signed-off-by: Olivier Lamy <ol...@apache.org>
---
 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];