From 4dd8a6421a6696c3c04aa6a29a2ccf9d34bd248f Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 10 Jun 2014 00:17:19 +0000
Subject: [PATCH] Tomcat: Bundle a stripped tomcat-coyote.jar with the utils
 required to precompile jsps with tags (SusiDNS and Bote). As of 6.0.39, these
 utils are required but they are not bundled in the Tomcat deployer package,
 the main package is required. This checkin has only the classes required from
 the jar.

---
 apps/jetty/apache-tomcat/README-i2p.txt       |  10 +++++++++
 .../apache-tomcat/lib/tomcat-coyote-util.jar  | Bin 0 -> 12425 bytes
 apps/jetty/build.xml                          |  21 ++++++++++++++++++
 3 files changed, 31 insertions(+)
 create mode 100644 apps/jetty/apache-tomcat/README-i2p.txt
 create mode 100644 apps/jetty/apache-tomcat/lib/tomcat-coyote-util.jar

diff --git a/apps/jetty/apache-tomcat/README-i2p.txt b/apps/jetty/apache-tomcat/README-i2p.txt
new file mode 100644
index 0000000000..edeb05fcbb
--- /dev/null
+++ b/apps/jetty/apache-tomcat/README-i2p.txt
@@ -0,0 +1,10 @@
+This is Apache Tomcat 6.x, supporting Servlet 2.5 and JSP 2.1.
+
+Retrieved from the file
+	apache-tomcat-6.0.41.tar.gz
+
+containing only a small subset of lib/tomcat-coyote.jar.
+
+See the buildTomcatUtilJar target in ../build.xml for the classes extracted and more information.
+
+LICENSE: see ../../../licenses/LICENSE-Apache2.0.txt
diff --git a/apps/jetty/apache-tomcat/lib/tomcat-coyote-util.jar b/apps/jetty/apache-tomcat/lib/tomcat-coyote-util.jar
new file mode 100644
index 0000000000000000000000000000000000000000..da3061a5f169e598b76226bf6d79f9f38ee6dbef
GIT binary patch
literal 12425
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

literal 0
HcmV?d00001

diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index ddb0fffbc3..bb7de443d0 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -10,6 +10,9 @@
     <property name="javac.compilerargs" value="" />
     <property name="javac.version" value="1.6" />
     <property name="tomcat.lib" value="apache-tomcat-deployer/lib" />
+    <property name="tomcat.ver" value="6.0.41" />
+    <property name="tomcat2.lib" value="apache-tomcat-${tomcat.ver}/lib" />
+    <property name="tomcat2.lib.small" value="apache-tomcat/lib" />
 
     <target name="all" depends="build" />
 
@@ -152,6 +155,23 @@
         <ant target="copyTomcatLib" />
     </target>
 
+    <!-- Tomcat util jar.
+         As of Tomcat 6.0.39, the deployer does not contain some classes that are required
+         to precompile jsps with tags (SusiDNS and i2p-bote).
+         These classes are in the main Tomcat package, in lib/tomcat-coyote.jar.
+         As the jar is 800 KB and we only need 12 KB of that, we extract the required classes
+         to a new jar, created and checked in using this target.
+         Apparently this is only required for precompilation of jsps, so this is put in
+         with the JspC compiler jasper-runtime.jar below.
+     -->
+    <target name="buildTomcatUtilJar" >
+        <!-- take only what we need from the tomcat-coyote jar -->
+        <jar destfile="${tomcat2.lib.small}/tomcat-coyote-util.jar" >
+            <zipfileset src="${tomcat2.lib}/tomcat-coyote.jar"
+             includes="org/apache/tomcat/util/descriptor/* org/apache/tomcat/util/res/*" />
+        </jar>
+    </target>
+
     <!-- Tomcat.
          The glassfish jars bundled in Jetty 6 are way too old.
          For compatibility with very old I2P installations where the classpath
@@ -170,6 +190,7 @@
     <target name="copyTomcatLib" >
         <jar destfile="jettylib/jasper-runtime.jar" filesetmanifest="merge" >
             <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/jasper.jar" />
+            <zipfileset src="${tomcat2.lib.small}/tomcat-coyote-util.jar" />
         </jar>
         <jar destfile="jettylib/commons-el.jar" duplicate="preserve" filesetmanifest="merge" >
             <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/jasper-el.jar" />
-- 
GitLab