RFR 8170162: jshell tool: no mechanism to programmatically launch

Robert Field robert.field at oracle.com
Thu Dec 15 07:31:51 UTC 2016


Feedback on v2 was that the features it had for supporting 
javax.tools.Tool shouldn't be there without that support in-place.
So, v3.  I'm including that support (8170044).

Bugs:

     8170044: jshell tool: jshell missing from javax.tools.ToolProvider
     https://bugs.openjdk.java.net/browse/JDK-8170044

     8170162: jshell tool: no mechanism to programmatically launch
     https://bugs.openjdk.java.net/browse/JDK-8170162

Sub-Tasks (tiny tweaks to other repos):

     8170194: jshell tool (jdk repo): launch tool from JShellToolProvider
     https://bugs.openjdk.java.net/browse/JDK-8170194

     8170195: jshell tool (make): update javadoc generation for jdk.jshell
     https://bugs.openjdk.java.net/browse/JDK-8170195


API:
http://cr.openjdk.java.net/~rfield/8170162v3.jshellAPI/

Webrev:
http://cr.openjdk.java.net/~rfield/8170162v3.webrev/

Specdiff:
http://cr.openjdk.java.net/~rfield/8170162v3.specdiff/overview-summary.html

The changes to the root workspace (in support of javadoc make) are 
unchanged since v1:
http://cr.openjdk.java.net/~rfield/8170195v1.webrev/make/Javadoc.gmk.sdiff.html

The change to the jdk workspace (in support of launching) is unchanged 
from the original v0:
http://cr.openjdk.java.net/~rfield/8170194v0.webrev/make/launcher/Launcher-jdk.jshell.gmk.sdiff.html


Discussion --

Addition of javax.tools.Tool support is straight-forward:

http://cr.openjdk.java.net/~rfield/8170162v3.jshellAPI/jdk.jshell-summary.html

http://cr.openjdk.java.net/~rfield/8170162v3.webrev/src/jdk.jshell/share/classes/module-info.java.sdiff.html
http://cr.openjdk.java.net/~rfield/8170162v3.webrev/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellToolProvider.java.html

New test was most of the work:
http://cr.openjdk.java.net/~rfield/8170162v3.webrev/test/jdk/jshell/ToolProviderTest.java.html
http://cr.openjdk.java.net/~rfield/8170162v3.webrev/test/jdk/jshell/StartOptionTest.java.sdiff.html



Discussion from v2 (amended) --

The simplest of the options below was chosen -- builder() factory on 
JavaShellToolBuilder.  JavaShellToolProvider has been removed.
http://cr.openjdk.java.net/~rfield/8170162v3.jshellAPI/jdk/jshell/tool/package-summary.html

The uses/provides changes to module-info.java have been removed, leaving 
the addition of "exports jdk.jshell.tool", and, to work with the 
merged-in jigsaw, the java.prefs requires is now transitive.

.... now all jshell tool launching is channeled through the builder 
(rather than entering via JShellTool).

Note: specdiff doesn't see the changes to overview.html (removal) and 
module docs

Thanks,
Robert



More information about the kulla-dev mailing list