On Mon, 16 Nov 2020 12:44:08 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:
>> Currently, to use the javac server, a horrendously long command line option >> is created, looking like this: `--server:portfile=<path to >> portfile>:sjavac=<command to launch server>`, where the sjavac command has >> had all spaces replaced by %20. Since Project Jigsaw, the set of module >> arguments needed is huge to begin with, making this command line >> incomprehensible after mangling. >> >> Apart from making java command lines hard to read (and copy/paste!) by >> developers, it also makes it hard for scripts to parse. The upcoming winenv >> rewrite is dependent on being able to differentiate between path names and >> other arguments, which is not possible in this mess. >> >> So, instead, let's write it to a file, without any escaping, and just pass >> the configuration file name to the server. >> >> Note that this will change the behavior of the javac server, but as the >> source code states this is not a documented or externally supported API no >> CSR is needed. >> >> I also cleaned up some code in SjavacClient, in particular code relating to >> the passing of arguments. (We never change poolsize or keepalive when we >> call it.) > > Magnus Ihse Bursie has updated the pull request incrementally with one > additional commit since the last revision: > > Fix whitespace issues Marked as reviewed by jfranck (Reviewer). src/jdk.compiler/share/classes/com/sun/tools/sjavac/Util.java line 96: > 94: > 95: public static String extractStringOptionLine(String opName, String s, > String deflt) { > 96: return extractStringOptionWithDelimiter(opName, s, deflt, > '\n').strip(); Is '\n' going to be problematic due to differences in line endings on various platforms? ------------- PR: https://git.openjdk.java.net/jdk/pull/1195