Kevan Miller wrote:

On Dec 7, 2007, at 2:44 PM, Joe Bohn wrote:


I was just looking into updating Tomcat for the Geronimo 2.1 release with an eye toward getting a fix integrated for the Webdav servlet security issue.

There are 3 possible approaches:

1) Apply the Webdav patch to the 6.0.13 image with the annotation changes and one other minor change (basically our current 6.0.13_G543818 build plus the WebDav fix). Check this into our private repository in trunk.

2) Checkout 6.0.14, apply the Webdav patch and annotation changes. Check this into our private repository in trunk.

3) Checkout tomcat trunk (6.0.x) which already includes the Webdav patch but not the annotation changes. Apply the annotation changes for our private build and check it into our repository in trunk.

I personally think #2 is probably best although it might expose some other issues in tomcat. We could always fall back to #1 if necessary. There was an attempt made at a tomcat 6.0.15 a few weeks back but it failed due to some context and tck issues ... hence my reservations with 6.0.x since it probably has those same issues.

OK. Good, I think, to upgrade to 6.0.14. So, I like your plan # 2.

I just checked in this upgrade in http://svn.apache.org/viewvc?rev=603398&view=rev

I hope it works (some quick testing looks promising).

After digging into this now for tomcat 6.0.14 I can safely say that we really need to come up with a better way. IMO we need to get Tomcat to integrate these annotation changes soon or revert back to using the native Tomcat mechanisms to support annotations. At the moment Tomcat still has the annotation changes sitting in their sandbox and the code in their new trunk is drifting.

Here are steps that I followed to create the patch to save the manual changes that were necessary so that we can recreate the tomcat image. I checked these directions in as repository/org/apache/tomcat/6.0.14-G602188.README.TXT


Private Build of Tomcat for Geronimo.                                           
                                
How to build Tomcat 6_0_14 with modifications for Geronimo:

Checkout tomcat 6.0.14
svn co https://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_14 tomcat_6_0_14

Apply the custom patch for Geronimo Annotation changes, Webdav fix, and build fix.
  cd tomcat_6_0_14
patch -p0 -u < tomcat_6_0_14-G602188.patch (checked in as a peer to this file) - Respond "y" to the 3 prompts "Reversed (or previously applied) patch detected! Assume -R? [n]"
  svn delete java/org/apache/jasper/runtime/AnnotationHelper.java --force
  svn delete java/org/apache/AnnotationProcessor.java --force
svn delete java/org/apache/catalina/util/DefaultAnnotationProcessor.java --force

Build tomcat
  cd tomcat_6_0_14
Per tomcat build instructions install ant-1.6.5 or later and set ANT_HOME as well as add ant/bin to PATH You must run as the super user for the first build that downloads more ant & eclipse artifacts
  ant download   - to setup build for tomcat
  Exit super user
  ant - to build tomcat artifacts

Copy to appropriate jars and rename into geronimo/repository
  cd tomcat_6_0_14
cp /build/lib/catalina.jar <geronimo-root>/repository/org/apache/tomcat/catalina/6.0.14-G602188/catalina-6.0.14-G602188.jar cp /build/lib/jasper.jar <geronimo-root>/repository/org/apache/tomcat/jasper/6.0.14-G602188/jasper-6.0.14-G602188.jar







How the patch was created:

Checkout tomcat 6.0.14
svn co https://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_14 tomcat_6_0_14


Apply annotation changes from old tomcat trunk
  cd tomcat_6_0_14
svn merge -r 542188:542189 https://svn.apache.org/repos/asf/tomcat/sandbox/gdev6x/ .
  manually correct merge conflicts

Apply the Webdav security fix from the new tomcat trunk
svn merge -r 587081:587082 https://svn.apache.org/repos/asf/tomcat/trunk/ .
  manually correct merge conflicts

Fix the tomcat build properties before attempting "ant download"
- Before you can build tomcat you need to make some manual changes to build.properties.default
  - replace jdt.jar=${jdt.lib}/org.eclipse.jdt.core_3.2.3.v_686_R32x.jar
    with jdt.jar=${jdt.lib}/org.eclipse.jdt.core_3.3.1.v_780_R33x.jar
  and
- replace jdt.loc=http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-JDT-3.2.2.zip with jdt.loc=http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-JDT-3.3.1.zip

The merge earlier keeps a history on added parts. As a result, the added parts will not appear on patch created from this image. To correct this we must revert the addition changes and manually add the parts back. Perform the following commands:
  svn revert java/org/apache/InstanceManager.java
  svn add    java/org/apache/InstanceManager.java
  svn revert java/org/apache/jasper/runtime/InstanceManagerFactory.java
  snv add    java/org/apache/jasper/runtime/InstanceManagerFactory.java
  svn revert java/org/apache/catalina/deploy/InjectionTarget.java
  snv add    java/org/apache/catalina/deploy/InjectionTarget.java

Create the patch:
  svn diff > TOMCAT_6_0_14-G602188.patch

Reply via email to