On 28/07/2016 16:44, Paul Benedict wrote:

Here is an example use case. Please confirm my understanding. I'd like to
know if transitive dependencies go one module deep or go all the way
through.

1) A@1.0 is published

module A {  // exports all packages }

2a) A@1.1 gets split into B@1.0 and C@1.0
2b) A@1.1 uses "requires public" to mimic its previously unsplit self

module A {
     requires public static B;
     requires public static C;
}
module B {  // exports all packages }
module C {  // exports all packages }

3a) B@1.1 gets split into X@1.0 and Y@1.0
3c) B@1.1 uses "requires public" to mimic its previously unsplit self

Assuming one level deep...
module A {
     requires public static B;
     requires public static C;
}
module B {
     requires public static X;
     requires public static Y;
}
module C {  // exports all packages }
module X {  // exports all packages }
module Y {  // exports all packages }

Will this chain of configuration allow consumers of A to notice no
difference?

That's right, the users of A will not notice. I assume in the above that "exports all packages" in B, C, X and Y means all the packages in their split.

-Alan

Reply via email to