It's not too late for access control

Alan Bateman Alan.Bateman at oracle.com
Sat Jul 16 08:02:34 UTC 2016


On 16/07/2016 08:18, Jochen Theodorou wrote:

> :
>
> Just as an example... because the JVM used to have a URLClassloader 
> when starting, it was possible to add classes there at runtime and 
> @Grab was born to make use of that. Now this is no longer possible, 
> @Grab will no longer work on JDK9 in many many cases. Why is that 
> technical debt? There is simply no way to make this work like before 
> anymore.
I realize this is off-topic for the thread but just to say that the JDK 
has never had (aside from the APIs in JVM TI and java.lang.instrument) a 
supported/documented way to do this. You are right that some tools and 
libraries have restored to a bit of hackery, specifically casting the 
system class loader to a URLClassLoader and hacking into its protected 
addURL method but that is making an implementation assumption. We know 
at least some has been to work around command line length limits - 
Gradle comes to mind but then have switched to using @argfile. The more 
general "I want to extend the class path at runtime" is probably 
something that should be discussed (on another thread).

Separately, is @Grab partly to workaround issues with @CS methods? The 
issue with JDBC using @CS methods is one that you brought up on another 
thread and there is work in progress to fix that long standing issue.

-Alan

[1] https://issues.gradle.org/browse/GRADLE-3287


More information about the jigsaw-dev mailing list