For my $0.02, I wish more people would split their runtime and compile time 
deps. Too often people add the runtime which pulls in the compile time and the 
user builds against the runtime classes. Part of this problem, imo, comes from 
maven resolving compile transitively. If you depend on it to compile, state it, 
and don't bleed your runtime into mine if it's swappable. I think Sonatype 
would probably agree. 

Sent from my iPhone

On Aug 16, 2011, at 21:15, Shane Bryzak <[email protected]> wrote:

> I think this would over-complicate things.  I've got no problem with telling 
> our users that they must declare a dependency for a module's     API, and a 
> dependency for the IMPL they want to use, if that's what we decide.
> 
> On 17/08/11 13:12, John D. Ament wrote:
>> 
>> What if every module had a bom that was imported, or if this were handled in 
>> the seam-bom?
>> 
>> John
>> 
>> On Aug 16, 2011 11:06 PM, "Dan Allen" <[email protected]> wrote:
>> > On Tue, Aug 16, 2011 at 22:57, Shane Bryzak <[email protected]> wrote:
>> > 
>> >> Of course, but we break that rule. Solder is one example, there's
>> >> multiple utility classes in the implementation that are required to 
>> >> compile
>> >> other modules.
>> >>
>> > 
>> > I consider that a bug (or a work in progress, depending on how you look at
>> > it).
>> > 
>> > 
>> >> Also, by making the implementation runtime-only, the user is forced to
>> >> declare two dependencies for their project, one for the API and one for 
>> >> the
>> >> implementation. If the implementation was compile-scoped, they could just
>> >> declare the implementation dependency and the API would then be pulled in
>> >> automatically. This is the kind of stuff we need to discuss and come to a
>> >> resolution on.
>> >>
>> > 
>> > Again, I don't think one dependency is a holy grail. We are making an
>> > optimization that I don't find necessary. Making an implementation
>> > compile-scoped could be classified as careless programming (by some strict
>> > architects, let's say).
>> > 
>> > If it's setup correctly, depending on seam-faces (the impl) should make it 
>> > a
>> > runtime dep, make the api compile time, make any dependent api compile time
>> > and make any dependency impl runtime. If Maven can't accommodate that, then
>> > it's just a pita (even then, the worse thing that happens is that the user
>> > has two dependencies).
>> > 
>> > -Dan
>> > 
>> > -- 
>> > Dan Allen
>> > Principal Software Engineer, Red Hat | Author of Seam in Action
>> > Registered Linux User #231597
>> > 
>> > http://www.google.com/profiles/dan.j.allen#about
>> > http://mojavelinux.com
>> > http://mojavelinux.com/seaminaction
> 
> _______________________________________________
> seam-dev mailing list
> [email protected]
> https://lists.jboss.org/mailman/listinfo/seam-dev
_______________________________________________
seam-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-dev

Reply via email to