CLI - Aesh 1.0 integration and patch command rewrite

Version 3

    Aesh 1.0 integration and patch command rewrite

     

    Analysis

    Summary

    In order to modernize the way to develop CLI commands, CLI needs to support commands developed with aesh 1.0 API. Aesh has been recently re-architectured to expose a Command Runtime that we can integrate in CLI.

    The first immediate benefit of this integration is the ability to load aesh based commands exposed by extensions.

    Requirements

    Ability to discover aesh commands inside extensions, in a way that is identical to legacy way. The patch command will be re-implemented with aesh 1.0 in order to validate the feature and take benefit of more flexibility with argument completer and fix WFCORE-1840. A new option 'exclude-aged-out' will be added to fix WFCORE-3167.

    Patch command will be 100% compatible and no changes (both in term of behavior and exposed commands) are expected.

    Design Notes

    This feature is the first step to evolve CLI to rely on aesh Command API.

    The new CLI architecture is described in this document: https://docs.google.com/a/redhat.com/document/d/1UkrAdVsACYYTJtiu2DMgNTNbOd5cW3wmvyN5kFrVUBQ

    General

    Product Issue(s)

    https://issues.jboss.org/browse/EAP7-738

    Upstream Issue(s)

    https://issues.jboss.org/browse/WFCORE-2088

    https://issues.jboss.org/browse/WFCORE-1840

    Developer Contacts

    Jean-François Denise (jdenise@redhat.com)