All,
Ubuntu are evaluating Java EE servers for inclusion in their "main" distribution. See https://wiki.ubuntu.com/J2EESupport for information. I think it would be cool for Geronimo to be chosen as their Java EE implementation. I'd like to take some time to evaluate the Geronimo problems that they are having, evaluate what (if anything) we can do about these problems, and decide if there's anything that we want to do to address their use case.


First, a little background. As I understand things, Ubuntu "main" is a Debian-style repository that contains artifacts that are supported by Ubuntu. All artifacts within "main" must be built from source. A build of a main artifact cannot be dependent upon an internet connection (any binary dependencies must either be built or already be present in the "main" repository.

The problems that Ubuntu have encountered are:

1) Java SE 6
2) Dependencies


1) OpenJDK 6 seems to be the most stable JSE available in Ubuntu "main", at the moment. Currently our build fails, if you attempt to build Geronimo with a Java 6 JDK. There are some runtime errors, in certain environments/runtimes. IMO, this is a relatively minor issue. We already have Java 6 support identified as a Geronimo 2.2 feature. Fixing the build issue is trivial (Ubuntu have already patched this). Runtime issues are a minor hurdle that we're going to be implementing, anyway.

2) Dependencies are a separate matter, altogether. As you can guess, maven's handling of dependencies causes problems with Ubuntu's philosophy for building main artifacts.

A) The build cannot access external maven repositories. I wonder if it's possible for maven to retrieve artifacts from a Debian repository, rather than from a maven repository. Perhaps some work has already occurred in this area. Anybody know? If not, wondering if we can work with the maven community to help address this issue.

B) A maven build will access multiple, redundant, versions of the same artifact. We control the versions that will be included in our server assemblies. However, we don't really control the build-time dependencies that our build will require. Thus, the transitive dependencies accessed during a build may be much more than will actually be needed/used in the server assemblies. Is there some way we can help limit the number of artifacts which must be available during a build?

There may be other Ubuntu-related issues. Hopefully we can get some participation in this discussion from the Ubuntu community. I'll reach out to them.

--kevan



Reply via email to