On 06/05/2014 09:23 AM, Roman Muntyanu wrote:
>>> Ok, I rephrase my question.
>>> Could you define what you consider a usage of dependency A because of B and 
>>> the opposite?
> 
> I'll dare explaining
> 
> Indirect dependency (no dependency on A should be defined in C):
> C ----> B ----> A
>   * C uses classes from B 
>   * B uses classes from A
>   * C does NOT use classes from A

This will NOT be reported by dependency:analyze, so this shouldn't be
declared as a dependency of C, ever.

> Direct dependency (explicit dependency on A should be defined in C)
> C ----> B ----> A
>  \_ _ _ _ _ _ _^
>   * C uses classes from B 
>   * B uses classes from A
>   * C uses classes from A

This is actually the topic of the discussion. It's not about what B
uses, but what C uses.

Since C uses A, it's obvious that it should declare it as a dependency,
and not assume that B will be there to provide it, unless B is a
"grouping" component, like xwiki-commons-test-components, which is
supposed to bring everything needed for testing components.


Big +1 for declaring all the used dependencies, except for "boilerplate"
ones.

+1 for not declaring the transitive dependencies of standard groups:
testing tools chained to the commons-test-components, component modules
chained to xwiki-commons-component-api

-1 for declaring global dependencies, they're actually hidden inter-pom
dependencies.

-- 
Sergiu Dumitriu
http://purl.org/net/sergiu
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to