We parse command line arguments twice, once in `CordaCaplet.java`
to determine the config file and base directory, and then again
in NodeArgsParser. NodeArgsParser accepts long options with a
single hyphen, while CordaCaplet did not. This changes
CordaCaplet to accept `--config-file` as well as `-config-file`,
same for base-dir.
- Existing embedded Shell connects via RPC including checking RPC user credentials (before was a direct use of CordaRPCOps): in dev mode when console terminal is enabled, node created `shell` user.
- New Standalone Shell app with the same functionalities as Shell: connects to a node via RPC Client, can use SSL and run SSH server.
* Cordapps now contain all explicitly specified dependencies (and sub
dependencies).
* Removed some useless compile dependencies for trader demo.
* Dependent Cordapps are excluded from the build.
:Removed unnecessary dependencies of demos.
* Cleaned up exclusion rules for cordapp dependencies.
This eliminates JIT java compilation and the consequent need for
tools.jar (which doesn't get shipped in DemoBench). It also makes
development more pleasant by avoiding weird IDE integration issues
that came from having java-in-resources.
The shell is embedded in the node and offers the ability to monitor
and control the node via the launching terminal.
Still to do:
* Switch to a fork of CRaSH that we can maintain ourselves, and merge in Marek's SSH patch so we can enable SSH access.
* Add persistent command history that survives restarts.
* Tab completion for the 'flow' and 'run' commands.
* Remove the 'jul' command and replace it with a command that lets you see and tail the log4j logs instead.
* Fix or remove the other crash commands that have bitrotted since 2015.