On 3/2/2016 8:29 AM, Stephen Felts wrote:
Yes, you are correct.  The rt.jar change and the classloading changes have 
caused many of these tools problems.  I should have tried to separate the Jake 
from non-Jake problems.
I've also been entering bugs where possible.  I entered them for gradle, 
jython, eclipselink, and findbugs for tools outside Oracle.

Using upgrade, module, and patch files is clearly Jake as are the need to use 
exports.
Jmockit and Simplestub are I think partly related to Jake but it's hard to tell 
until we figure out the full problem.
Passing information to the Gradle daemon is Jake related (separate from the 
junit problem).

Let's clarify that "Jake problems" arise for two very different reasons:

1. A limitation (usually deliberate, sometimes accidental) in a mechanism of the module system.

2. A policy decision by the JDK team during JDK modularization, implemented via a mechanism of the module system.

Needing to use -XaddExports for JDK modules is due to (2). JEP 260 sets forth the policy of limiting access to non-standard, unstable, and unsupported APIs. The policy could have been set forth at any time in the last twenty years, and been implemented by (say) renaming internal packages in every major JDK release. It "just so happens" that the policy is now implemented via a mechanism of the module system (i.e. not exporting certain packages).

Needing to use -upgrademodulepath and -Xpatch for JDK modules is due to (1). The module system is philosophically opposed to split packages, so attempting to augment packages in JDK modules by placing classes on the classpath doesn't work by design. We are aware that certain packages in the JDK (e.g. javax.annotation) are frequently augmented on the JDK 8 classpath by third party JARs (e.g. jsr305.jar), and that this implies widespread use of -Xpatch on JDK 9 ... this should be addressed by a policy of JDK modularization rather than a change to the module system proper.

Alex

Reply via email to