* ENT-1967: Enable byteman library
* ENT-1967: Add an integration test to experiment with Byteman.
This needs to be running with: `-Dexperimental.test.enable`
As in: `gradlew -Dexperimental.test.enable integrationTest`
* ENT-1967: Modify Node driver to allow for optional instrumentation and use it in the integration test
* ENT-1967: Rely on port allocation
* ENT-1967: Install the rule that works
* ENT-1967: Trying to introduce counter rule (doesn't work)
* ENT-1967: Install rules that make correct use of countdown and also improve debug logging for Byteman
* ENT-1967: Add assertion to validate that exception is indeed thrown as per rules installed.
* ENT-1967: Less logging and more assertions
* ENT-1967: Replace `fun` with `val`
* ENT-1967: Un-break DriverDSL public API.
* ENT-1967: Minor change
* ENT-1967: Remove Byteman settings from NodeParameters and hide them inside InternalDriverDSL.
* ENT-1967: Introduce node restart scenario
* ENT-1967: Change the place where JVM is terminated and ensure that StdOut and StdErr not lost during restarts.
* ENT-1967: Changes after rebase.
* ENT-1967: Do not use InMemory DB for test that involves Node restart.
* ENT-1967: Minor fixes post merge from `master`.
* ENT-1967: Tighten-up test checks.
* ENT-1967: Enable byteman library
* ENT-1967: Add an integration test to experiment with Byteman.
This needs to be running with: `-Dexperimental.test.enable`
As in: `gradlew -Dexperimental.test.enable integrationTest`
* ENT-1967: Modify Node driver to allow for optional instrumentation and use it in the integration test
* ENT-1967: Rely on port allocation
* ENT-1967: Install the rule that works
* ENT-1967: Trying to introduce counter rule (doesn't work)
* ENT-1967: Install rules that make correct use of countdown and also improve debug logging for Byteman
* ENT-1967: Add assertion to validate that exception is indeed thrown as per rules installed.
* ENT-1967: Less logging and more assertions
* ENT-1967: Replace `fun` with `val`
* ENT-1967: Un-break DriverDSL public API.
* ENT-1967: Minor change
* ENT-1967: Remove Byteman settings from NodeParameters and hide them inside InternalDriverDSL.
* ENT-1967: Change the way how Jars resolved and use `Try` construct.
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.
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..
* ENT-1962: Perform RPC retry in case of RejectedCommandException
(cherry picked from commit 2a7f0dd)
* ENT-1962: Address code-review comments.
(cherry picked from commit 7b4edde)
* Added new 'eventHorizonDays' configuration item.
* Added custom authenticator to provide ARTIFACTORY credentials upon resolving protected internal URL.
* Re-pointed functional test scenarios to point to Enterprise master.
* Enterprise corda network scenarios to use NetworkBootstrapper tool (instead of Doorman/NMS) since decision made by Product Management to split out Doorman/NMS from Enterprise.
* Configuration parameter changed to 'runMigration' since DP3.
* Fixed problem with logger upon startup.
* General improvements and additions to setup and execution scripts (eg. SIMM valuation demo now consists of 3 separate jars)
* Updates to decouple from Network Services.
* Download all JARs from artifactory for a given published distribution.
* Add TODOs for Doorman/NMS rework.
* Addressing TL PR review comments.
* Additional instructions for setting up the environment and running QA tests.
* Fixed repository URL references.
* ENT-1986: Introduce new parameter `scenarioType`
* ENT-1986: Introduce `AbstractScenarioRunner` and refactor all the reusable bit of functionality into this class.
* ENT-1986: Create `LinearStateScenarioRunner` to use `perftestcordapp` flows.
* ENT-1986: More improvements to make Linear scenario runner work.
Since not every output state may be present, e.g. if the whole amount been paid and at source
the state is fully spent, there will not be a trace of an output state at source.
But recipient(target) will always have references of output states in its vault.
Also perform transfer of the full issued amount to eliminate any sort of coin selection issues.
* CORDA-1506: Cherry-pick fix from Corda OS.
* ENT-1396: Add verification logic to ensure that transaction reflected on both sides.
* ENT-1396: First stub on HA re-connect logic.
* ENT-1396: Ensure we re-connect correctly.
* ENT-1396: Improve the robustness of the scenario runner.
* ENT-1396: Perform Vault query in re-tryable fashion.
* ENT-1396: Larger iterations count.
* ENT-1396: Introduce "iterationsCount" as parameter.
* ENT-1396: ReadMe document.
* ENT-1396: Skeleton of HA testing project
* ENT-1396: Tidy-up arguments parsing and introduce ScenarioRunner.
* ENT-1396: More changes for ScenarioRunner.
* ENT-1396: Further changes.
* ENT-1396: Further changes.
* ENT-1396: Improve logging.
* ENT-1396: Add TODO comments to indicate what is going to be done in the future.
node-api now depends on this module and upcoming changes will use this as well rather than having to depend on node-api.
EnumEvolveTests.deserializeWithRename and EnumEvolveTests.multiOperations are temporarily ignored since their test resources can't be regenerated due to bugs.
* Implement removal of stale nodes from network
Add eventHorizon to NetworkParameters structure. Add republishing of
node info on 1 day intervals - it is treated by network map as heartbeat from node indicating if it's alive or not. Add removal of old node infos on network map signing.
* Add copy method to NetworkParameters data class
Add JvmOverloads annotation to the constructor, because it's data class
exposed in API
* Sprinkled new gradle dust to make both IntelliJ and TC (gradle) compilation happy.
* Fix compilation problem once and for all + ignore the RPCProxyWebServiceTest smoke test.
* CORDA-847 - Pass serialization context down serialization call stack
Needed for later work on AMQP RPC where we need to set per-thread
elements on a context. Could use some magic thread local but I'd rather
it was explicit on the stack and thus easier to reason about.
Additionally, now we're passing this around we can make better use of it
in the future
* Test Fix
* Test fixes
* REVIEW COMMENTS / CODE FORMAT
* Fix build issues
* CORDA-1238 - Initial blob inspector tool commit
Note this is WIP and not ready for prime time but it's time it moved off
of a personal branch and into the main code base, especially if I'm
passing the serialization code onto someone else's shoulders
* CORDA-1238 - Move blob inspector into experimental
It was developed locally in tools (as it's a tool), but it's no
where near production ready, so lets just ship it in experimental
for now
* CORDA-1238 - Tidyup and bug fixes