[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

tomcat8 review



Hi all,

Tomcat 8 has seen it's first alpha release in August and I took the
opportunity to package it. I started from a copy of the tomcat7 package
and I now have a working package ready for review:

    http://anonscm.debian.org/gitweb/?p=pkg-java/tomcat8.git

Besides the trivial tomcat7->tomcat8 renaming stuff there are a few
items needing attention:

1. The tomcat jars in /usr/share/java have been renamed to avoid
conflicts with other versions of Tomcat. There are two bugs related to
this issue for tomcat6/7, #685298 and #718946. The jars are now named
tomcat8-xxx.jar, even those that didn't have a 'tomcat' prefix like
jasper.jar and catalina.jar.


2. The libservlet3.0-java package (from tomcat7) contains twice the
servlet/jsp/el API jars with two different Maven groupIds. Once with the
org.apache.tomcat grouId, and another time with the javax.xxx-api
groupId. The artifacts under the org.apache.tomcat groupId are a bit odd
because they use the version of the specification instead of the version
of Tomcat. See:

    http://packages.debian.org/sid/all/libservlet3.0-java/filelist

This is unlikely to be useful since this combination of
groupId/artifactId/version doesn't exist in Maven central, so no package
will ever need these artifacts.

Moreover libservlet-java isn't specific to Tomcat, so it shouldn't
contain Tomcat artifacts.

For these reasons I moved them to the libtomcat8-java package. As a
corollary, libtomcat8-java doesn't need to depend on libservlet3.1-java.


3. Tomcat builds it classpath from the jar found in
/usr/share/tomcat/lib. This directory contains symklinks installed by
two packages, libtomcat-java and tomcat-common:

    http://packages.debian.org/sid/all/libtomcat7-java/filelist
    http://packages.debian.org/sid/all/tomcat7-common/filelist

For tomcat8 I had to add new jars and it wasn't clear which package was
supposed to install them in the lib directory. I decided to install all
the links with tomcat8-common. Thus libtomcat8-java contains only the
jars in /usr/share/java and the Maven artifacts in
/usr/share/maven-repo. tomcat8-common is responsible for assembling the
various parts required by Tomcat. I think that's cleaner and easier to
understand.


Here is the full changelog:

  * New upstream release (Closes: #722675)
    - Updated the version of the Servlet, JSP and EL APIs
    - Switched to Java 7
    - Updated the watch file to match the Tomcat 8 releases
    - Refreshed the patches
    - Updated debian/copyright, documented the xsd files licensed
      under the CDDL
    - Installed the new jars (spdy, jni, websocket,
      websocket-api, storeconfig)
    - Updated the artifactId of the specification jars to include
      the new javax prefix
    - Added the javax.websocket-api artifact to libservlet3.1-java
  * Use XZ compression for the upstream tarball
  * debian/control:
    - Replaced Sun Microsystems with Oracle in the packages descriptions
    - Mentioned 'Apache Tomcat' in the packages descriptions
  * Deploy the Tomcat artifacts in the Maven repository with the 8.x
version instead of 'debian' to avoid conflicts with other versions of
Tomcat.
  * Hard coded the versions in the poms in debian/javaxpoms to fix the
version of the dependencies for jsp-api
  * Renamed the jars in /usr/share/java to tomcat8-xxx to avoid
conflicts with other versions of Tomcat
  * Added the missing descriptions to the patches
  * Added a patch to ignore the failing tests
  * Moved the tomcat-{servlet|jsp|el}-api artifacts from
libservlet3.1-java to libtomcat8-java and changed their versions to the
Tomcat version instead of the specification version.
  * Removed libservlet3.1-java.links defining the tomcat-* links in
/usr/share/java with the specifications versions
  * The symlinks to /usr/share/tomcat8/lib are no longer split between
the two packages libtomcat8-java and tomcat8-common. tomcat8-common
assembles all the jars required by Tomcat (tomcat jars + dbcp + pool).
libtomcat8-java deploys only the jars in /usr/share/java and the Maven
artifacts in /usr/share/maven-repo.
  * Added the EL and WebSocket APIs to libservlet3.1-java-doc
  * Added a Lintian override for the incompatible-java-bytecode-format
warning since Tomcat requires Java 7
  * Added a Lintian override to clear the codeless-jar warnings on the
tomcat-i18n jars instead of a patch turning them into zip files.
  * Removed 0011-fix-classpath-lintian-warnings.patch and specified the
classpath of jasper.jar in libtomcat8-java.manifest instead.

Thank you for your reviews,

Emmanuel Bourg

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: