On Mon, 16 Nov 2020 12:44:08 GMT, Magnus Ihse Bursie <[email protected]> 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