First cut at migrating to Jetty 6 and prep for using an external

Jetty 6 package.

- Add several jars from the Jetty 6 distribution
- Update jetty.xml
- Add context XML files
- Update WorkingDir to migrate the content XML files
- Update RouterConsoleRunner and LocaleWebAppHandler
- Remove all old Jetty 5.1.15 local mods;
  this will break Seedless using a custom Server() constructor
- Update I2PRequestLog to be a mod of NCSARequestLog from 6.1.26
- Put I2PRequestLog in its own jar
- Copy MultiPartRequest and other required classes from Jetty 5.1.15
  and add it to susimail, as the replacement MultiPartFilter in
  Jetty 6 is difficult to migrate to, and does not support content-type
- Update i2psnark for Jetty 6
- Disable i2psnark RunStandalone, unused and instantiated Jetty 5
- Fix up all webapp build.xml to reference new jars

Not yet working: Plugin/webapp run detection and stopping, eepsite CGI
Not well tested: Plugins, classpaths, webapps
This commit is contained in:
zzz
2011-12-23 00:56:48 +00:00
parent bd14dc3112
commit 92b9d0a996
49 changed files with 757 additions and 6607 deletions

View File

@@ -4,11 +4,13 @@ import java.io.IOException;
import java.util.Locale;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.i2p.I2PAppContext;
import org.mortbay.http.HttpRequest;
import org.mortbay.http.HttpResponse;
import org.mortbay.jetty.servlet.WebApplicationHandler;
import org.mortbay.jetty.webapp.WebAppContext;
/**
* Convert foo.jsp to foo_xx.jsp for language xx.
@@ -19,12 +21,12 @@ import org.mortbay.jetty.servlet.WebApplicationHandler;
*
* @author zzz
*/
public class LocaleWebAppHandler extends WebApplicationHandler
public class LocaleWebAppHandler extends WebAppContext
{
private final I2PAppContext _context;
public LocaleWebAppHandler(I2PAppContext ctx) {
super();
public LocaleWebAppHandler(I2PAppContext ctx, String path, String warPath) {
super(warPath, path);
_context = ctx;
}
@@ -36,13 +38,13 @@ public class LocaleWebAppHandler extends WebApplicationHandler
*/
@Override
public void handle(String pathInContext,
String pathParams,
HttpRequest httpRequest,
HttpResponse httpResponse)
throws IOException
HttpServletRequest httpRequest,
HttpServletResponse httpResponse,
int dispatch)
throws IOException, ServletException
{
// Handle OPTIONS (nothing to override)
if (HttpRequest.__OPTIONS.equals(httpRequest.getMethod()))
if ("OPTIONS".equals(httpRequest.getMethod()))
{
handleOptions(httpRequest, httpResponse);
return;
@@ -74,7 +76,9 @@ public class LocaleWebAppHandler extends WebApplicationHandler
if (lang != null && lang.length() > 0 && !lang.equals("en")) {
String testPath = pathInContext.substring(0, len - 4) + '_' + lang + ".jsp";
// Do we have a servlet for the new path that isn't the catchall *.jsp?
Map.Entry servlet = getHolderEntry(testPath);
//Map.Entry servlet = getHolderEntry(testPath);
///////////////////////////////
Map.Entry servlet = null;
if (servlet != null) {
String servletPath = (String) servlet.getKey();
if (servletPath != null && !servletPath.startsWith("*")) {
@@ -87,7 +91,7 @@ public class LocaleWebAppHandler extends WebApplicationHandler
}
}
//System.err.println("New path: " + newPath);
super.handle(newPath, pathParams, httpRequest, httpResponse);
super.handle(newPath, httpRequest, httpResponse, dispatch);
//System.err.println("Was handled? " + httpRequest.isHandled());
}
@@ -95,22 +99,24 @@ public class LocaleWebAppHandler extends WebApplicationHandler
* Overrides method in ServletHandler
* @since 0.8
*/
/**** not in Jetty 6
@Override
public void handleTrace(HttpRequest request,
HttpResponse response)
public void handleTrace(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
response.sendError(HttpResponse.__405_Method_Not_Allowed);
response.sendError(405);
}
****/
/**
* Not an override
* @since 0.8
*/
public void handleOptions(HttpRequest request,
HttpResponse response)
public void handleOptions(HttpServletRequest request,
HttpServletResponse response)
throws IOException
{
response.sendError(HttpResponse.__405_Method_Not_Allowed);
response.sendError(405);
}
}