MaverickJavaFrameworksSpec

Summary

This spec is about planned improvements in Java frameworks support in Ubuntu, including:

  • Sync Spring to avoid the JRuby dependency
  • Moving Hibernate to main

Release Note

Hibernate is now properly supported in Ubuntu main.

Rationale

Hibernate3 is in universe as of Lucid. Eucalyptus depends on hibernate but uses a stripped copy in eucalyptus-commons-ext (which is in main). This was originally done to avoid the extra work on moving to main all of Hibernate build dependencies (and dependencies of build dependencies). With ehcache potentially targeted to main, that makes two top-level stacks needing Hibernate properly supported. Now that LTS is out we can have a fresh look at the issue again.

User stories

As a Java packager, I want to properly push packages depending on Hibernate into Ubuntu main (or packages depending on Spring to Ubuntu universe). Using the Java stack available in 10.10, I can now do so.

Assumptions

Moving Hibernate to main depends on the MIR team acceptation of the related packages. Having pre-acceptation that the number (36) and the scope of packages (JBoss4/Glassfish) are not a problem would be good.

Design

Hibernate

Update to Hibernate 3.5

Hibernate 3.5 supports JPA2 so it's definitely something we want to support in the distribution. This is likely to happen in Debian through the efforts of Damien Raude-Morvan.

Move libhibernate3-java to main

One Ubuntu-specific issue is that Hibernate3 is still in universe. Eucalyptus depends on hibernate but uses a stripped copy in eucalyptus-commons-ext (which is in main). This was originally done to avoid the extra work on moving to main all of Hibernate build dependencies (and dependencies of build dependencies). Now that LTS is out we can have a fresh look at the issue again. Here is the graph of the 36 packages:

  • libhibernate3-java
    • libjgroups-java
    • jbossas4 (libjboss-system-java, libjboss-jmx-java)
      • libjboss-common-java
      • libjboss-profiler-java
      • libjboss-xml-binding-java
        • libdtdparser-java
      • libjboss-remoting-java
      • libjboss-microcontainer-java
        • libjboss-integration-java
      • libjboss-managed-java
      • libjboss-reflect-java
        • libjboss-metadata-java
      • libjboss-aop-java
      • libjboss-serialization-java
      • libjboss-web-services-java
      • libjboss-vfs-java
      • libgetopt-java
      • libconcurrent-java
      • libquartz-java
      • libhibernate-entitymanager-java
        • libhibernate-annotations-java
        • libhibernate-commons-annotations-java
        • libhibernate-validator-java
        • glassfish (glassfish-toplink-essentials)
    • ehcache
      • libjsr107-java
    • liboscache-java
    • libjboss-cache1-java
      • libdb-je-java
      • libjdbm-java
    • libjboss-cache2-java
      • libjgroups2.6-java
      • libjcip-annotations-java
      • libexml-java
    • libswarmcache-java

Notes:

  • The list will need to be refreshed after Debian sync/merges and potential move to Hibernate 3.5
  • There might be ways to get rid of some of those dependencies for someone that knows Hibernate or JBoss well.

The main blocker to expect is resistance from the MIR team to pull some high-profile source packages (jbossas4, glassfish) into main. However, the related server packages (jbossas4, glassfish-appserv) would stay in universe, which somehow reduces the impact.

Spring

Spring needs to be updated to the latest version in Debian which does not depend anymore on JRuby for building. Otherwise it will be pushed to multiverse by the forces of nature and policy.

Other

The JRuby situation needs to be tackled as it becomes more and more difficult to work around it. Debian bug 551618 tracks the necessary work on JRuby build dependencies.

Implementation

Ubuntu-specific work

See work items in server-maverick-java-frameworks whiteboard for details.

Debian-side work

  • Upgrade to Hibernate 3.5 (in progress)
  • Properly package JRuby (in progress)

Test/Demo Plan

tbd

Unresolved issues

None.

BoF agenda and discussion

UDS discussion notes

Policy:

  • Do not package frameworks, only care if they are needed by other stacks

Actions:

  • Ubuntu to check with eucalyptus upgrade to hibernate 3.5
  • Ubuntu to consider moving Hibernate to main (to support ehcache/eucalyptus) -> 32 MIR, including JBoss4/GF

  • Ubuntu to sync Spring so that it doesn't depend on JRuby
  • Debian to update Hibernate to 3.5
  • Debian/Ubuntu to start working on getting JRuby properly packaged


CategorySpec

MaverickJavaFrameworksSpec (last edited 2010-05-20 14:07:04 by lns-bzn-48f-81-56-218-246)