On Thu, 12 Nov 2020 22:13:37 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.)

This pull request has now been integrated.

Changeset: 9e4944f7
Author:    Magnus Ihse Bursie <i...@openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/9e4944f7
Stats:     136 lines in 3 files changed: 59 ins; 40 del; 37 mod

8256308: Send arguments to javac server in a config file

Reviewed-by: erikj, jfranck

-------------

PR: https://git.openjdk.java.net/jdk/pull/1195

Reply via email to