* ENT-2168: Add a shell command to check for an existing transaction
When a double-spend occurs the notary returns the hash of the consuming
transaction id. I've added a 'hash-lookup' shell command that matches
any recorded transactions on the node against this id hash to determine
whether the state has been consumed by this node (that could happen in certain race conditions).
* Basic alias and autocomplete installation for bash in network bootstrapper
* Address review comments
* Update completion file if out of date
* Refactoring
* Some more minor tweaks
* Use manifest revision rather than recalculating hash
* Add zsh autocomplete compatibility
* Actually write .zshrc file
* Fix some descriptions
* Only rewrite settings files if changes have been made, and make a backup if so. Some refactoring
* CORDA-1743: Remove `isDebug = true` from Node driver to speed-up integration tests execution.
* CORDA-1743: Undo removal of "isDebug = true" from the test that specifically checks for this condition.
* CORDA-1743: Address input from @shamsasari
* Make Node Explorer release its RPC connection on shutdown.
* Declare Explorer's login() function as tail-recursive.
* Replace lateinit rpcConnection with oridinary var.
* Notify the node when closing an RPC connection gracefully.
* Specify notary in CashIssueAndPaymentFlow
* Specify notary in PaymentRequest
* Address comments
* Default to the first notary in the `CashPaymentFlow`
This requires the class carpenter to be able to run in a "lenient" mode where it permits synthesised classes to implement interfaces with unimplemented methods.
The list of CorDapps jars is no longer passed in via the cmd line but is now expected to be placed in the bootstrapped directory.
Ended up being a bit of a refactor to cater for unit testing, and also tidied up the bootstrapper docs.
* Introduce new h2Settings config block which overrides h2Port
* H2 server listens on localhost by default
* Change is backward compatible and old h2Port option can still be used but that always listens on localhost now
* Update changelog and docs with H2 changes
As reported in [CORDA-1609](https://r3-cev.atlassian.net/browse/CORDA-1609),
`CordaRPCClientConfiguration.default` is not accessible from Java since
`default` is a reserved keyword.
As part of the refactor made in #2831, `CordaRPCClientConfiguration` went
from being a data class to an interface with a backing implementation of
type `CordaRPCClientConfigurationImpl`.
This resulted in Java users having to rewrite code that was on the form:
```java
final CordaRPCClient client = new CordaRPCClient(
nodeAddress, CordaRPCClientConfiguration.DEFAULT
);
```
to something like this:
```java
final CordaRPCClient client = new CordaRPCClient(
nodeAddress, CordaRPCClientConfiguration.Companion.default()
);
```
However, this does not work. The user would get a compilation error because
`default` is a reserved keyword in Java.
Since `CordaRPCClientConfiguration` has been made an interface, there is no
easy way of introducing a static final field on the interface from Kotlin.
Consequently, I've changed this back to using a `class` with a static field
named `DEFAULT` instead of the static method `default()`.
It should be noted that `default()` / `DEFAULT` is currently only used
internally to pass in default values in `CordaRPCClient.kt` and
`CordaRPCClientUtils.kt`. That said, it is exposed as part of our API
surface and consequently shouldn't be broken.
The latter means that in the above example, the user would actually not
have to provide the parameter at all:
```java
final CordaRPCClient client = new CordaRPCClient(nodeAddress);
```
As can be seen from the definition of `CordaRPCClient`:
```kotlin
class CordaRPCClient private constructor(...) {
@JvmOverloads
constructor(
hostAndPort: NetworkHostAndPort,
configuration: CordaRPCClientConfiguration = CordaRPCClientConfiguration.DEFAULT
) : this(hostAndPort, configuration, null)
```
The mentioned [refactor](7a077e76f0 (diff-0948c125db93a22263eb81eaf3161c17R65))
did not make it into the 3.1 release, so from an API-stability perspective,
this change can be applied without affecting our commitment to a
backwards compatible API..
* add experimental bootstrapper
(cherry picked from commit 63665d1)
refactor code to be less Azure Specific
Use node classes for notaries
add local docker backend
move to tools directoy
apply fixes for local docker RPC admin port
add extraParams field to context to allow dynamic backend selection
begin refactor to move all common node/notary functionality into single implementations
node and notaries now share the same code path as much as possible.
refactor network building logic into api class
port Main.kt to use new networkbuilder api
add gui
fix issues with local docker ports not being exposed on localhost
make push and instantiate async operations
add ability to "add" a node after network has been built to gui
tidy up backend selection via command line and GUI
allow region selection for AZURE instantiations
remove old network map based node.conf and network map dockerfile
tidy up constructors of the various node stage objects
tidy up artefact name
add network-name selection dialog
* print out help
* exclude transitive dep onto log4j to suppress error print out
* windows fixes for local docker
* fixes to allow "devs.XXXX" resource groups in line with the new devops policy of having named resourceGroups
* add extra logging around constructing azure backend
* Added missing plugin to enable publishing of artifact to Artifactory.
* Remove references to experimental blobinspector
* Remove disableDefaultJar for default jar.
* Add additional artifacts to be published.