Implied readability + layers

Alex Buckley alex.buckley at
Fri Nov 6 00:39:47 UTC 2015

On 11/5/2015 2:02 PM, Ali Ebrahimi wrote:
> Hi,
> On Thu, Nov 5, 2015 at 10:14 PM, Alex Buckley <alex.buckley at
> <mailto:alex.buckley at>> wrote:
>     On 11/5/2015 1:30 AM, Ali Ebrahimi wrote:
>         Hi alan,
>         So far quite disappointing!
>         But I think Alex's last response on this topic says opposite of
>         this:
>         "We'll have to think about the implication of com.baz in layer1
>         sometimes
>         offering a 'requires public' on in layer1, and sometimes
>         offering a
>         'requires public' on in layer2, depending on who is
>         reading com.baz
>         in layer1."
>     Alan and I have discussed this. It's not possible for com.baz in
>     layer1 to "switch" which it depends on.
> I never said we do version switch for in com.baz in layer1
> depend on its consumer module.
> I just say we use at 1 for layer1's modules and at 2 for
> layer2's modules. in layer2 requires com.baz in layer1, right? Yes.

com.baz in layer1 uses types from in layer1, and NOT from in layer2, right? Yes.

Therefore, uses types from in layer1 (as required by 
com.baz in layer1), right? Yes.

I don't know what it means to say "we use at 2 for layer2's 
modules". is in layer2, and you can make it read at 2 via 
reflection, but otherwise at 2 is not read by because 
com.baz doesn't know about it.

> You may say it is possible (not always) at 1 passed to layer2 and
> we what we can do.
> This is simple: Or transfer to layer1 or refactor that to 2
> module com.foobaz and com.foobar2 and transfer com.foobaz to layer1.

I can't follow the "simple" solution, sorry.


More information about the jigsaw-dev mailing list