diff --git a/pom.xml b/pom.xml
index 14eacd70..ac981974 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,10 +73,12 @@ under the License.
2.4
1.13.1
1.0.7
+ 9.4.43.v20210629
3.3
2.7
2021-05-18T17:44:35Z
+ 1.7.30
@@ -333,15 +335,27 @@ under the License.
test
- org.mortbay.jetty
- jetty
- 6.1.26
+ org.eclipse.jetty
+ jetty-server
+ ${jetty.version}
test
- org.mortbay.jetty
+ org.eclipse.jetty
+ jetty-proxy
+ ${jetty.version}
+ test
+
+
+ org.eclipse.jetty
+ jetty-servlet
+ ${jetty.version}
+ test
+
+
+ org.eclipse.jetty
jetty-client
- 6.1.26
+ ${jetty.version}
test
@@ -368,6 +382,11 @@ under the License.
3.19.0
test
+
+ org.slf4j
+ slf4j-simple
+ ${slf4j.version}
+
@@ -445,6 +464,7 @@ under the License.
true
+ false
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
index a7f00eb6..23c39983 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
@@ -63,6 +63,8 @@
import org.hamcrest.MatcherAssert;
import org.junit.AssumptionViolatedException;
import org.junit.Ignore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
/**
@@ -86,6 +88,8 @@ public class JavadocReportTest
private File localRepo;
+ private static final Logger LOGGER = LoggerFactory.getLogger( JavadocReportTest.class );
+
/** {@inheritDoc} */
@Override
protected void setUp()
@@ -259,23 +263,31 @@ public void testDefaultConfiguration()
String url = Objects.requireNonNull( mojo.getDefaultJavadocApiLink() ).getUrl();
HttpURLConnection connection = (HttpURLConnection) new URL( url ).openConnection();
connection.setRequestMethod( "HEAD" );
- if ( connection.getResponseCode() == HttpURLConnection.HTTP_OK )
+ try
{
- try
- {
- assumeThat( connection.getURL().toString(), is( url ) );
-
- // https://bugs.openjdk.java.net/browse/JDK-8216497
- MatcherAssert.assertThat( url + " available, but " + appHtml + " is missing link to java.lang.Object",
- new String( Files.readAllBytes(generatedFile), StandardCharsets.UTF_8 ),
- anyOf( containsString( "/docs/api/java/lang/Object.html" ),
- containsString( "/docs/api/java.base/java/lang/Object.html" ) ) );
- }
- catch ( AssumptionViolatedException e )
+ if ( connection.getResponseCode() == HttpURLConnection.HTTP_OK )
{
- System.out.println( "Warning: ignoring defaultAPI check: " + e.getMessage() );
+ try
+ {
+ assumeThat( connection.getURL().toString(), is( url ) );
+
+ // https://bugs.openjdk.java.net/browse/JDK-8216497
+ MatcherAssert.assertThat( url + " available, but " + appHtml + " is missing link to java.lang.Object",
+ new String( Files.readAllBytes(generatedFile), StandardCharsets.UTF_8 ),
+ anyOf( containsString( "/docs/api/java/lang/Object.html" ),
+ containsString( "/docs/api/java.base/java/lang/Object.html" ) ) );
+ }
+ catch ( AssumptionViolatedException e )
+ {
+ LOGGER.warn( "ignoring defaultAPI check: {}", e.getMessage() );
+ }
}
}
+ catch (Exception e)
+ {
+ LOGGER.error("error connecting to javadoc URL: {}", url);
+ throw e;
+ }
assertThat( apidocs.resolve( "def/configuration/AppSample.html" )).exists();
assertThat( apidocs.resolve( "def/configuration/package-summary.html" )).exists();
@@ -285,7 +297,7 @@ public void testDefaultConfiguration()
// package-frame and allclasses-(no)frame not generated anymore since Java 11
if ( JavaVersion.JAVA_SPECIFICATION_VERSION.isBefore( "11" ) )
{
- assertThat( apidocs.resolve( "def/configuration/package-frame.html" )).exists();;
+ assertThat( apidocs.resolve( "def/configuration/package-frame.html" )).exists();
assertThat( apidocs.resolve( "allclasses-frame.html" )).exists();
assertThat( apidocs.resolve( "allclasses-noframe.html" )).exists();
}
@@ -945,11 +957,6 @@ public void testJdk6()
public void testProxy()
throws Exception
{
- // ignore test as annotation doesn't ignore anything..
- if ( true )
- {
- return;
- }
Settings settings = new Settings();
Proxy proxy = new Proxy();
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 8260d66d..3a7c93f1 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.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.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 void testGetRedirectUrl()
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 void handle( String target, HttpServletRequest request, HttpServletRespon
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 void testGetRedirectUrlWithNoRedirects()
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 void handle( String target, HttpServletRequest request, HttpServletRespon
} );
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 void testGetRedirectUrlVerifyHeaders()
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 void handle( String target, HttpServletRequest request, HttpServletRespon
} );
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 7c1ad2d7..6daa738e 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/ProxyServer.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/ProxyServer.java
@@ -21,7 +21,8 @@
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 +31,12 @@
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.
@@ -48,6 +48,8 @@ class ProxyServer
{
private Server proxyServer;
+ private ServerConnector serverConnector;
+
/**
* @param proxyServlet the wanted auth proxy servlet
*/
@@ -63,13 +65,24 @@ public ProxyServer( AuthAsyncProxyServlet proxyServlet )
*/
public ProxyServer( String hostName, int port, AuthAsyncProxyServlet proxyServlet )
{
- proxyServer = new Server();
+ proxyServer = new Server( );
+
+ serverConnector = new ServerConnector( proxyServer );
+ serverConnector.setHost( InetAddress.getLoopbackAddress().getHostName() );
+ serverConnector.setReuseAddress( true );
+ serverConnector.setPort( 0 );
+
+ proxyServer.addConnector( serverConnector );
- proxyServer.addConnector( getDefaultConnector( hostName, port ) );
+ // Setup proxy handler to handle CONNECT methods
+ ConnectHandler proxy = new ConnectHandler();
+ proxyServer.setHandler(proxy);
- Context context = new Context( proxyServer, "/", 0 );
+ // Setup proxy servlet
+ ServletContextHandler context = new ServletContextHandler(proxy, "/", true, false);
+ ServletHolder appServletHolder = new ServletHolder(proxyServlet);
+ context.addServlet(appServletHolder, "/*");
- context.addServlet( new ServletHolder( proxyServlet ), "/" );
}
/**
@@ -77,8 +90,7 @@ public ProxyServer( String hostName, int port, AuthAsyncProxyServlet proxyServle
*/
public String getHostName()
{
- Connector connector = proxyServer.getConnectors()[0];
- return connector.getHost();
+ return serverConnector.getHost() == null ? InetAddress.getLoopbackAddress().getHostName() : serverConnector.getHost();
}
/**
@@ -86,8 +98,7 @@ public String getHostName()
*/
public int getPort()
{
- Connector connector = proxyServer.getConnectors()[0];
- return ( connector.getLocalPort() <= 0 ? connector.getPort() : connector.getLocalPort() );
+ return serverConnector.getLocalPort();
}
/**
@@ -115,31 +126,6 @@ public void stop()
proxyServer = null;
}
- private Connector getDefaultConnector( String hostName, int port )
- {
- Connector connector = new SocketConnector();
- if ( hostName != null )
- {
- connector.setHost( hostName );
- }
- else
- {
- try
- {
- connector.setHost( InetAddress.getLocalHost().getCanonicalHostName() );
- }
- catch ( UnknownHostException e )
- {
- // nop
- }
- }
- if ( port > 0 )
- {
- connector.setPort( port );
- }
-
- return connector;
- }
/**
* A proxy servlet with authentication support.
@@ -180,7 +166,6 @@ public AuthAsyncProxyServlet( Map authentications )
public AuthAsyncProxyServlet( Map authentications, long sleepTime )
{
this();
-
this.authentications = authentications;
this.sleepTime = sleepTime;
}
@@ -198,8 +183,10 @@ public void service( ServletRequest req, ServletResponse res )
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];