[jsr294-modularity-eg] Proposal: extending module private access

Bryan Atsatt bryan.atsatt at oracle.com
Fri Mar 20 15:55:12 EDT 2009



Bryan Atsatt wrote:
> (Sorry, I need to fix my address book; this is the second time I've 
> made that same mistake.)
>
> Alex Buckley wrote:
>> (Somehow discussion moved to the private EG list, which doesn't seem 
>> necessary, so I'm moving it back to the mirrored list.)
>>
>> Bryan Atsatt wrote:
>>> For Monday, can we (pretty-please :^) step back from the solution 
>>> discussion(s) and see if we can agree on some variant of these 
>>> requirements?
>>
>> Yes.
>>
>> As you stated earlier, we want multiple modules to cooperate using 
>> types that are not available to "outsiders".
>>
>> Do we agree that "not available" means "not accessible", i.e. the 
>> JVM's accessibility rules distinguish between a member of a module 
>> and a non-member of a module ? I believe we do.
I certainly think we should start with that, and only fall back to "not 
visible" if we can't find a reasonable solution.
>>
>> When we think in terms of accessibility, the rule can be simple: 
>> "Access to a module-private type/member succeeds if the requesting 
>> type has the same runtime module as the requested type/member." A 
>> class's runtime module is the Module object passed to defineClass, 
>> and possibly more.
Yes, this was my earlier point, where we can consider some wiggle room 
in the definition of "same" in "same runtime module".
>>
>> May I then summarize requirements in terms of runtime modules?
>>
>> BJ:
>> - It must be possible for member types of a runtime module to be 
>> defined by different classloaders.
>>
>> Bryan:
>> - Member types of a runtime module must be visible to one another 
>> without configuration.
>> - It must be possible for two or more runtime modules to share types 
>> privately.
>>
>> Alex
>>
>>> Michal Cierniak wrote:
>>>> On Mon, Mar 9, 2009 at 3:54 PM, Bryan Atsatt 
>>>> <bryan.atsatt at oracle.com> wrote:
>>>>  
>>>>>    14. Member types must be visible to one another without 
>>>>> configuration.
>>>>>    15. It must be possible for two or more modules to share types 
>>>>> privately.
>>>>>     
>>>>
>>>> I think that unless we discover unexpected consequences of those two
>>>> requirements, they both sound very reasonable.
>>>>
>>>> Michal
>>>>
>>>>
>> _______________________________________________
>> jsr294-modularity-eg mailing list
>> jsr294-modularity-eg at cs.oswego.edu
>> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
>>
> _______________________________________________
> jsr294-modularity-eg mailing list
> jsr294-modularity-eg at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
>
_______________________________________________
jsr294-modularity-eg mailing list
jsr294-modularity-eg at cs.oswego.edu
http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg


More information about the jsr294-modularity-observer mailing list