Skip to content

Commit

Permalink
[MSITE-828] [MSITE-829] Upgrade jetty to recent version. Update to ja…
Browse files Browse the repository at this point in the history
…va 1.8 (required for jetty) (#3)

* Upgrade jetty to recent version. Update to java 1.8 (required for jetty)

* Make checkstyle happy

* Introduce jettyVersion property

* Update jettyVersion to 9.4.12.v20180830

* Work around compilation problem for site:run

* Fix obsolete servlet api on classpath
  • Loading branch information
oflebbe authored and olamy committed Nov 15, 2018
1 parent b548f0a commit a0fb71d
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 89 deletions.
62 changes: 45 additions & 17 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,25 @@ under the License.
<projectInfoReportsPluginVersion>2.7</projectInfoReportsPluginVersion>
<checkstylePluginVersion>2.9.1</checkstylePluginVersion>
<pmdPluginVersion>3.0.1</pmdPluginVersion>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<jettyVersion>9.4.12.v20180830</jettyVersion>
</properties>

<dependencies>
<!-- exclude obsolete runtime artifact included by transitive dependencies (pulled by doxia-site-renderer) -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>org.apache.maven.reporting</groupId>
<artifactId>maven-reporting-api</artifactId>
Expand Down Expand Up @@ -348,23 +364,19 @@ under the License.
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>

<!-- Doxia Sitetools -->
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-decoration-model</artifactId>
<version>${doxiaSitetoolsVersion}</version>
</dependency>

<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-site-renderer</artifactId>
<version>${doxiaSitetoolsVersion}</version>
</dependency>

<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-integration-tools</artifactId>
Expand Down Expand Up @@ -392,20 +404,40 @@ under the License.
</dependency>

<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.25</version>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jettyVersion}</version>
</dependency>

<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jettyVersion}</version>
</dependency>

<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>${jettyVersion}</version>
</dependency>

<dependency>
<groupId>org.mortbay.jetty</groupId>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>6.1.25</version>
<version>${jettyVersion}</version>
</dependency>

<dependency>
<groupId>org.mortbay.jetty</groupId>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-client</artifactId>
<version>6.1.25</version>
<version>${jettyVersion}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-proxy</artifactId>
<version>${jettyVersion}</version>
<scope>test</scope>
</dependency>

Expand Down Expand Up @@ -533,10 +565,6 @@ under the License.
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>${maven.compiler.target}</maxJdkVersion>
<excludes><!-- DOXIA-554 Markdown parser requires Java 7 (use version 1.7 if you absolutely require Java 6) -->
<exclude>org.apache.maven.doxia:doxia-module-markdown</exclude>
<exclude>org.nibor.autolink:autolink</exclude>
</excludes>
</enforceBytecodeVersion>
</rules>
<fail>true</fail>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,11 @@ private void deploy( final File directory, final Repository repository )
{
try
{
SettingsDecrypter settingsDecrypter = container.lookup( SettingsDecrypter.class );
// The cast does not make sense, however I get when compiled with maven 3.5.4:
// error: incompatible types: Object cannot be converted to SettingsDecrypter
// The cast is not necessary with maven 3.3.9
SettingsDecrypter settingsDecrypter =
(SettingsDecrypter) container.lookup( SettingsDecrypter.class );

proxyInfo = getProxy( repository, settingsDecrypter );
}
Expand Down
29 changes: 4 additions & 25 deletions src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,8 @@
import org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo;
import org.apache.maven.reporting.exec.MavenReportExecution;
import org.codehaus.plexus.util.IOUtil;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

/**
* Starts the site up, rendering documents as requested for faster editing.
Expand Down Expand Up @@ -78,22 +74,13 @@ public void execute()
{
checkInputEncoding();

Server server = new Server();
Server server = new Server( port );
server.setStopAtShutdown( true );

Connector defaultConnector = getDefaultConnector();
server.setConnectors( new Connector[] { defaultConnector } );

WebAppContext webapp = createWebApplication();
webapp.setServer( server );

DefaultHandler defaultHandler = new DefaultHandler();
defaultHandler.setServer( server );

Handler[] handlers = new Handler[2];
handlers[0] = webapp;
handlers[1] = defaultHandler;
server.setHandlers( handlers );
server.setHandler( webapp );

getLog().info( "Starting Jetty on http://localhost:" + port + "/" );
try
Expand Down Expand Up @@ -224,14 +211,6 @@ private WebAppContext createWebApplication()
return webapp;
}

private Connector getDefaultConnector()
{
Connector connector = new SelectChannelConnector();
connector.setPort( port );
connector.setMaxIdleTime( MAX_IDLE_TIME );
return connector;
}

public void setTempWebappDirectory( File tempWebappDirectory )
{
this.tempWebappDirectory = tempWebappDirectory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
import org.apache.maven.plugins.site.deploy.SimpleDavServerHandler.HttpRequest;

import org.apache.maven.plugins.site.stubs.SiteMavenProjectStub;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Settings;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,7 @@

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.*;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
Expand All @@ -34,11 +31,14 @@

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.maven.plugins.site.deploy.SimpleDavServerHandler.HttpRequest;
import org.mortbay.jetty.security.B64Code;
import org.mortbay.proxy.AsyncProxyServlet;
import org.apache.commons.lang3.SystemUtils;
import org.eclipse.jetty.util.B64Code;
import org.eclipse.jetty.proxy.AsyncProxyServlet;
import org.eclipse.jetty.proxy.AsyncProxyServlet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.maven.plugins.site.deploy.HttpRequest;


/**
* @author Olivier Lamy
Expand Down Expand Up @@ -108,7 +108,7 @@ public void service( ServletRequest req, ServletResponse res )
if ( proxyAuthorization != null && proxyAuthorization.startsWith( "Basic " ) )
{
String proxyAuth = proxyAuthorization.substring( 6 );
String authorization = B64Code.decode( proxyAuth );
String authorization = new String(B64Code.decode( proxyAuth ));
String[] authTokens = authorization.split( ":" );
String user = authTokens[0];
String password = authTokens[1];
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.apache.maven.plugins.site.deploy;

/*
* 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 org.apache.commons.lang3.SystemUtils;

import java.util.HashMap;
import java.util.Map;

class HttpRequest
{
Map<String, String> headers = new HashMap<String,String>();

String method;

String path;

HttpRequest()
{
// nop
}

@Override
public String toString()
{
StringBuilder sb = new StringBuilder( method ).append( " path " ).append( path )
.append( SystemUtils.LINE_SEPARATOR );
for ( Map.Entry<String, String> entry : headers.entrySet() )
{
sb.append( entry.getKey() ).append( " : " ).append( entry.getValue() )
.append( SystemUtils.LINE_SEPARATOR );
}
return sb.toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,14 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SystemUtils;
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.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletContextHandler.Context;
import org.eclipse.jetty.servlet.ServletHolder;
import org.apache.maven.plugins.site.deploy.HttpRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -67,7 +69,7 @@ public SimpleDavServerHandler(final File targetPath )
this.siteTargetPath = targetPath;
Handler repoHandler = new AbstractHandler()
{
public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
public void handle( String target, Request r, HttpServletRequest request, HttpServletResponse response )
throws IOException, ServletException
{
String targetPath = request.getPathInfo();
Expand Down Expand Up @@ -112,16 +114,17 @@ public SimpleDavServerHandler( Servlet servlet )
{
siteTargetPath = null;
server = new Server( 0 );
Context context = new Context( server, "/", 0 );

ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet( new ServletHolder( servlet ), "/" );

server.start();
}
}

public int getPort()
{
return server.getConnectors()[0].getLocalPort();
return server.getURI().getPort();
}

public void stop()
Expand All @@ -131,30 +134,5 @@ public void stop()
}


static class HttpRequest
{
Map<String, String> headers = new HashMap<String,String>();

String method;

String path;

HttpRequest()
{
// nop
}

@Override
public String toString()
{
StringBuilder sb = new StringBuilder( method ).append( " path " ).append( path )
.append( SystemUtils.LINE_SEPARATOR );
for ( Entry<String, String> entry : headers.entrySet() )
{
sb.append( entry.getKey() ).append( " : " ).append( entry.getValue() )
.append( SystemUtils.LINE_SEPARATOR );
}
return sb.toString();
}
}
}

0 comments on commit a0fb71d

Please sign in to comment.