On Aug 30, 2007, at 6:05 PM, Jeff Genender wrote:

Hi,

I was building a 3rd party application with a dependency on the Geronimo specs (jee)...and I could not get it to build because it was looking for

axis-saaj-1.3-r562247

For the life of me, I thought I had that usual maven corrupt repo issues
and I wiped out my local repo...a number of times.  I began looking
through repos and sure enough it didn't exist. Well..I decided to look
in our pom and I found:

<axis2Version>1.3-r562247</axis2Version>

Further discussion with others resulted in finding that we have a
"special" repository that pulls these special versions. (Ok I forgot
about that).

This is going to be a problem for anyone who has a dependency on our
jars (ie. wanting to use the specs jars for a web applications, etc).
If I (a committer) had to go through this much trouble trying to figure out how to get that dependency...I can't imagine what the standard user
will go through when writing a web or webservices application.

The point I am making here is if we are going to have special versions
of jars, we need to make these more readily available.

I see your point. And agree that it's a general problem. Vamsi was having this same general problem with the Tuscany plugin, recently.

I'm surprised that you get to this through a geronimo spec, though. I wouldn't have predicted that. In fact, it seems wrong... What's the chain from specs to geronimo?

That said, we'd definitely have a problem with any 2.0.1 server artifact...


Here are some options I thought of:

A) Place the special jars in central so they are automatically available to others. (Easiest approach for the user - but we are going to have to convince other projects to put them out into their locations - that may
prove difficult).

Agreed that it's best for the user, but I think it's next to impossible. I think we'd accept artifacts from other projects and place them in our space...


B) Heavily, heavily document how to get around this problem by adding
our repo to their pom.  This should be easily Googled and placed in a
FAQ, because I would hazard to guess this will be a frequent question.
(probably the easiest approach for us, but this needs to be a short term
solution - and its still a PITA for our users).

Probably have to do that for 2.0.1 resources regardless.


C) Convince the other projects to get their releases in order and get
good versions of their product on central. (Should do this regardless of
any other option).

I think we've done that and are doing that. Axis2, JPA, etc have shipped, etc. So G 2.0.2 would be better than 2.0.1 in this regard. However, I think we'll always have a tension between getting a release out and getting all of our dependencies to line up. For a major release like a 2.0, I think it's highly unlikely that we'll get all dependencies to a "released" level...


D) Rename our special versions to g-axis-saaj-1.3-r562247 and house
those under our own control (org.apache.geronimo...) in central on our
next build (2.0.2). (The easy and quick, and very temprary fix!)

This is probably my favored option. I guess another option would be not to declare these artifacts as maven dependencies. It's not like they have poms, etc. However, would present their own set of issues. Definitely beyond my maven capabilities...

--kevan


Reply via email to