Feature complete?
Alan Bateman
Alan.Bateman at oracle.com
Tue Dec 1 14:26:45 UTC 2015
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