Commit Graph

2298 Commits

Author SHA1 Message Date
dcf659e643 [CORDA-3628] - Implement sendAll API (#5990)
* [CORDA-3628] - Implement sendAll API

* detekt

* Some minor refactorings and docs

* Eliminate warnings

* Address Rick's comments

* Switch sendAll to use a set
2020-03-09 17:09:13 +00:00
8ea6564cb9 fixed unformatted and hardcoded link (#6035) 2020-03-09 14:05:28 +00:00
217926092d ENT-4334 Configuration option to exclude packages from Quasar instrumentation (#6005)
* Add quasarExcludePackages configuration option

* Change quasarExcludePackages to quasar.excludePackages

* Add doc comment for QuasarConfiguration

* Use forEach method

* Fix rule violation (TooGenericExceptionThrown)

* Mention new configuration option in changelog

* Remove outer section from new quasarExcludePackages configuration option
2020-03-09 11:40:51 +00:00
493a92ca39 Merge commit '5b50ef49bcca2d1be8bb0604e1be167e3bb5da24' into chrisr3-44-merge 2020-03-06 09:55:00 +00:00
c65a5cb089 Merge pull request #6030 from corda/chrisr3-44-merge
Merge from OS 4.4 up to bc410b4.
2020-03-06 09:50:39 +00:00
60a74c0399 [NOTICK] The list added for Bugs and Storys without Epic link (#6033)
[NOTICK] The list added for Bugs and Storys without Epic link (#6033)
2020-03-05 16:23:08 +00:00
2c2d7e938a [NOTICK] The list added for Bugs and Storys without Epic link 2020-03-05 15:06:20 +00:00
4c944f048c [NOTICK] The list added for Bugs and Storys without Epic link 2020-03-05 12:12:05 +00:00
e639091626 Delete extra characters at end of key-concepts-ledger.rst (#6028) 2020-03-04 16:40:01 +00:00
ffa2caed32 Merge branch 'release/os/4.4' into chrisr3-44-merge 2020-03-04 16:27:44 +00:00
e006b871c8 CORDA-3644: Scan the CorDapp classloader directly for SerializationWhitelist. (#6014)
* CORDA-3644: Scan the CorDapp classloader directly for SerializationWhitelist.

* CORDA-3644: Filter CorDapps from out-of-process node classpaths by their manifest attributes. Also exclude directories and blatant test artifacts.

* Fix IRS Demo - its "tests" artifact had a non-standard classifier of "test".
2020-03-04 10:09:40 +00:00
20c5040826 add ability to exit after config generation as is described in the docs (#6023) 2020-03-04 09:52:19 +00:00
e38cd9ec63 ENT-5043 separate out test utils (#5998)
* Remove unused dependencies from test-common

* Explicit imports and formatting

* Add core-test-utils project

* Add dependency

* Move Kryo serialization context to node-api (not serialization as we do not want to pull kryo into the serialization lib)

* Move AMQP server serialization scheme to node api

* Move serialization tests to node-api

* Move internal test helpers without further dependencies.

* Move out some types from RPCClientProxyHandler to node-api in preparation for moving the AMQP scheme

* Move client AMQP context to node-api so we can move the test serialization rule out.

* Move InternalSerializationTestHelpers to core-test-utils

* Moved testing.core to core-test-utils

* Make detekt happy

* Add api-scanner to core-test-utils

* Remove inlined package names introduced by IntelliJ refactoring

* Update api-current.txt to account for reordering.

* Add core-test-utils to list of published artifacts.

* Add missing import

* Location of things in api text has moved again (publish name of artefact?)

* Revert all additions to the API, leaving just the reordering

* Code review: fix up core-test-utils build.gradle and introduce kryo version constant.

* Remove OpenSsl flag from ssl config stub (can't be used from node-api)

* Suppress detekt warning

* Move core test util tests to the right module

* Expose kotlin test as a transient dependency - projects have come to rely on that.

* Fix typo in package name
2020-03-03 15:55:17 +00:00
cd6098fd4f Flag finance library as not for production use in documentation (#6011) 2020-03-03 08:42:10 +00:00
1bf311ce4f Removes use of notaries.first. (#6008) 2020-02-27 13:27:38 +00:00
ae17669892 Merge pull request #5966 from corda/vcamp/os_release_notes_4.4
DOCS: release notes - Corda 4.4
2020-02-27 12:56:50 +00:00
4ea74a45b5 ENT-5018: Updated documentation for RPC Settings address field based on client … (#5991)
* Updated documentation for RPC Settings address field based on client feedback explain implications of specifying 0.0.0.0 as host.

* Further updates to p2pAddress and messagingServerAddress sections of node settings.

* Further updates to additionalP2pAddresses and explaining localhost vs loopback address implications.

* Correct messagingServerAddress and amend adminAddress section.
2020-02-25 17:28:04 +00:00
9dec5aac4b Merge pull request #5935 from corda/denis/ENT-4926-node-identity-docs
ENT-4915, ENT-4926, CORDA-3585: Update docs for X500 name and SSH hostkey
2020-02-20 11:11:46 +00:00
3eb88bca7d OS 4.4 release notes: added pargraph on bonus AppServiceHub call, revised section title, removed deprecations section 2020-02-18 17:37:41 +00:00
6ec314fade Merge remote-tracking branch 'origin/release/os/4.3' into rfowler-os4.3-0s4.4-20200218
# Conflicts:
#	.ci/dev/integration/Jenkinsfile
#	.ci/dev/unit/Jenkinsfile
#	Jenkinsfile
#	build.gradle
#	create-jdk8u/build.gradle
#	docs/source/corda-network/UAT.md
#	docs/source/network-builder.rst
#	node/src/integration-test-slow/kotlin/net/corda/node/services/distributed/DistributedServiceTests.kt
2020-02-18 15:48:58 +00:00
c23deee3fb OS 4.4 release notes: address comments 2020-02-17 17:51:03 +00:00
a18caef56b CORDA-3495: fix link to network builder (#5977) 2020-02-17 16:42:39 +00:00
fbf9ec5654 Merge pull request #5824 from corda/ENT-4717-add-minimumPlatformVersion-to-docs
CORDA-3509: add documentation about minimumPlatformVersion
2020-02-17 15:32:27 +00:00
3547b629c3 [NOTICK] Add a detekt rule to catch tests with no timeout (#5959)
* [NOTICK] Add a custom detekt rule for tests with no timeout, and fix remaining missing timeouts

* [NOTICK] Add a test for custom detekt rules and tidying

* add timeout annotation to new test

Co-authored-by: Stefano Franz <roastario@gmail.com>
2020-02-14 17:31:02 +00:00
c745f13913 OS 4.4 release notes: fix incorrect info in flow api improvements section 2020-02-14 14:42:00 +00:00
27bd9f561b Corda 4.4 release notes 2020-02-14 13:50:37 +00:00
da192bcf0d [EG-140] Allow system property paths with multiple keys to be specified in node.conf (#5963)
* [EG-140] Allow system property paths with multiple keys to be specified in node.conf

* [EG-140] Split property paths to remove quotes

* [EG-140] Quote system properties in docs

* [EG-140] Rename path to key
2020-02-14 11:18:21 +00:00
af4d9c48a0 ENT-4933: Document notary.etaMessageThresholdSeconds (#5948)
* ENT-4933: Document `notary.etaMessageThresholdSeconds`

* Fix typo
2020-02-12 14:10:26 +00:00
e90058962f Updating Artifactory URLs for Corda OS (#5930) (#5939)
* Switching Artifactory URLs from obsolete ci-artifactory to software.r3.com
2020-02-11 11:57:51 +00:00
b23af5f0d2 add timeouts to all tests (#5875) 2020-02-11 10:14:05 +00:00
9ccbfe178c Updating Artifactory URLs for Corda OS 4.3 (#5930)
* Switching Artifactory URLs from obsolete ci-artifactory to software.r3.com
2020-02-11 08:40:22 +00:00
5a4bdc0a00 ENT-4915, ENT-4926, CORDA-3585: Update docs for X500 name and SSH shell hostkey 2020-02-10 17:40:23 +00:00
286fffd67a ENT-4368 - Improve error handling when required included config resource cannot be found. Add note in docs encouraging use of required syntax for includes. (#5907) 2020-01-30 10:10:24 +00:00
5b186b1c65 Interfaces/classes/methods with internal in their name are non-public API (#5906) 2020-01-29 15:35:00 +00:00
d16e1126db CORDA-3542: Use the config values for reconnecting retry interval and max reconnect attempts (#5869) 2020-01-29 13:08:54 +00:00
2e8f2ffc21 CORDA-3025: Permissions template for a read-only user (#5901) 2020-01-28 11:49:12 +00:00
338671e6b2 CORDA-3509: add documentation about Corda features and their
corresponding platformVersion and network minimumPlatformVersion
2020-01-27 09:42:28 +00:00
8f7367add7 CORDA-3509: add documentation about Corda features and their
corresponding platformVersion and network minimumPlatformVersion
2020-01-24 16:48:40 +00:00
de2a868d6e Slight rewording to underline the change for the better. 2020-01-24 16:19:42 +00:00
f34235924b Update CorDapp overview for Open Core changes. 2020-01-24 16:19:42 +00:00
4f1777adb4 NO-TICK Cap the default size of the external operation thread pool (#5878)
Cap the default size of the external operation thread pool to 10 or
the maximum number of available processors, whichever is smaller.

Set the minimum size of the thread pool to 1. Meaning that only a
single thread is used unless the node actually starts to use
`FlowExternalOperation` which consumes threads from this pool.
2020-01-24 12:11:53 +00:00
b512a2981d ENT-3828: Remove ability to SSH into standalone shell (#5876) 2020-01-24 10:44:25 +00:00
42a2ed98e2 CORDA-2942: Allow exception from CordaService creation to propagate (#5884)
* CORDA-2942: Allow exception from `CordaService` creation to propagate

It will ultimately be thrown from Node's `start()` method terminating the node start-up sequence.

* CORDA-2942: Be lenient when retrievign the name of the Notary

Some tests setup such that they do nto have Notary running.
2020-01-24 10:20:08 +00:00
6a2249e697 CORDA-3520, CORDA-3550: SSH memory leak and security (#5873)
* CORDA-3520: Closing RPC connection on SSH disconnect
CORDA-3550: Remove support for outdated ciphers and algorithms from SSH

* CORDA-3550: Remove support for outdated ciphers and algorithms from SSH
2020-01-22 14:40:25 +00:00
9a1d46ddd1 EG-73 - Remove postgres dependency from the node and update docs (#5867) 2020-01-22 09:52:02 +00:00
4bae045a58 ENT-4601 Public API to run external operations from a flow (#5833)
Deprecate FlowAsyncOperation and reimplement public versions FlowExternalOperation and FlowExternalAsyncOperation.

await added to FlowLogic to allow easy calling from both Java and Kotlin. There are two overrides of await (one for FlowExternalOperation and FlowExternalAsyncOperation).

Implementations of FlowExternalOperation return a result (written as blocking code) from their execute function. This operation will then be executed using a thread provided by the externalOperationExecutor.

Implementations of FlowExternalAsyncOperation return a future from their execute function. This operation must be executed on a newly spawned thread or one provided by a thread pool. It is up to developers to handle threading in this scenario.

The default thread pool (externalOperationExecutor) can be configured through the flowExternalOperationThreadPoolSize node config.

The current implementation leaves FlowAsyncOperation alone, meaning that any developers that have used it (even though it is internal) won't need to change their apps. If this was not concern I would delete it completely and replumb the state machine code. Instead, it has been marked with @DoNotImplement and executeAsync is annotated with @Deprecated
2020-01-22 09:27:17 +00:00
0978500a9a CORDA-2942: Node lifecycle events (#5846)
* CORDA-2942: Port minimal set of changes to make lifecycle events work

... and make codebase compile.

* CORDA-2942: Undo some changes which are not strictly speaking necessary

* CORDA-2942: Make `NodeServicesContext` leaner and delete `extensions-api` module

* CORDA-2942: Reduce even more number of files affected

* CORDA-2942: Integration test fix

* CORDA-2942: Make events `AfterStart` and `BeforeStop` generic w.r.t. `NodeServicesContext`

* CORDA-2942: `NodeLifecycleObserverService` and a set of integration tests.

Public API violations are expected as well as integration tests failing.

* CORDA-2942: Re-work to introduce `ServiceLifecycleObserver`

* CORDA-2942: Explicitly mention a type of exception that may be thrown for some events.

* CORDA-2942: Register `ServiceLifecycleObserver` through `AppServiceHub`

* CORDA-2942: Fix integration test + KDocs update

* CORDA-2942: Detekt and `api-current` update

* CORDA-2942: Improvement to `CordaServiceLifecycleFatalTests`

... or else it has side effects on other tests.

* CORDA-2942: Add an integration test for new API use in Java

Driver test is written in Kotlin, but services definition is written in Java.

Also KDocs improvements.

* CORDA-2942: Documentation and release notes update

* CORDA-2942: First set of changes following review by @mnesbit

* CORDA-2942: Second set of changes following review by @mnesbit

* CORDA-2942: Added multi-threaded test

* CORDA-2942: Fixes

* CORDA-2942: Undo changes to `api-current.txt`

* CORDA-2942: Bare mimimum change to `api-current.txt` for CI gate to pass.

* CORDA-2942: Address review feedback from @rick-r3

* CORDA-2942: Detekt update

* CORDA-2942: Delete `ServiceLifecycleObserverPriority` and replace it with `Int` after discussion with @mnesbit

* CORDA-2942: Introduce more `NodeLifecycleEvent` and switch services to listen for those events

* CORDA-2942: Few more changes after input from @rick-r3

* First stub on integration test
Unfinished - hang on issue and pay

* CORDA-2942: Switch to use out-of-process nodes for the inetgration test

Currently Alice and Notary stuck waiting to hear from each other.

* CORDA-2942: Extra log lines during event distribution

* CORDA-2942: Asynchronously distribute lifecycle events

* CORDA-2942: Await for complete P2P client start-up

Next step: Add vault query to integration test

* CORDA-2942: Asynchronously distribute lifecycle events

Next step: Improve integration test

* CORDA-2942: Fix test broken by recent changes and improve logging

* CORDA-2942: Improvement of the test to be able to monitor actions performed by @CordaService in the remote process

* CORDA-2942: Add node re-start step to the integration test

* CORDA-2942: Remove `CORDAPP_STOPPED` event for now

* CORDA-2942: s/CORDAPP_STARTED/STATE_MACHINE_STARTED/

* CORDA-2942: Inverse the meaning of `priority` as requested by @rick-r3

* CORDA-2942: Register `AppServiceHubImpl` for lifecycle events and put a warning when SMM is not ready.
2020-01-21 13:38:02 +00:00
a7147c1ffd ENT-4652: Provide an "attachment fixup" mechanism to repair broken transactions. (#5825)
* Do not register cordapp custom serialisers when using attachment classloader.

* Record the URLs of CorDapp JARs that contain custom serialisers. Include these JARs as extra attachments if we discover that we're missing a custom serialiser during transaction verification.

* Check for disabled serializer when explicitly requesting a custom serializer.
Refactor test case to force use of a custom serializer.

* Tidy up basic custom serializer test.

* Also test that TransactionBuilder rejects missing custom serializers.

* Remove test whitelists, which should not be needed with custom serialisers.

* Add changelog entry. Also align TestCordappImpl.findRoots() with OS backports.

* Second approach based around CorDapps inside AttachmentStorage - report missing type descriptor or any non-composable types.

* Initial implementation of Corda-Fixup rules inside a CorDapp jar.

* Replace original "automatic attachment fixing" mechanism completely.

* First review comments: restore "missing class" logic to TransactionBuilder.

* Restore "missing class" mechanism as fallback for SignedTransaction too.
2020-01-14 15:18:51 +00:00
73a0782f5d CORDA-3452: Node: Configure the input of custom string in CSR (#5844)
* CORDA-3452: Node: Configure the input of custom string in CSR to be used by Identity Service

* CORDA-3452: Remove unused import

* CORDA-3452: Add test for networkServices configuration
2020-01-13 09:52:51 +00:00
d0543d7270 [CORDA-3436] Allow CorDapps access to node diagnostic information (#5834)
* [CORDA-3436] Allow CorDapps access to node diagnostic information

* [CORDA-3436] Fix API breakages

* [CORDA-3436] Improve documentation around diagnostics service

* [CORDA-3436] Remove CorDapps from the diagnostics information

* [CORDA-3436] Silence detekt warning
2020-01-09 11:18:32 +00:00