On 2010-10-16 16:58, James Carman wrote:
> On Sat, Oct 16, 2010 at 10:52 AM, sebb <seb...@gmail.com> wrote:
>>
>> Why? I don't see the point.
>>
> 
> We had this discussion long ago.  Let me try to summarize for you.
> Suppose Project X wants to use commons foo version 2.  Suppose also
> that Project X uses Project Y as a dependency and Project Y uses
> commons foo version 1 ("jar hell").  Now, foo version 1 and 2 are
> binary incompatible.  If we leave them with the same group/artifact
> and with different versions, then Maven will only allow foo version 2
> on the classpath as a dependency because it is the most recent.  So,
> the code in Project Y won't work.  However, if foo version 2 changes
> its artifact id and changes its package name, the code in Project X
> can code against org.apache.commons.foo2 and the code in Project Y can
> code against org.apache.commons.foo and both will stay happy.  Also,
> Maven will allow both on the classpath at the same time since they're
> not the same artifact id.

Thanks for that explanation James. This is a use case that requires a
change in artifactId. It would allow a project to use multiple versions
of a commons library (which are in different Java packages) at the same
time.

> Note: yes I know this problem goes away with OSGi, but not everyone is
> using OSGi, nor should we require them to do so.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 


-- 
Dennis Lundberg

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to