RefactorEucalyptusJavadepsSpec
Launchpad Entry: server-karmic-euca-javadeps-refactoring
Created: June 2, 2009
Contributors: ThierryCarrez
Packages affected: eucalyptus-javadeps
Summary
The eucalyptus-javadeps package should be splitted into proper single packages wherever possible. Missing dependencies should be packaged as well.
Release Note
Most Java libraries that were previously included into the single eucalyptus-javadeps package are now separately packaged and properly available for all Ubuntu users, making them part of the growing Ubuntu Java platform. The new Eucalyptus 1.6 dependencies are packaged as well.
Rationale
Due to time constraints during the Jaunty cycle, the missing Eucalyptus Java dependencies were all packaged as a giant single package called eucalyptus-javadeps, which conveniently allowed for partial builds, rewrites of the build system etc. For the Karmic cycle however, with the parallel objective of bringing Eucalyptus to main, it makes sense to split this giant package into proper separate packages wherever possible. This will greatly improve maintainability and give simpler access to those Java libraries for platform developers.
In order to ship Eucalyptus 1.6 release, we also need to package the additional dependencies that this version requires.
User stories
- Yulia is a Java developer on the Ubuntu platform. Her software makes use of Jetty 6 and GWT but they were only available as part of a giant eucalyptus-javadeps package. With the Karmic release she can have her software properly depend on jetty 6 and GWT rather than pulling in superfluous dependencies.
- Justin is an Ubuntu security member and was worried about issuing security updates for the whole eucalyptus-javadeps package if a vulnerability would hit one of its components. He is happy to have Eucalyptus in main now that the eucalyptus-javadeps package is properly refactored.
Assumptions
None.
Design
Needed as separate packages
Package |
Notes |
Google Web Toolkit |
Version 1.6 to build with the ECJ/SWT in Karmic. gwt-runtime only ? |
JUG (ASL) |
- |
Jetty 6 |
Being packaged upstream |
Drools |
Requires MVEL. Partial build ? |
MVEL |
- |
Axiom |
- |
WSS4J 1.5.7 |
- |
OpenSAML 1.1 Java |
Note that it is possible to patch out OpenSAML dependency from WSS4J |
No longer required in Karmic (Eucalyptus 1.6)
Package |
Notes |
Jettison |
In the archive already (use libjettison-java) |
AspectJ Weaver |
Was needed as build-dep of Spring. Can be patched out |
ECJ JDT Core |
Older version was necessary for GWT 1.5 |
SWT-GTK 3.2.1 |
Older version was necessary for GWT 1.5 |
Was needed as build-dep of Spring. Can be patched out |
|
Jetty GWT servlet |
No longer needed with GWT 1.6 / Euca 1.6 |
Axis2 |
No longer needed with Euca 1.6 |
Annogen |
No longer needed with Euca 1.6 |
Apache WS Neethi |
No longer needed with Euca 1.6 |
Woden |
No longer needed with Euca 1.6 |
Apache WS XmlSchema |
No longer needed with Euca 1.6 |
Rampart 1.3 |
No longer needed with Euca 1.6 |
Backport Util Concurrent 3.1 |
Was a build-dep of Axis2 |
HttpComponents Core |
Scheduled for removal in 1.6 |
Additional dependencies in Karmic (Eucalyptus 1.6)
Package |
Notes |
Netty 3.1.0CR1 |
|
dnsjava 2.0.6 |
|
geronimo-ejb_3.0_spec-1.0.1 |
|
geronimo-jpa_3.0_spec-1.1.1 |
|
Logkit r508111 |
Now part of excalibur |
geronimo-interceptor |
build-dep of new euca-javadeps |
geronimo-jacc |
build-dep of new euca-javadeps |
Keeping the eucalyptus-javadeps package
The eucalyptus-javadeps package will still contain the Eucalyptus Java dependencies that don't make sense in the archive. This can be because their functionality is crippled or because Eucalyptus needs a version of a library that slightly differs from the one we have in archive, and changing that one would break other packages.
The proposal for Karmic would be to include the following JARs in eucalyptus-javadeps, together with their potential missing build dependencies:
spring-beans.jar spring-context.jar spring-context-support.jar spring-core.jar spring-web.jar ehcache.jar hibernate3.jar hibernate-annotations.jar hibernate-commons-annotations.jar hibernate-entitymanager.jar Mule jars
This would be a reasonable compromise to keep the number of packages needed for EucalyptusInMainSpec manageable.
Implementation
Packaging, stage 1
- Axiom 1.2.8
- MVEL 1.3.1
Packaging, stage 2
- JUG/ASL 2.0.0
- Jetty 6
- Netty 3.1
- dnsjava
- excalibur-src-r508111-15022007
- geronimo-ejb_3.0_spec-1.0.1
- geronimo-jpa_3.0_spec-1.1.1
Packaging, stage 3
- geronimo-interceptor
- geronimo-jacc
- WSS4J (+OpenSAML?)
- Google Web Toolkit 1.6
- Drools: Requires MVEL. Partial build.
New eucalyptus-javadeps
- Spring
- ehcache
- hibernate and friends
- Mule
Eucalyptus-Javadeps migration
We need to keep the current eucalyptus-javadeps package until Eucalyptus 1.6 hits the archive. The reduced eucalyptus-javadeps package should be ready in PPA, ready to be uploaded at the same time.
Test/Demo Plan
You should be able to build and run Eucalyptus 1.6 with the new archive contents.
Unresolved issues
None.
BoF agenda and discussion
UDS Barcelona session
- Introduction: eucalyptus-javadeps current contents: the good, the bad, the ugly
- Issue #1: Different versions in archive
ECJ JDT Core and SWT-GTK (required by Jetty6 GWT servlet -> GWT)
- AspectJ Weaver
- Multiverse
- Depends on non-free libraries
- Doesn't build from source.
- Issue #2: Partial builds
- Axis2/Rampart (in progress by Axis2 team)
- Drools: build all but problematic module
- Jetty6
- Spring framework (in progress in Debian)
- Mule: do it partially
- Other issues
- Don't need the GWT servlet.
- GWT 1.6: Create a gwt-runtime partial build package
- Action plan
- Get list of expected Eucalyptus 1.6 dependencies ASAP
- Package certain missing dependencies first
- Coordinate with Debian (especially Spring, Jetty6)
RefactorEucalyptusJavadepsSpec (last edited 2009-07-16 09:05:04 by lns-bzn-48f-81-56-218-246)