You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Kevan Miller <ke...@gmail.com> on 2008/08/04 02:06:39 UTC

Ubuntu Main Distribution

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




Re: Ubuntu Main Distribution

Posted by David Blevins <da...@visi.com>.
On Aug 6, 2008, at 8:36 PM, Kevan Miller wrote:

>
> On Aug 4, 2008, at 4:49 PM, Jacek Laskowski wrote:
>
>> On Mon, Aug 4, 2008 at 2:06 AM, Kevan Miller  
>> <ke...@gmail.com> wrote:
>>
>>> 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?
>>
>> Hi Kevan,
>>
>> Dave Blevins worked out a tool to limit the number of necessary deps
>> in OpenEJB. I think it could be used in Geronimo as well.
>
> Hi Jacek,
> Thanks for the pointer. Perhaps David can comment on the possible  
> utility of that tool.

I'm not sure it would help.  The tool simply creates a nested xml  
document representing the dependency graph making it easier to see  
where unwanted dependencies are getting pulled in so that the correct  
maven excludes can be added.  I don't think we have any unwanted  
dependencies, so that might not be useful.

I vaguely recall that some part of it reads in all the byte code for  
the given module and attempts to determine if there are any  
dependencies which aren't used -- at least not directly in code.  That  
might be useful.


-David


Re: Ubuntu Main Distribution

Posted by Kevan Miller <ke...@gmail.com>.
On Aug 4, 2008, at 4:49 PM, Jacek Laskowski wrote:

> On Mon, Aug 4, 2008 at 2:06 AM, Kevan Miller  
> <ke...@gmail.com> wrote:
>
>> 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?
>
> Hi Kevan,
>
> Dave Blevins worked out a tool to limit the number of necessary deps
> in OpenEJB. I think it could be used in Geronimo as well.

Hi Jacek,
Thanks for the pointer. Perhaps David can comment on the possible  
utility of that tool.

>
>
> Is there a way to include all the necessary build sources in a single
> Ubuntu dir in the repo and point m2 to it? m2 could download the deps
> to let us build offline. Don't know whether it makes sense, but
> thought I threw it out to others see what I couldn't.

Will need to get Canonical involved in the discussion to answer what  
they can and cannot do.

--kevan

Re: Ubuntu Main Distribution

Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On Mon, Aug 4, 2008 at 2:06 AM, Kevan Miller <ke...@gmail.com> wrote:

> 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?

Hi Kevan,

Dave Blevins worked out a tool to limit the number of necessary deps
in OpenEJB. I think it could be used in Geronimo as well.

Is there a way to include all the necessary build sources in a single
Ubuntu dir in the repo and point m2 to it? m2 could download the deps
to let us build offline. Don't know whether it makes sense, but
thought I threw it out to others see what I couldn't.

Jacek

-- 
Jacek Laskowski
Notatnik Projektanta Java EE - http://www.JacekLaskowski.pl