RFR: JDK-8080679: Include jline in JDK for Java and JavaScript REPLs

Jan Lahoda jan.lahoda at oracle.com
Tue Jul 7 09:50:15 UTC 2015

Hi Ståle,

When we were looking for editing libraries, JLine 2 looked best. 
Unfortunately, we did not find Aesh.

At this stage, I think we should proceed with JLine (so the dependent 
work can continue). Note that it is intended to be JDK internal-only, so 
there's a possibility to change to a different library later.

Thanks for your pointers,

On 5.7.2015 01:27, Ståle W Pedersen wrote:
> hi, sorry, im a bit late to this discussion, i wasnt aware of any
> interest for adding jline2 to the jdk until late this week.
> im working on a project called æsh/aesh: https://github.com/aeshell/aesh
> its another java console project derived from jline/jline2. it started
> as an extension/fork of jline2 and evolved into a separate project.
> im not quite sure what the reason behind choosing jline2 for the jdk,
> but i just wanted to give some info on æsh and what it does compared to
> jline2.
> æsh has all the same functionalities as jline2 and has a number of
> additional features:
> - history (search, persistence)
> - undo/redo
> - paste buffer
> - redirect/pipeline
> - alias
> +++
> jline2 has several bugs regarding input that is resolved in æsh.
> one of the bigger differences between jline2 and æsh is that æsh isnt
> locking in the same way as jline2, but rather has a callback when input
> is given. this give better flexibility for the user when creating
> commands.
> perhaps the biggest difference is that æsh provides two apis for the
> developer. one is more low-level and similar to jline2:
> https://gist.github.com/stalep/cea6fbfee1de2b1ac6e4
> plus a high level api that æsh provides for the developer to create
> commands. https://gist.github.com/stalep/98103347df1dd9b67fd1
> in this example we create a ls command that will automatically complete
> filenames/directories and inject the values into the list field. this it
> just a very simple example, the api supports
> converters/completers/activators/renders/+++
> we added this api because we noticed that the developers needed to
> write a lot of code to parse user input. with this api they can
> focus on creating commands and not parse for input data.
> if there is any interest in using æsh in the jdk we would do whatever we
> can to help you integrate it. æsh has evolved fairly
> quickly and tries to resolve any bugs/issues as quickly as possible. it
> is also supported by red hat so we can promise that this project will
> not be abandoned any time soon.
> regards, ståle

More information about the core-libs-dev mailing list