tuscany-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Laws" <simonsl...@googlemail.com>
Subject Re: Release dependency management
Date Fri, 04 Jan 2008 07:27:32 GMT
On Jan 4, 2008 1:08 AM, Jean-Sebastien Delfino <jsdelfino@apache.org> wrote:

> Jean-Sebastien Delfino wrote:
> > Simon Laws wrote:
> >> I'm putting Sebastien's ant file generator into the build. The snag is
> >> that
> >> it builds ant files based on dependencies it finds at the module
> >> level. We
> >> ship a release excluding all but the latest level of dependencies.
> >> Hence the
> >> ant file may be looking for dependencies that we don't ship. My first
> >> port
> >> of call here is to look across the project and see if we can
> >> rationalize our
> >> dependencies so that the modules are looking for the latest version.
> >> Failing
> >> that we will have to have some kind of lookup that maps to the latest
> >> version for each jar. I'm raising it here in the off chance that
> >> someone has
> >> already thought about this and knows a neat solution.
> >>
> >> Regards
> >>
> >> Simon
> >>
> >
> > Happy new year.
> >
> > I can try to help fix the problem, once I understand it. Can you point
> > me to a module and steps to reproduce it?
> >
> > Thanks.
>
> Have looked into it today, and still do not understand what you meant,
> sorry :).
>
> The Ant files are generated from the Maven POM model, which must be
> referring to the correct dependencies otherwise our samples won't build
> correctly with Maven. So I must be missing something...
>
> --
> Jean-Sebastien
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>
> OK, an example of the dependency version problem. I've been going through
the poms trying to get us on single versions of dependencies to remove this
issue. Still some to do when we have the branch ant the dependencies settle
down. Abstract example...

ModuleA
   DependencyA-v1.1
ModuleB
   DependencyX-v3.5 - transitive dependency to - DependencyA-v1.0

When we build the distribution the maven build chooses one version of
DependencyA (I don't what the algorithm is but it doesn't always choose the
latest). When we build ant files for ModuleA and ModuleB they are likely to
refer to their specific dependencies. Maven doesn't know that we are only
going to ship with one version in the binary build. When we use the ant
files from the binary build one will fail as a dependency will be missing.

A specific example...

Look at the calculator-webapp sample. We have a JIRA outstanding (
https://issues.apache.org/jira/browse/TUSCANY-1794) that reports that the
war generated for this sample is a different size depending on whether it's
generated by ant or maven. The ant build.xml file was generated from the
pom.xml in the first place and has all of the correct dependencies however
we don't ship all of those dependencies because other modules rely on other
versions. In this case it is primarily Xerces. It just so happens that this
sample works either way. Probably because the app container already has the
missing dependencies so we get lucky in this case.

If you look at the dependency list (
http://people.apache.org/~slaws/trunk-dependencies.html) everywhere you see
multiple versions on the left hand side this is a potential problem. This
list is out of date as I've been working on it. It's also based on the
trunk. I'll make a new one when I cut the branch today.

My preferred solution here is to fix the dependency versions in the poms.
Feel free to help or suggest an alternative approach. Also be useful to know
how the distribution build chooses which dependency to ship if anyone knows.


Regards

Simon

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message