> This upgrades the JLine embedded in the JDK to JLine 4.0.12.
> 
> The upgrade as such was not very difficult, but for historical reasons was 
> done in two steps: I first upgraded to 4.0.9 using a usual process of taking 
> a diff between existing master and the corresponding JLine (3.29.0 in this 
> case), then replacing it with unmodified new version of JLine and re-applying 
> the patch. The I upgraded from 4.0.9 to 4.0.12 by applying just the relevant 
> differences between these two versions.
> 
> Other important notes:
> - I had to manually disable running of infocmp: 
> https://github.com/lahodaj/jdk/blob/1455a3279f9261ca9ee8590172b1e4d1fc5e35ca/src/jdk.internal.le/share/classes/jdk/internal/org/jline/utils/InfoCmp.java#L606
>  ; `jdk.internal.le` will implicitly now fallback on `ansi` if it does not 
> recognize the terminal.
> - when reading a password on a dumb terminal, the new JLine uses a background 
> thread to remove the password from the terminal. To keep tests stable and 
> predictable, I had to add a way to disable this, see: 
> https://github.com/lahodaj/jdk/blob/1455a3279f9261ca9ee8590172b1e4d1fc5e35ca/src/jdk.internal.le/share/classes/jdk/internal/org/jline/reader/impl/LineReaderImpl.java#L95
>  and the usages.
> - the new JLine has some support for graphics on the terminal, but that 
> requires a dependency on `java.desktop`, and we don't have a use for it at 
> this time. And the graphics support is fairly standalone, can be 
> avoided/not-included. So this upgrade is not including this graphics support.
> 
> To potentially help with the review, this is the patch between JLine 3.29.0 
> and master:
> https://cr.openjdk.org/~jlahoda/8381868/jline-patch-3.29.0-2.diff
> 
> this is the patch between JLine 4.0.12 and the code proposed in this PR:
> https://cr.openjdk.org/~jlahoda/8381868/jline-patch-4.0.12.diff
> 
> and this is a meta-diff between these two diffs:
> https://cr.openjdk.org/~jlahoda/8381868/diff-of-diffs-3.29.0-4.0.12.diff
> 
> the meta diff is not straightforward to read, but I went through it, and it 
> seems OK to me.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Jan Lahoda has updated the pull request incrementally with one additional 
commit since the last revision:

  Using \u2500, which matches the upstream character. (#13)

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/30767/files
  - new: https://git.openjdk.org/jdk/pull/30767/files/1455a327..bff38a7d

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=30767&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30767&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/30767.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30767/head:pull/30767

PR: https://git.openjdk.org/jdk/pull/30767

Reply via email to