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.
It's no longer used as we've switched over to AMQP for RPC calls so
remove it from everywhere and only use it for checkpointing
* Wire up demo bench post Kryo removal
* Test Fixes
* rebase and fix tests
* Test Fix
* wip
* revert changes to api now we don't need to add annotations
* Client and server support for amqp
* Observable (and supporting) serialisers
Unit Tests
* Fixing tests
* Test fixes
* CORDA-847 - Update api doc with additon of @CordaSerializable annotation
* TestFixes
* review comments
* TestFixes
* Test Fix
* Test Fix
* Test Fix
* Test Fix
* Test Fix
* Test Fix
* TestFix
* Test Fix
* Review Comments
* CORDA-1393: Install `onError()` handler for folding action
or else `ErrorNotImplementedAction` will be invoked which is never a good thing
* CORDA-1335: Improve exception handling in `cleanUpOnConnectionLoss()`
* CORDA-1335: Try to trick the logic to pretend we are running in HA mode to have a chance of re-connecting.
* CORDA-1416: Make `NodeMonitorModel` code react to proxy changing.
* CORDA-1416: Workaround `CordaRPCOps.equals()` calls when listener dispatching change.
* CORDA-1416: Increase re-try interval to allow enough time for server to come back online.
* CORDA-1355: Properly close RPC connection we are moving away from.
* CORDA-1355: Unsubscribe on Error to prevent propagation of it downstream.
* CORDA-1355: For downstream subscribers ignore errors properly. Thanka to @exfalso for the hint.
This fixes: Transaction Updates do not flow after re-connect
* CORDA-1355: Bugfix eliminate duplicating items on "Transactions" blotter after re-connect.
* CORDA-1355: Bugfix eliminate double counting on dashboards.
* CORDA-1355: Bugfix eliminate same parties in dropdowns.
* CORDA-1355: Stop using `SecureHash.randomSHA256()` for painting widget icon.
Instead use combined SHA hash such that icon represents the whole population of trades.
That way two transactions blotters can be compared by a single glimpse at corresponding icons.
Also minor refactoring.
* CORDA-1416: Make RPC re-connection faster/more robust.
* CORDA-1416: Properly announce thet Proxy may not be available during re-connect and prevent UI crashing.
* CORDA-1416: Disable UI until RPC proxy is available.
* CORDA-1416: Correct typo.
* CORDA-1416: Unit test fix.
* CORDA-1416: GUI cosmetic changes.
* CORDA-1416: Correct spaces.
* CORDA-1416: Remove un-necessary overrides in CordaRPCOpsWrapper.
* CORDA-1416: Switch from using `doOnError` to installing an error handler upon subscription.
* ENT-1670: update kdocs and unit test for better user experience regarding
RPC connection loss
* RPCStabilityTests: move doOnError logic to onError handler
Prior to this change it was intermittently failing with:
```
net.corda.client.rpc.RPCException: RPC server is not available.
at net.corda.client.rpc.internal.RPCClientProxyHandler.invoke(RPCClientProxyHandler.kt:222)
at com.sun.proxy.$Proxy79.ping(Unknown Source)
at net.corda.client.rpc.RPCStabilityTests$client reconnects to rebooted server$1$pingFuture$1.invoke(RPCStabilityTests.kt:251)
at net.corda.client.rpc.RPCStabilityTests$client reconnects to rebooted server$1$pingFuture$1.invoke(RPCStabilityTests.kt:36)
at net.corda.core.internal.concurrent.ValueOrException$DefaultImpls.capture(CordaFutureImpl.kt:107)
at net.corda.core.internal.concurrent.OpenFuture$DefaultImpls.capture(CordaFutureImpl.kt:65535)
at net.corda.core.internal.concurrent.CordaFutureImpl.capture(CordaFutureImpl.kt:119)
at net.corda.core.internal.concurrent.CordaFutureImplKt$fork$$inlined$also$lambda$1.run(CordaFutureImpl.kt:22)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
```
* Improve error reporting in case of failure of flaky tests
Also eliminate warnings and other minor changes.
* Address code review comments raised by @exFalso
Also improve output for stack traces.
* rework message handling while connection is down: do not send anything, throw on all obs and futures when failure detected
* RPC calls will throw if used during failover; adapted tests
* CORDA-296: added handler for connection failover
print rpc address during node startup
* address PR comments: typo, whitespace, onError observables
* reworked rpc client msg buffering to avoid race conditions when failure happens while the request is being prepared to be sent; added unit test for 8 threads sharing same client sending 1000 requests
* decreased sleep time in rpc test, code cleanup
- 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.
Also for "client/rpc" explicitly specify "jvmTarget" (similar to what "experimental/behave" does) to avoid ambiguity.
Without this change the following compilation error been observed in IntelliJ:
Z:\corda\experimental\behave\src\main\kotlin\net\corda\behave\node\Node.kt
Error:(163, 44) Kotlin: Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option
* Remove sslConfiguration from public constructor of CordaRPCClient
* Address review comments
* Update api-current.txt
* sslConfiguration doesn't need to be a property
Minor tweaks to the invocation context code.
1) Un-deprecate FlowInitiator, move the deprecation to the field. This
eliminates large numbers of warnings and means developers are warned
only once in the place where they obtain one.
2) Add documentation for StateMachineInfo and create a type alias to give
it a better name in an ABI compatible way.
3) Improve markup on InvocationContext
4) Rename field from just "context" to "invocationContext" (Context is vague)
* Align CordaRPCJavaClientTest with Kotlin version of the test ((byte)0 instead of "1".getBytes())
* Refactoring to align with enterprise repo (exceptions).
* Able to send hand coded messages to an Artemis node inbox
Get startup race condition fixed. Start cleanup work.
Fixup after rebase
Remove SASL hack for now
Minor tweaks. Enable AMQP mode manually.
Add configuration control
Slight clean up
Stop timeouts that don't work with AMQP
Rename class
Get TLS constants from :node-api
Primitive integration test
Put back commented line
Session per bridge to alow rollback on remote rejects.
Add more tests and handle multiple IP adddresses
Reduce logging
Fixup after rebase
Add a test to verify the remote end AMQP rejection logic works and does cause message replay.
Allow Artemis to duplicate after session rollback
Reduce number of threads
Move legacy bridge related code over to CoreBridgeManager
Shared threadpool for bridges
Add a test to confirm that no side effects when using a shared thread pool.
Address PR comments and remove dead lines
Rebase and add some comments
Remove a couple of blank lines
Ensure AMQP bridges are used in tests
Fixup after removal of testNodeConfiguration
Add a couple of doc comments
Add a couple of doc comments
Make things internal and use CordaFuture
Address some PR comments
Change comment type
* Use Artemis 2.2 to fix AMQP problems. Add explicit test of legacy core bridges, as marking the factory class private had silently broken them.
* Fix change due to using Artemis 2.2