##(see the SpecSpec for an explanation) * '''Launchpad Entry''': UbuntuSpec:server-maverick-java-frameworks * '''Created''': 2010-05-20 * '''Contributors''': ThierryCarrez * '''Packages affected''': libhibernate3-java (and all its build dependencies), libspring-2.5-java == 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 [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=551618|bug 551618]] tracks the necessary work on JRuby build dependencies. == Implementation == === Ubuntu-specific work === See work items in UbuntuSpec: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