Commit Graph

237 Commits

Author SHA1 Message Date
89ecfb96c5 Merge remote-tracking branch 'remotes/open/master' into merges/march-29-13-11 2018-03-29 13:12:00 +01:00
0d1d7daedc [CORDA-1264]: Ensure correct serialisation and masking for throwables raised by a node and propagated through RPC. (#2892) 2018-03-29 13:01:41 +01:00
7dbceaadcb Merge remote-tracking branch 'open/master'
# Conflicts:
#	node/src/main/kotlin/net/corda/node/services/events/NodeSchedulerService.kt
#	node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt
2018-03-26 15:46:26 +01:00
47c7be62c0 ENT-1670: update kdocs and unit test for better user experience (#2875)
* ENT-1670: update kdocs and unit test for better user experience regarding
RPC connection loss

* RPCStabilityTests: move doOnError logic to onError handler
2018-03-26 14:27:35 +01:00
aaa9e8c83f Merge remote-tracking branch 'open/master' into bogdan-merge-20-03-18
# Conflicts:
#	docs/source/changelog.rst
2018-03-20 16:54:56 +00:00
ac9cb59a6e Fix RPC flaky test (#2849)
* fix rpc reconnect flaky test; remove obsolete rpcproxy log message

* rpc client proxy: replace lock with atomic variable

* rpc client proxy: removed volatile property

* RPCStabilityTests: used eventually() method to test async response

* RPCStabilityTests: remove unused import
2018-03-20 16:23:29 +00:00
8a561cddbf Merge remote-tracking branch 'remotes/open/master' into merges/march-19-14-41
# Conflicts:
#	client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt
#	node/src/integration-test/kotlin/net/corda/node/modes/draining/P2PFlowsDrainingModeTest.kt
#	node/src/main/java/CordaCaplet.java
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt
2018-03-19 15:17:49 +00:00
7a077e76f0 CORDA-1099: Orchestrated clean shutdown from Shell (#2831) 2018-03-19 14:20:10 +00:00
c964e50696 Trying to improve stability of RPCStabilityTests.client reconnects to rebooted server (#2842)
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)
```
2018-03-19 13:19:40 +00:00
c4dc8accde Merge remote-tracking branch 'remotes/opensource/master' into merges/1 2018-03-16 17:52:01 +00:00
a2d65f1a6b Improve error reporting in case of failure of flaky tests (#2828)
* 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.
2018-03-16 10:55:48 +00:00
0a0c8538c4 Merge from Corda/OS 2018-03-14 17:24:47 +00:00
a24a2105b1 CORDA-1217 Replace Guava caches with Caffeine (#2818) 2018-03-14 16:07:31 +00:00
0b12c5f602 Merge remote-tracking branch 'open/master' into bogdan-merge-14 2018-03-14 15:01:27 +00:00
3502186572 Bogdan - small rework of RPC client sending (#2812)
* 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
2018-03-14 11:45:18 +00:00
f31afd1520 Merge remote-tracking branch 'remotes/open/master' into merges/march-13-14-55
# Conflicts:
#	build.gradle
#	docs/source/_static/versions
#	docs/source/running-a-node.rst
2018-03-13 15:02:58 +00:00
721728c8ab Terminate observables on RPC connection failures (#2770) 2018-03-13 10:01:44 +00:00
b86071c5c5 ENT-1566 Fixes for db integration tests + ENT-1575 db migrations for db attachment changes (#521)
ENT-1575 Add db migrations for db attachment changes,

ENT-1566 Fixes for db integration tests -following changes in CORDA-926 (obligatory node properties), upgrade db schema setup in draining mode/RPC tests, set runMigration=true in properties files for db tests, add new tables for deletion in SQL setup scrips
Updated db integration tests description in testing.rst
2018-03-09 09:52:44 +00:00
fd9098e7e2 Merge remote-tracking branch 'open/master' into bogdan-merge-08032018 2018-03-08 08:45:15 +00:00
98a6c71480 CORDA-296: added handler for connection failover (#2639)
* 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
2018-03-08 08:21:35 +00:00
3733e7d715 Merge remote-tracking branch 'remotes/open/master' into merges/CORDA-792
# Conflicts:
#	.idea/compiler.xml
#	build.gradle
#	node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcSslTest.kt
#	node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt
#	node/src/main/kotlin/net/corda/node/shell/CordaAuthenticationPlugin.kt
#	node/src/main/kotlin/net/corda/node/shell/CordaSSHAuthInfo.kt
#	node/src/main/kotlin/net/corda/node/shell/RPCOpsWithContext.kt
#	node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt
#	settings.gradle
#	testing/test-common/src/main/kotlin/net/corda/testing/common/internal/UnsafeCertificatesFactory.kt
#	tools/shell/src/integration-test/kotlin/net/corda/tools/shell/SSHServerTest.kt
#	tools/shell/src/main/java/net/corda/tools/shell/FlowShellCommand.java
#	tools/shell/src/main/java/net/corda/tools/shell/RunShellCommand.java
#	tools/shell/src/main/java/net/corda/tools/shell/StartShellCommand.java
#	tools/shell/src/main/kotlin/net/corda/tools/shell/FlowWatchPrintingSubscriber.kt
#	tools/shell/src/main/kotlin/net/corda/tools/shell/InteractiveShell.kt
#	tools/shell/src/main/kotlin/net/corda/tools/shell/InteractiveShellCommand.kt
#	tools/shell/src/main/kotlin/net/corda/tools/shell/utlities/ANSIProgressRenderer.kt
#	tools/shell/src/main/resources/net/corda/tools/shell/base/login.groovy
#	tools/shell/src/test/kotlin/net/corda/tools/shell/CustomTypeJsonParsingTests.kt
#	tools/shell/src/test/kotlin/net/corda/tools/shell/InteractiveShellTest.kt
2018-03-07 16:49:00 +00:00
72074c76c7 [CORDA-792] Standalone Shell (#2663)
- 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.
2018-03-07 09:57:32 +00:00
da1afd9c55 Introduced copyright in all source files. (#519) 2018-03-06 17:29:21 +00:00
98a4fe1ce3 Merge remote-tracking branch 'open/master' into merge/tudor_network_bootstrap
# Conflicts:
#	node/src/integration-test/kotlin/net/corda/node/amqp/AMQPBridgeTest.kt
2018-03-06 11:37:30 +00:00
596edcc2ae Merge commit '29ccd4d' into os-merge-050318 2018-03-05 23:21:35 +00:00
d116b5e9f4 CORDA-1140 - FOR RPC Client P2P context use AMQP (#2716)
* CORDA-1140 - FOR RPC Client P2P context use AMQP

* Review comments

* Review comments

* review comments

* review comments
2018-03-05 18:05:32 +00:00
1caca44076 Fixed smoke tests after config parsing changes [CORDA-926] 2018-03-05 15:32:05 +00:00
c72b3ad4fa Merge remote-tracking branch 'open/master' into anthony-os-merge-2
# Conflicts:
#	.ci/api-current.txt
#	client/jfx/src/integration-test/kotlin/net/corda/client/jfx/NodeMonitorModelTest.kt
#	client/rpc/src/integration-test/kotlin/net/corda/client/rpc/FlowsExecutionModeRpcTest.kt
#	docs/source/example-code/src/integration-test/kotlin/net/corda/docs/IntegrationTestingTutorial.kt
#	docs/source/example-code/src/main/kotlin/net/corda/docs/tutorial/mocknetwork/TutorialMockNetwork.kt
#	finance/src/test/kotlin/net/corda/finance/flows/CashPaymentFlowTests.kt
#	node/src/integration-test/kotlin/net/corda/node/CordappScanningDriverTest.kt
#	node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/NetworkMapTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcSslTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/statemachine/FlowVersioningTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/statemachine/LargeTransactionsTest.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/MQSecurityTest.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt
#	node/src/integration-test/kotlin/net/corda/test/node/NodeStatePersistenceTests.kt
#	node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt
#	node/src/test/kotlin/net/corda/node/modes/draining/ScheduledFlowsDrainingModeTest.kt
#	node/src/test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTest.kt
#	node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt
#	node/src/test/kotlin/net/corda/node/services/transactions/MaxTransactionSizeTests.kt
#	samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/InMemoryMessagingNetwork.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/NodeBasedTest.kt
#	verifier/src/integration-test/kotlin/net/corda/verifier/VerifierTests.kt
2018-02-28 16:55:15 +00:00
577033441a [CORDA-1035] Testing api KDoc Updates (#2584)
* Testing api KDoc Updates

* Update after code review

* Update api-current

* Revert changes to compiler.xml

* Made comment changes from review

* Fixing merge conflict

* Don't expose net.corda.node through test API (first pass)

* Fixing merge conflicts

* Update api-current

* Addressing review commits

* Fix exposure of internal implementation of MessageHandlerRegistration

* Make InProcess expose ServiceHub instead of internal StartedNodeServices

* Move InternalMockMessaginService interface to internal namespace

* Move MOCK_VERSION_INFO to internal namespace to avoid exposing VersionInfo

* Don't expose WritableTransactionStorage via testing api

* Create public VerifierType enum

* Update api-current and modify check-api-changes to check for net.corda.node exposures

* Fix merge conflicts

* Fixing another merge conflict

* Fix accidentally broken unit tests

* Make getInternalServices a property

* Fix failing unit tests

* Add todo to check-api-changes

* Fix rpc sender thread busy looping

* Fix tests

* Fixing tests

* Address mike's comments

* Fixing tests

* Make random port allocation internal

* Update api
2018-02-28 13:26:49 +00:00
191f412aba Fixed flows draining mode after regression introduced by OS -> ENT merge (#474) 2018-02-23 15:19:37 +00:00
6a2217ace6 Merge remote-tracking branch 'open/master' into aslemmer-merge-19-Feb 2018-02-21 18:10:37 +00:00
25263c20c7 Merge remote-tracking branch 'open/master' into aslemmer-merge-19-Feb 2018-02-20 15:52:09 +00:00
18f81ba973 Eliminate references to Java target "1.6"
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
2018-02-20 14:05:55 +00:00
d28c781597 Missing diff from merge 2018-02-20 13:54:11 +00:00
38d0ad30df Merge commit 'da591363fdccd220455a92f083d2ad59ed0e2d12' into aslemmer-merge-19-Feb 2018-02-20 13:52:03 +00:00
6b2b7b6a3c Merge commit 'fa4b5d16ba6249f85b50851c2f52dc697eebdee6' into aslemmer-merge-19-Feb 2018-02-20 13:26:31 +00:00
dc268ebe63 Merge pull request #2477 from corda/aslemmer-corda/issues/2300
Add RPC deduplication to client and server
2018-02-19 16:25:36 +00:00
1d7b0fc499 Merge commit '86fb1ed852c69121f989c9eeea92cfb4c27f9d13' into aslemmer-merge-19-Feb 2018-02-19 16:14:43 +00:00
7f1bfac8b0 Write better test for dupes 2018-02-19 14:53:28 +00:00
117f4a721e CORDA-939 Remove sslConfiguration from public constructor of CordaRPCClient (#2522)
* Remove sslConfiguration from public constructor of CordaRPCClient

* Address review comments

* Update api-current.txt

* sslConfiguration doesn't need to be a property
2018-02-13 21:39:31 +00:00
7924a5a834 Add RPC deduplication to client and server 2018-02-13 18:51:59 +00:00
b91dd43a83 Test driver default parameters removal (#2519)
* Removed long parameter list in test driver, replaced with DriverParameters object
2018-02-13 13:15:05 +00:00
da591363fd CORDA-990: Flows Draining Mode (#2483)
[CORDA-990]: Flows draining mode.
2018-02-12 16:13:43 +00:00
1902a4f11e CORDA-973 Refactoring for serialization compression support (#2466)
* Use constant for empty byte array
* Less byte array copying
* Fix InputStreamSerializer trailing garbage
* More OO kryo streams
* Introduce SerializationMagic
* Introduce non-copying slice on ByteSequence
2018-02-09 11:54:07 +00:00
82ece34ac8 Tweak the way invocation context is integrated to reduce the pain for devs using the old API (#2447)
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)
2018-02-02 17:09:08 +01:00
b71f0c49fb Multi threaded state machine 2018-01-31 18:13:25 +00:00
1ecf646f7e Oracle 11xe and 12c database compatibility (#206)
* Sql setup scripts for Oracle and datasource configuration.
* CashSelection for Oracle.
* Workaround of forbidden distinct for BLOBs.
* ojdbc8.jar driver dependency from Oracle Maven repository, ojdbc6.jar from lib (it's not in Maven repo).
* allow to use random Port in node names and trim it from schema name, remove schema with port numbers from db setup (to cater for new test, non Oracle specific change) 
* Removed unnecessary code from ConfigUtilities (non Oracle specific change) 
* Removed db integration tests setup for RPCStabilityTest as it doesn't start any nodes
2018-01-29 18:35:58 +00:00
336aeb96e5 Merge fixes 2018-01-26 13:45:03 +00:00
4b86362391 Merge remote-tracking branch 'open/master' into shams-os-merge-250118
# Conflicts:
#	client/rpc/src/integration-test/kotlin/net/corda/client/rpc/BlacklistKotlinClosureTest.kt
#	client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt
#	core/src/test/java/net/corda/core/flows/FlowsInJavaTest.java
#	docs/source/changelog.rst
#	docs/source/corda-configuration-file.rst
#	docs/source/upgrade-notes.rst
#	finance/src/test/kotlin/net/corda/finance/contracts/CommercialPaperTests.kt
#	finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt
#	gradle/wrapper/gradle-wrapper.properties
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/KeyStoreConfigHelpers.kt
#	node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/SetsSerializationTest.kt
#	node/src/integration-test/kotlin/net/corda/node/AuthDBTests.kt
#	node/src/integration-test/kotlin/net/corda/node/BootTests.kt
#	node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt
#	node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/SSHServerTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/NetworkMapTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/PersistentNetworkMapCacheTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/statemachine/FlowVersioningTest.kt
#	node/src/integration-test/kotlin/net/corda/node/utilities/registration/NodeRegistrationTest.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/MQSecurityTest.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt
#	node/src/integration-test/kotlin/net/corda/test/node/NodeStatePersistenceTests.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt
#	node/src/main/resources/reference.conf
#	node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java
#	node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt
#	node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt
#	node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt
#	node/src/test/kotlin/net/corda/node/services/persistence/DBCheckpointStorageTests.kt
#	samples/attachment-demo/src/integration-test/kotlin/net/corda/attachmentdemo/AttachmentDemoTest.kt
#	samples/network-visualiser/src/main/kotlin/net/corda/netmap/NetworkMapVisualiser.kt
#	samples/notary-demo/src/main/kotlin/net/corda/notarydemo/RaftNotaryCordform.kt
#	samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt
#	testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/InMemoryMessagingNetwork.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeTestUtils.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/NodeBasedTest.kt
#	testing/smoke-test-utils/src/main/kotlin/net/corda/smoketesting/NodeProcess.kt
#	testing/test-utils/src/main/kotlin/net/corda/testing/internal/TestNodeInfoBuilder.kt
#	tools/explorer/src/main/kotlin/net/corda/explorer/ExplorerSimulation.kt
#	verifier/src/integration-test/kotlin/net/corda/verifier/VerifierTests.kt
#	webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt
2018-01-25 17:51:13 +00:00
9783f11ba8 Exposed RPC SSL settings through Cordformation (#2419) 2018-01-25 14:32:58 +00:00