* Allow MockNetwork to create StartedMockNode from UnstartedMockNode.
* Reimplement by adding a `started` property to UnstartedMockNode.
* Throw IllegalStateException instead of NoSuchElementException.
* Add an isStarted property to UnstartedMockNode.
* Updated interoperability scenarios to use GA Release Candidate
* Removed "with proxy" and updated incorrect reference to OS master.
* Update to resolve Artifactory tools if available (blob-inspector, network-bootstrapper, database-migration)
* Allow passing in of argument to specify one or more scenarios to run.
* Updated to RC03.
* Added Oracle support in Behave framework and included functional test scenarios.
* behave test using snapshot (#970)
* make behave use snapshots from artifactory
* rebase and fix
* address PR issues
* address PR issues
* gradle task for bdd (#989)
* gradle task for bdd (#989)
* fix typo
* Publishing behave-api jar for use by external applications (eg. cordapp-option).
Fixed SIMMM valuation behave scenario test and startup.
* Publishing behave-api jar for use by external applications (eg. cordapp-option).
Fixed SIMMM valuation behave scenario test and startup.
* Various fixes to make BDD working in Teamcity (#1063)
* fix typo
* print docker log
* print docker log
* attempt to fix docker
* attempt to fix docker
* attempt to fix docker
* update to RC04
* disable clean up
* try to find out why the test pick up the wrong jar
* test
* minor fixes
* fix wrong bootstrapping procedure
* remove DISABLE_CLEANUP
* attempt to fix error
* fixes to get postgres working
* enable cleanup
* generate cucumber report
* bump to RC06
* attempt to make cucumber generate http report
* cucumber report
* some minor cleanup
* removed DP3 nodes from scenarios, added oracle and bumped to RC07
* fix licence issue
* fixed bootstrapper placing corda jar
* Update interoperability.feature
* Added missing published artifact.
* Fixed compilation errors raised by stricter compilation flag checking.
* Minor changes following rebase from master and re-testing.
* Updates to reflect last minute naming and versioning changes applied to 3.0 release.
Updated scenarios to use the officially released version of CE 3.0
* Updates following lastest PR review feedback.
* Updates following lastest PR review feedback.
* Align with master (maxMessageSize = mazTransactionSize).
* Fix snapshot version regex matching.
* Set logging level to DEBUG to ensure pattern matches catch log message output which has been downgraded from INFO
* Add all supported interoperable versions.
"app", "rpc", "p2p" and "unknown" have security implications (see isUploaderTrusted method) and thus they are not allowed to be used in the uploader field when importing attachments via the public API.
* Add registerFlowFactory method to public test API
* Return CordaFuture rather than a plain Future
* Rename method
* Improve KDoc
* Hide internal interface with public wrapper
* Modify API current to include ResponderFlowFactory interface
* Take API definition change from generated file
* Note API change in changelog
* InMemoryMessagingNetwork.InMemoryMessaging renamed to MockNodeMessagingService and moved to internal package
* start method added to MockNodeMessagingService which enables AbstractNode to call makeMessagingService in its c'tor
* Removed TopicStringValidator as it's no longer used
* Clean up of TestStartedNode
* Merged InMemoryMessagingTests into InternalMockNetworkTests as it's testing InternalMockNetwork
Or else tests are going to fail on Windows, e.g.:
https://ci-master.corda.r3cev.com/viewLog.html?buildId=103027&tab=buildResultsDiv&buildTypeId=Corda_BuildWindowsTest
```
java.lang.IllegalArgumentException: Illegal character in path at index 95: file:/F:/buildAgent/work/f0cf2ea65c8f73ab/finance/build/libs/corda-finance-4.0-SNAPSHOT.jar/net\corda\finance\contracts\asset\BilateralNetState.class
at java.net.URI.create(URI.java:852)
at net.corda.testing.node.internal.JarEntryInfo$Companion.classFileURL(TestCordappsUtils.kt:209)
at net.corda.testing.node.internal.JarEntryInfo$Companion.access$classFileURL(TestCordappsUtils.kt:199)
at net.corda.testing.node.internal.JarEntryInfo$ClassJarEntryInfo.<init>(TestCordappsUtils.kt:178)
at net.corda.testing.node.internal.TestCordappsUtilsKt.jarEntryInfo(TestCordappsUtils.kt:56)
at net.corda.testing.node.internal.MutableTestCorDapp$Companion.jarEntriesFromClasses(MutableTestCorDapp.kt:42)
...
```
* * First commit for reference input states feature.
* Added docs.
* Added additional test.
* Fixed whitespace.
* Rebased to master.
* Updated Raft and persistent notary implementations.
* Updated changelog.
* Updated topo sort to handle reference states.
* Stubbed out with referenced states flow.
* Added WithReferencedStatesFlow.
* Added Tests for WithReferencedStatesFlow.
* Added ReferenceState type.
* Rebased to latest version of master.
* Added better comments.
* Updated unit test.
* Added comment to explain a little hack.
* Fixed broken contract upgrade RPC test.
* Added minimum platform version check.
* Updated mock network so that notary nodes inherit the platform version set by the network's minimum platform version.
* References states can now only be used when minimum platform version >= 4.
* Created a new file to hold async operations as "WaitForStatesToUpdate" is broadly reusable.
* Refactored WithReferenceStatesFlow
* Updated javadoc for WaitForStatesToUpdate aysnc operation.
* Added network parameters property to InternalMockNetwork.
* Added min platform version capability to mock services.
* Removed erroneous chars from file.
* Made async operation internal and now call it from FlowLogic.
* Moved some transaction checking code around.
* Removed serializable annotation from referenced state and ref.
* Added reference states design doc.
* Added missing KDocs.
* Updated with reference states flow to handle consecutive update races.
* Made platform version info an inheritable thread local.
* Fixed various typos.
* Updated docs.
* Fixed race.
* Removed min platform version checks as API needs more thought.
* Added deprecation to method and supressed warnings.
* Renamed WaitForStatesToUpdate to WaitForStateConsumption.
* Fixed race in WaitForStateConsumption.
* Addressed PR comments and updated comments / KDocs.
* Reverse vault bugfixes.
* * Vault bug fixes.
* * Fixed broken test.
* Moved WaitForStateConsumption to internal package.
* CORDA-1813 fix Postgres db bloat issue
* CORDA-1813 merge fixes
* CORDA-1813 change column type and size to a standard corda type
* CORDA-1813 docs
* CORDA-1813 create custom hibernate type for the checkpoint blob and align with enterprise
* CORDA-1813 Remove max col size
* CORDA-1813 Remove max col size
* CORDA-1813 Fix merge
* CORDA-1813 Remove buggy :serverNameTablePrefix: configuration
Moved start up logic of the various node components out of their c’tors and into “start” methods, which are called from Node.start(). The components themselves are created in the Node’s c’tor with minimal initialisation logic.
Certain things are not immediately available at construction time, which are instead given to the components at start time in an orderly fashion:
* Certs from the node’s key store and trust store
* The network parameters, and thus access to things like maxMessageSize and the contracts whitelist
* A running database - several components were doing database stuff their c’tors
* The node’s NodeInfo, and thus access to things like identities and addresses
The messaging service couldn’t be created in the Node’s c’tor due to initialisation issues with MockNode. This should be fixed in a later commit.
The loading of all node infos in the start method was unnecessary, both for the changePublisher and _loadDBSuccess, and the setting of _registrationFuture was incorrect.
They're prone to cause flaky tests due to the "allocated" ports already being taken by the system when eventually needed. Replaced usages with PortAllocation.Incremental.
Affected unit tests made into integration tests to avoid any issues in the future when unit tests are made to run in parallel.
Byteman is absent for most of the integration tests and long stacktrace is seen in the log
presently that un-necessarily attracts attention and consumes logging space.
* 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.
* 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