- Update to Jetty 8.x, Servlet 3.0, JSP 2.2
   - Require Java 6
   - Use Servlet and JSP jars from Jetty instead of Tomcat
   - Tomcat remains at 6.0.37 supporting Servlet 2.5 / JSP 2.1
   - Remove Jetty dependency in console error pages
   - Build files for Jetty 8.1.14
   - Doc updates
   - Delete Jetty 7.6.14
   - Jetty 8.1.14 not yet checked in,
     waiting to see if a new version is released soon,
     but build will download it for testing
This commit is contained in:
zzz
2014-02-03 23:24:45 +00:00
parent c59603d31b
commit 001b127258
24 changed files with 59 additions and 25 deletions

View File

@ -39,7 +39,10 @@ To uninstall I2P:
rm -rf $I2PInstallDir ~/.i2p rm -rf $I2PInstallDir ~/.i2p
Supported JVMs: Supported JVMs:
Windows: Latest available from http://java.com/download (1.5+ supported) All platforms: Java 1.6 or higher required; 1.7 or higher recommended
Linux: Latest available from http://java.com/download (1.5+ supported) Windows: OpenJDK or Oracle from http://java.com/download
FreeBSD: 1.5-compatible (NIO required) Linux: OpenJDK or Oracle from http://java.com/download
Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java FreeBSD: OpenJDK or Oracle from http://java.com/download
Raspberry Pi: Oracle 8 Early Access https://jdk8.java.net/download.html
PowerPC: IBM SDK 7 http://www.ibm.com/developerworks/java/jdk/linux/download.html
Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java or https://geti2p.net/download

View File

@ -177,7 +177,7 @@ Applications:
By welterde. By welterde.
See licenses/LICENSE-GPLv2.txt See licenses/LICENSE-GPLv2.txt
Jetty 7.6.14.v20131031: Jetty 8.1.14.v20131031:
See licenses/ABOUT-Jetty.html See licenses/ABOUT-Jetty.html
See licenses/NOTICE-Jetty.html See licenses/NOTICE-Jetty.html
See licenses/LICENSE-Apache2.0.txt See licenses/LICENSE-Apache2.0.txt

View File

@ -6,9 +6,21 @@ Retrieved from the file
minus the following files and directores: minus the following files and directores:
build.xml build.xml
deployer-howto.html deployer-howto.html
images/* images/*
lib/catalina* lib/catalina*
LICENSE (see ../../../licenses/LICENSE-Apache2.0.txt, it's also inside every jar) lib/jsp-api.jar (see below)
RELEASE-NOTES lib/servlet-api.jar (see below)
LICENSE (see ../../../licenses/LICENSE-Apache2.0.txt, it's also inside every jar)
RELEASE-NOTES
We could use the following API jars from Apache Tomcat 7.x, supporting Servlet 3.0 and JSP 2.2,
that are required for Jetty 8, but we just bundle the ones from Jetty 8 instead:
lib/jsp-api.jar
lib/servlet-api.jar
For more info:
http://tomcat.apache.org/whichversion.html

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="all" name="jetty"> <project basedir="." default="all" name="jetty">
<property name="jetty.ver" value="7.6.14.v20131031" /> <property name="jetty.ver" value="8.1.14.v20131031" />
<property name="jetty.base" value="jetty-distribution-${jetty.ver}" /> <property name="jetty.base" value="jetty-distribution-${jetty.ver}" />
<property name="jetty.sha1" value="f83894b5641f920ed8ac31501b473528e52a23fd" /> <property name="jetty.sha1" value="a6690261a822157c82fcc6327d05ac8c7dfed0a3" />
<property name="jetty.filename" value="${jetty.base}.zip" /> <property name="jetty.filename" value="${jetty.base}.zip" />
<property name="jetty.url" value="http://download.eclipse.org/jetty/${jetty.ver}/dist/${jetty.filename}" /> <property name="jetty.url" value="http://download.eclipse.org/jetty/${jetty.ver}/dist/${jetty.filename}" />
<property name="verified.filename" value="verified.txt" /> <property name="verified.filename" value="verified.txt" />
@ -104,9 +104,10 @@
jetty-servlets-xxx.jar: Needed for CGI for eepsite jetty-servlets-xxx.jar: Needed for CGI for eepsite
jetty-sslengine-xxx.jar: Old Jetty 6, now a dummy jetty-sslengine-xxx.jar: Old Jetty 6, now a dummy
jetty-java5-threadpool-xxx.jar: Old Jetty 6, now a dummy jetty-java5-threadpool-xxx.jar: Old Jetty 6, now a dummy
glassfish 2.1: Not used, too old, see Tomcat below.
jetty-rewrite-handler: Not used by I2P, but only 20KB and could be useful for eepsites jetty-rewrite-handler: Not used by I2P, but only 20KB and could be useful for eepsites
jetty-management: Not used by I2P, but only 34KB and could be useful for eepsites, and we bundled it with Jetty 5 jetty-management: Not used by I2P, but only 34KB and could be useful for eepsites, and we bundled it with Jetty 5
javax.servlet.jsp-2.2.0.v201112011158.jar: Required API
servlet-api-3.0.jar: Required API
All of these are available in the Ubuntu packages libjetty-java and libjetty-extra-java All of these are available in the Ubuntu packages libjetty-java and libjetty-extra-java
--> -->
<copy preservelastmodified="true" file="${jetty.base}/start.jar" tofile="jettylib/jetty-start.jar" /> <copy preservelastmodified="true" file="${jetty.base}/start.jar" tofile="jettylib/jetty-start.jar" />
@ -133,6 +134,10 @@
<attribute name="Note" value="Intentionally empty" /> <attribute name="Note" value="Intentionally empty" />
</manifest> </manifest>
</jar> </jar>
<jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" >
<zipfileset excludes="about.html about_files about_files/* META-INF/ECLIPSEF.* META-INF/eclipse.inf plugin.properties" src="${jetty.base}/lib/servlet-api-3.0.jar" />
<zipfileset excludes="about.html about_files about_files/* META-INF/ECLIPSEF.* META-INF/eclipse.inf plugin.properties" src="${jetty.base}/lib/jsp/javax.servlet.jsp-2.2.0.v201112011158.jar" />
</jar>
<!-- <!--
<delete file="jetty.tar" /> <delete file="jetty.tar" />
<delete dir="${jetty.base}" /> <delete dir="${jetty.base}" />
@ -152,10 +157,14 @@
was set individually in wrapper.config, we rename and combine the jars as follows: was set individually in wrapper.config, we rename and combine the jars as follows:
jasper.jar : jasper-runtime.jar jasper.jar : jasper-runtime.jar
jasper-el.jar + el-api.jar : commons-el.jar jasper-el.jar + el-api.jar : commons-el.jar
servlet-api.jar + jsp-api.jar : javax.servlet.jar
tomcat-juli.jar : Add to commons-logging.jar tomcat-juli.jar : Add to commons-logging.jar
empty jar : jasper-compiler.jar empty jar : jasper-compiler.jar
Also, take NOTICE and LICENSE out of each one, we bundle those separately. Also, take NOTICE and LICENSE out of each one, we bundle those separately.
Not as of Jetty 8 (using from Jetty):
servlet-api.jar + jsp-api.jar : javax.servlet.jar
If we go to Tomcat 7:
tomcat-api.jar + tomcat-util.jar: Add to javax.servlet.jar (as of Tomcat 7 / Jetty 8)
--> -->
<target name="copyTomcatLib" > <target name="copyTomcatLib" >
<jar destfile="jettylib/jasper-runtime.jar" filesetmanifest="merge" > <jar destfile="jettylib/jasper-runtime.jar" filesetmanifest="merge" >
@ -165,10 +174,14 @@
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/jasper-el.jar" /> <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/jasper-el.jar" />
<zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/el-api.jar" /> <zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/el-api.jar" />
</jar> </jar>
<!--
<jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" > <jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" >
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/servlet-api.jar" /> <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/servlet-api.jar" />
<zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/jsp-api.jar" /> <zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/jsp-api.jar" />
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/tomcat-api.jar" />
<zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/tomcat-util.jar" />
</jar> </jar>
-->
<!-- Ant bug, don't set update and filesetmanifest or the update doesn't happen, <!-- Ant bug, don't set update and filesetmanifest or the update doesn't happen,
Their bug tracker claims fixed in 1.8.0 but broken for me in 1.8.1 Their bug tracker claims fixed in 1.8.0 but broken for me in 1.8.1
--> -->

View File

@ -4,9 +4,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<% <%
// Let's make this easy... // Let's make this easy...
final Integer ERROR_CODE = (Integer) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_STATUS_CODE); // These are defined in Jetty 7 org.eclipse.jetty.server.Dispatcher,
final String ERROR_URI = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_REQUEST_URI); // and in Servlet 3.0 (Jetty 8) javax.servlet.RequestDispatcher,
final String ERROR_MESSAGE = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_MESSAGE); // just use the actual strings here to make it compatible with either
final Integer ERROR_CODE = (Integer) request.getAttribute("javax.servlet.error.status_code");
final String ERROR_URI = (String) request.getAttribute("javax.servlet.error.request_uri");
final String ERROR_MESSAGE = (String) request.getAttribute("javax.servlet.error.message");
if (ERROR_CODE != null && ERROR_MESSAGE != null) { if (ERROR_CODE != null && ERROR_MESSAGE != null) {
// this is deprecated but we don't want sendError() // this is deprecated but we don't want sendError()
response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE); response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE);

View File

@ -3,11 +3,14 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<% <%
// Let's make this easy... // Let's make this easy...
final Integer ERROR_CODE = (Integer) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_STATUS_CODE); // These are defined in Jetty 7 org.eclipse.jetty.server.Dispatcher,
final String ERROR_URI = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_REQUEST_URI); // and in Servlet 3.0 (Jetty 8) javax.servlet.RequestDispatcher,
final String ERROR_MESSAGE = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_MESSAGE); // just use the actual strings here to make it compatible with either
final Class ERROR_CLASS = (Class)request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_EXCEPTION_TYPE); final Integer ERROR_CODE = (Integer) request.getAttribute("javax.servlet.error.status_code");
final Throwable ERROR_THROWABLE = (Throwable)request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_EXCEPTION); final String ERROR_URI = (String) request.getAttribute("javax.servlet.error.request_uri");
final String ERROR_MESSAGE = (String) request.getAttribute("javax.servlet.error.message");
final Class ERROR_CLASS = (Class) request.getAttribute("javax.servlet.error.exception_type");
final Throwable ERROR_THROWABLE = (Throwable) request.getAttribute("javax.servlet.error.exception");
if (ERROR_CODE != null && ERROR_MESSAGE != null) { if (ERROR_CODE != null && ERROR_MESSAGE != null) {
// this is deprecated but we don't want sendError() // this is deprecated but we don't want sendError()
response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE); response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE);

View File

@ -7,7 +7,7 @@
<customProcName>false</customProcName> <customProcName>false</customProcName>
<icon>resources/console.ico</icon> <icon>resources/console.ico</icon>
<jre> <jre>
<minVersion>1.5.0</minVersion> <minVersion>1.6.0</minVersion>
</jre> </jre>
<!-- <!--
<splash> <splash>

View File

@ -7,7 +7,7 @@
<customProcName>false</customProcName> <customProcName>false</customProcName>
<icon>resources/start.ico</icon> <icon>resources/start.ico</icon>
<jre> <jre>
<minVersion>1.5.0</minVersion> <minVersion>1.6.0</minVersion>
<!-- <!--
<minHeapSize>64</minHeapSize> <minHeapSize>64</minHeapSize>
--> -->