Feature complete?

Vitaly Davidovich vitalyd at gmail.com
Tue Dec 1 14:42:20 UTC 2015


What's the reason a new java/bytecode access modifier to indicate
module-private wasn't implemented? I agree that public not being really
public is a big wart.

sent from my phone
On Dec 1, 2015 9:27 AM, "Alan Bateman" <Alan.Bateman at oracle.com> wrote:

> On 01/12/2015 13:54, Stephen Colebourne wrote:
>> :
>> The JavaOne talks specifically mention the need for code changes for
>> reflection code (adding readability IIRC). And I know there will be
>> lots of psuedo code that says:
>> if (!member.isPublic) {
>>    member = member.setAccessible(true)
>> }
>> which is also likely to have problems, because public no longer has
>> exactly the same meaning as today.
>> The J1 slides on adding read edges was in the context of migration to an
> explicit module. We used the Jackson JSON data-binding API as an example as
> it's a small enough example to demonstrate a library that attempts to
> access or instantiate a type in the consumer module that it doesn't read.
> So a migration topic and not meant to give the impression that all
> libraries on the class path using core reflection would break.
> "public does not guarantee accessible" will of course be a surprise at
> first. In terms of compatibility then it becomes an issue when an existing
> library on the class path (that doesn't know anything about modules) get a
> reference to a type in a non-exported package of an explicit module. It's
> the first item in the Risks and Assumptions section of JEP 261 but I think
> we'll need to see how people get on mixing the class path and modules to
> understand the impact. I hope in time that there will be a good migration
> guide to modules and I've no doubt that this will be one of the topics that
> it will need to cover.
> -Alan.

More information about the jigsaw-dev mailing list