A question ad JDK 9 or: how to make all javax.script engines available to all Java apps in JDK 9?

Alan Bateman Alan.Bateman at oracle.com
Fri Jan 16 15:39:02 UTC 2015


On 12/01/2015 16:09, Rony G. Flatscher wrote:
> :
>
> Now, having learned that JDK 9 will remove the "extension" mechanism, I am very interested in
> learning what alternatives are discussed, planned for Java 9 to enable this particular important
> use-case: making javax.script engines (packaged as jars) available to any Java app!
>
>
Yes, the extension mechanism and specifically the discovery of installed 
optional packages has been removed in JDK 9. In general then we haven't 
seen a lot of usage of this mechanism in a long time (it's problematic 
when upgrading or switching JDKs for example).

For standalone applications then you can put the service provider JARs 
(in this this case a scripting engine) on the class path and it should 
just work the same as if you had copied it into the extensions 
directory. The only difference might be if you are running with a 
security manager then you might have to configure the security policy 
whereas in JDK 8 and older then you might have replied on it getting 
AllPermission (this is something that is also changed in JDK 9, code 
loaded by the extension class loader does not get AllPermission by 
default now).

The applet scenario that you bring up is interesting in that it assumes 
that the users of the applet have copied the scripting engine into their 
ext directory. That is, I think that is what you mean rather than JAR 
packaged applets triggering the download of optional packages. I wonder 
if you've tried creating the applet with JNLP and putting a reference to 
the scripting engine in the resources section?

In any case, once JDK 9 is further along then we expect to have support 
for runtime images that are built by linking a set of module so that 
might be an alternative approach to having a runtime image with the 
scripting engines available.

-Alan


More information about the jigsaw-dev mailing list