From 1081e8d2ce8dc5182ed1bc7a0af9a7a416a9a30f Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Mon, 1 Aug 2016 13:16:47 +0200 Subject: [PATCH] Regen docsite --- .../html/_sources/contract-catalogue.txt | 64 ++ docs/build/html/_sources/contract-irs.txt | 8 +- docs/build/html/_sources/index.txt | 8 +- docs/build/html/_sources/release-notes.txt | 56 +- docs/build/html/api/alltypes/index.html | 31 +- .../-message/index.html | 4 +- .../-message/topic-session.html | 15 + .../add-message-handler.html | 30 +- .../-messaging-service/create-message.html | 20 +- .../-messaging-service/index.html | 45 +- .../-topic-session/-blank.html | 15 + .../-topic-session/-init-.html | 23 + .../-topic-session/index.html | 80 ++ .../-topic-session/is-blank.html | 15 + .../-topic-session/session-i-d.html | 15 + .../-topic-session/to-string.html | 15 + .../-topic-session/topic.html | 15 + .../api/com.r3corda.core.messaging/index.html | 24 +- .../run-on-next-message.html | 29 +- .../api/com.r3corda.core.messaging/send.html | 6 +- .../-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html | 17 + .../com.r3corda.core.node.services/index.html | 5 +- .../-corda-plugin-registry/-init-.html | 16 + .../-corda-plugin-registry/index.html | 86 +- .../required-protocols.html | 2 +- .../service-plugins.html | 19 + .../static-serve-dirs.html | 18 + .../-corda-plugin-registry/web-apis.html | 6 +- .../html/api/com.r3corda.core.node/index.html | 2 +- .../-singleton-serialize-as-token/index.html | 12 +- .../-c-h-a-r-l-i-e.html | 15 + .../-c-h-a-r-l-i-e_-k-e-y.html | 15 + .../-c-h-a-r-l-i-e_-p-u-b-k-e-y.html | 15 + .../api/com.r3corda.core.testing/index.html | 18 + .../-progress-tracker/-step/index.html | 4 +- .../com.r3corda.core/log-elapsed-time.html | 2 +- .../-auto-offer-protocol/-plugin/-init-.html | 14 + .../-auto-offer-protocol/-plugin/index.html | 74 ++ .../-plugin/service-plugins.html | 20 + .../-requester/index.html | 4 +- .../-service/-callback/-init-.html | 14 + .../-service/-callback/index.html | 53 ++ .../-service/-callback/on-failure.html | 15 + .../-service/-callback/on-success.html | 15 + .../-service/-callback/success.html | 15 + .../child-progress-tracker.html | 16 + .../-service/-d-e-a-l-i-n-g/index.html | 42 + .../-auto-offer-protocol/-service/-init-.html | 14 + .../-service/-r-e-c-e-i-v-e-d.html | 42 + .../-auto-offer-protocol/-service/index.html | 59 ++ .../-service/tracker.html | 15 + .../-auto-offer-protocol/index.html | 10 +- .../-exit-server-protocol/-plugin/-init-.html | 14 + .../-exit-server-protocol/-plugin/index.html | 74 ++ .../-plugin/service-plugins.html | 20 + .../-service/-init-.html | 14 + .../-exit-server-protocol/-service/index.html | 25 + .../-exit-server-protocol/index.html | 10 +- .../-plugin/-init-.html | 14 + .../-plugin/index.html | 74 ++ .../-plugin/service-plugins.html | 20 + .../-service/-init-.html | 14 + .../-service/index.html | 25 + .../-update-business-day-protocol/index.html | 10 +- .../-i-r-s-demo-plugin-registry/index.html | 28 +- .../static-serve-dirs.html | 19 + .../-i-r-s-demo-plugin-registry/web-apis.html | 4 +- .../-mock-network/-mock-node/index.html | 35 +- .../-mock-node/make-messaging-service.html | 2 +- .../-simulation/-simulated-node/index.html | 2 +- .../-abstract-node/-init-.html | 4 + .../-abstract-node/custom-services.html | 15 + .../-abstract-node/find-service.html | 16 + .../-abstract-node/index.html | 52 +- .../make-messaging-service.html | 2 +- .../-abstract-node/net-map-cache.html | 15 + .../-abstract-node/net.html | 2 +- .../-node/index.html | 35 +- .../-node/make-messaging-service.html | 2 +- .../api/com.r3corda.node.internal/index.html | 2 +- .../-abstract-node-service/index.html | 32 +- .../-messaging-service-builder/index.html | 44 ++ .../-messaging-service-builder/start.html | 15 + .../-messaging-service-internal/index.html | 133 ++++ .../register-trusted-address.html | 15 + .../-messaging-service-internal/stop.html | 15 + .../-service-hub-internal/index.html | 12 +- .../network-service.html | 16 + .../com.r3corda.node.services.api/index.html | 16 + .../-plugin/-init-.html | 14 + .../-plugin/index.html | 74 ++ .../-plugin/service-plugins.html | 20 + .../-service/-init-.html | 14 + .../-service/index.html | 25 + .../-fixing-session-initiation/index.html | 36 + .../-node-interest-rates/-plugin/-init-.html | 15 + .../-node-interest-rates/-plugin/index.html | 76 ++ .../-plugin/required-protocols.html | 21 + .../-plugin/service-plugins.html | 20 + .../-node-interest-rates/-service/-init-.html | 2 +- .../-node-interest-rates/-service/index.html | 14 +- .../-node-interest-rates/index.html | 7 + .../index.html | 8 + .../-handler/-init-.html | 2 +- .../-handler/index.html | 6 +- .../-handler/topic-session.html | 15 + .../-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html | 15 + .../add-message-handler.html | 31 +- .../create-message.html | 21 +- .../-artemis-messaging-service/index.html | 36 +- .../register-trusted-address.html | 16 + .../-artemis-messaging-service/stop.html | 2 +- .../index.html | 2 +- .../-builder/index.html | 2 +- .../-builder/start.html | 2 +- .../-in-memory-messaging/-handler/-init-.html | 2 +- .../-in-memory-messaging/-handler/index.html | 6 +- .../-handler/topic-session.html | 15 + .../add-message-handler.html | 31 +- .../-in-memory-messaging/create-message.html | 9 +- .../-in-memory-messaging/index.html | 17 +- .../register-trusted-address.html | 16 + .../-in-memory-messaging/stop.html | 2 +- .../create-node-with-i-d.html | 2 +- .../create-node.html | 2 +- .../-in-memory-messaging-network/index.html | 8 +- .../-in-memory-network-map-cache/-init-.html | 2 +- .../-in-memory-network-map-cache/index.html | 8 +- .../net-internal.html | 15 + .../-mock-network-map-cache/index.html | 6 + .../-data-vending/-plugin/-init-.html | 14 + .../-data-vending/-plugin/index.html | 74 ++ .../-plugin/service-plugins.html | 20 + .../-data-vending/-service/-init-.html | 24 + ...-f-y_-t-x_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html | 16 + .../-notify-tx-request-message/-init-.html | 14 + .../-notify-tx-request-message/index.html | 59 ++ .../reply-to-party.html | 16 + .../session-i-d.html | 16 + .../-notify-tx-request-message/tx.html | 15 + .../-notify-tx-response-message/-init-.html | 14 + .../-notify-tx-response-message/accepted.html | 15 + .../-notify-tx-response-message/index.html | 36 + .../-data-vending/-service/index.html | 123 +++ .../-data-vending/-service/logger.html | 15 + .../-data-vending/-service/services.html | 15 + .../-data-vending/-service/storage.html | 15 + .../-data-vending/index.html | 33 + .../index.html | 6 +- .../-expecting-response/index.html | 4 +- .../-not-expecting-response/index.html | 4 +- .../-fiber-request/index.html | 4 +- .../-fiber-request/receive-topic-session.html | 15 + .../-notary-change/-plugin/-init-.html | 14 + .../-notary-change/-plugin/index.html | 74 ++ .../-plugin/service-plugins.html | 20 + .../-notary-change/-service/-init-.html | 16 + .../-notary-change/-service/index.html | 74 ++ .../-notary-change/-service/services.html | 15 + .../-notary-change/index.html | 33 + .../api/com.r3corda.node.services/index.html | 14 +- .../-instigator/index.html | 4 +- .../-notary-protocol/-service/index.html | 4 +- .../-party-request-message/index.html | 2 +- .../-resolve-transactions-protocol/index.html | 4 +- .../-fixing-role-decider/index.html | 4 +- .../-primary/index.html | 4 +- .../-secondary/index.html | 4 +- docs/build/html/api/index-outline.html | 745 +++++++++++++----- docs/build/html/contract-catalogue.html | 295 +++++++ docs/build/html/contract-irs.html | 26 +- docs/build/html/genindex.html | 6 +- docs/build/html/index.html | 27 +- docs/build/html/objects.inv | Bin 703 -> 728 bytes docs/build/html/release-notes.html | 85 +- docs/build/html/search.html | 6 +- docs/build/html/searchindex.js | 2 +- 177 files changed, 4215 insertions(+), 506 deletions(-) create mode 100644 docs/build/html/_sources/contract-catalogue.txt create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-message/topic-session.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/-blank.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/-init-.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/index.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/is-blank.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/session-i-d.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/to-string.html create mode 100644 docs/build/html/api/com.r3corda.core.messaging/-topic-session/topic.html create mode 100644 docs/build/html/api/com.r3corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html create mode 100644 docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/-init-.html create mode 100644 docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/static-serve-dirs.html create mode 100644 docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e.html create mode 100644 docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-k-e-y.html create mode 100644 docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-p-u-b-k-e-y.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-failure.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-success.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/success.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/child-progress-tracker.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-r-e-c-e-i-v-e-d.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/tracker.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/-init-.html create mode 100644 docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/index.html create mode 100644 docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/static-serve-dirs.html create mode 100644 docs/build/html/api/com.r3corda.node.internal/-abstract-node/custom-services.html create mode 100644 docs/build/html/api/com.r3corda.node.internal/-abstract-node/find-service.html create mode 100644 docs/build/html/api/com.r3corda.node.internal/-abstract-node/net-map-cache.html create mode 100644 docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/start.html create mode 100644 docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/register-trusted-address.html create mode 100644 docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/stop.html create mode 100644 docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/network-service.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/required-protocols.html create mode 100644 docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/topic-session.html create mode 100644 docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html create mode 100644 docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/register-trusted-address.html create mode 100644 docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/topic-session.html create mode 100644 docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/register-trusted-address.html create mode 100644 docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/net-internal.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-n-o-t-i-f-y_-t-x_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/reply-to-party.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/session-i-d.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/tx.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/accepted.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/logger.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/services.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/storage.html create mode 100644 docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/receive-topic-session.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/service-plugins.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/-service/-init-.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/-service/index.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/-service/services.html create mode 100644 docs/build/html/api/com.r3corda.node.services/-notary-change/index.html create mode 100644 docs/build/html/contract-catalogue.html diff --git a/docs/build/html/_sources/contract-catalogue.txt b/docs/build/html/_sources/contract-catalogue.txt new file mode 100644 index 0000000000..11f3b1302b --- /dev/null +++ b/docs/build/html/_sources/contract-catalogue.txt @@ -0,0 +1,64 @@ +Platform contracts +================== + +There are a number of contracts supplied with Corda, which cover both core functionality (such as cash on ledger) and +provide examples of how to model complex contracts (such as interest rate swaps). There is also a ``Dummy`` contract. +However it does not provide any meaningful functionality, and is intended purely for testing purposes. + +Cash +---- + +The ``Cash`` contract's state objects represent an amount of some issued currency, owned by some party. Any currency +can be issued by any party, and it is up to the recipient to determine whether they trust the issuer. Generally nodes +are expected to have criteria (such as a whitelist) that issuers must fulfil for cash they issue to be accepted. + +Cash state objects implement the ``FungibleAsset`` interface, and can be used by the commercial paper and obligation +contracts as part of settlement of an outstanding debt. The contracts' verification functions require that cash state +objects of the correct value are received by the beneficiary as part of the settlement transaction. + +The cash contract supports issuing, moving and exiting (destroying) states. Note, however, that issuance cannot be part +of the same transaction as other cash commands, in order to minimise complexity in balance verification. + +Commercial Paper +---------------- + +``CommercialPaper`` is a very simple obligation to pay an amount of cash at some future point in time (the maturity +date), and exists primarily as a simplified contract for use in tutorials. Commercial paper supports issuing, moving +and redeeming (settling) states. Unlike the full obligation contract it does not support locking the state so it cannot +be settled if the obligor defaults on payment, or netting of state objects. All commands are exclusive of the other +commercial paper commands. Use the ``Obligation`` contract for more advanced functionality. + +Interest Rate Swap +------------------ + +The Interest Rate Swap (IRS) contract is a bilateral contract to implement a vanilla fixed / floating same currency +interest rate swap. In general, an IRS allows two counterparties to modify their exposure from changes in the underlying +interest rate. They are often used as a hedging instrument, convert a fixed rate loan to a floating rate loan, vice +versa etc. + +See ":doc:`contract-irs`" for full details on the IRS contract. + +Obligation +---------- + +The obligation contract's state objects represent an obligation to provide some asset, which would generally be a +cash state object, but can be any contract state object fulfilling the ``FungibleAsset`` interface, including other +obligations. The obligation contract uses objects referred to as ``Terms`` to group commands and state objects together. +Terms are a subset of an obligation state object, including details of what should be paid, when, and to whom. + +Obligation state objects can be issued, moved and exited as with any fungible asset. The contract also supports state +object netting and lifecycle changes (marking the obligation that a state object represents as having defaulted, or +reverting it to the normal state after marking as having defaulted). The ``Net`` command cannot be included with any +other obligation commands in the same transaction, as it applies to state objects with different beneficiaries, and +as such applies across multiple terms. + +All other obligation contract commands specify obligation terms (what is to be delivered, by whom and by when) +which are used as a grouping key for input/output states and commands. Issuance and lifecyle commands are mutually +exclusive of other commands (move/exit) which apply to the same obligation terms, but multiple commands can be present +in a single transaction if they apply to different terms. For example, a contract can have two different ``Issue`` +commands as long as they apply to different terms, but could not have an ``Issue`` and a ``Net``, or an ``Issue`` and +``Move`` that apply to the same terms. + +Netting of obligations supports close-out netting (which can be triggered by either obligor or beneficiary, but is +limited to bilateral netting), and payment netting (which requires signatures from all involved parties, but supports +multilateral netting). diff --git a/docs/build/html/_sources/contract-irs.txt b/docs/build/html/_sources/contract-irs.txt index 105c1abb43..dbec7e166b 100644 --- a/docs/build/html/_sources/contract-irs.txt +++ b/docs/build/html/_sources/contract-irs.txt @@ -1,5 +1,5 @@ -The Interest Rate Swap Contract -=============================== +Interest Rate Swaps +=================== The Interest Rate Swap (IRS) Contract (source: IRS.kt, IRSUtils.kt, IRSExport.kt) is a bilateral contract to implement a @@ -16,7 +16,7 @@ upon an amount that is not actually exchanged but notionally used for the calcul amount), and a rate that is either fixed at the creation of the swap (for the fixed leg), or based upon a reference rate that is retrieved during the swap (for the floating leg). An example reference rate might be something such as 'LIBOR 3M'. -The fixed leg has its rate computed and set in advance, where as the floating leg has a fixing process whereas the rate +The fixed leg has its rate computed and set in advance, whereas the floating leg has a fixing process whereas the rate for the next period is fixed with relation to a reference rate. Then, a calculation is performed such that the interest due over that period multiplied by the notional is paid (normally at the end of the period). If these two legs have the same payment date, then these flows can be offset against each other (in reality there are normally a number of these @@ -33,7 +33,7 @@ the view of the floating leg receiver / fixed leg payer. The enumerated document it progresses (note that, the first version exists before the value date), the dots on the "y=0" represent an interest rate value becoming available and then the curved arrow indicates to which period the fixing applies. -.. image:: irs.png +.. image:: contract-irs.png Two days (by convention, although this can be modified), before the value date (ie the start of the swap) in the red period the reference rate is observed from an oracle and fixed in the instance at 1.1%. At the end of the accrual period, diff --git a/docs/build/html/_sources/index.txt b/docs/build/html/_sources/index.txt index 6d0af3e9e5..6b1aa7cd0b 100644 --- a/docs/build/html/_sources/index.txt +++ b/docs/build/html/_sources/index.txt @@ -31,7 +31,13 @@ Read on to learn: messaging running-the-demos node-administration - irs + +.. toctree:: + :maxdepth: 2 + :caption: Contracts + + contract-catalogue + contract-irs .. toctree:: :maxdepth: 2 diff --git a/docs/build/html/_sources/release-notes.txt b/docs/build/html/_sources/release-notes.txt index 0cb1df89cb..778691f8bc 100644 --- a/docs/build/html/_sources/release-notes.txt +++ b/docs/build/html/_sources/release-notes.txt @@ -3,11 +3,63 @@ Release notes Here are brief summaries of what's changed between each snapshot release. -Unreleased ----------- +Milestone 2 +----------- + +* Big improvements to the interest rate swap app: + + * A new web app demonstrating the IRS contract has been added. This can be used as an example for how to interact with + the Corda API from the web. + * Simplifications to the way the demo is used from the command line. + * :doc:`Detailed documentation on how the contract works and can be used ` has been written. + * Better integration testing of the app. * Smart contracts have been redesigned around reusable components, referred to as "clauses". The cash, commercial paper and obligation contracts now share a common issue clause. +* New code in the experimental module (note that this module is a place for work-in-progress code which has not yet gone + through code review and which may, in general, not even function correctly): + + * Thanks to the prolific Sofus Mortensen @ Nordea Bank, an experimental generic contract DSL that is based on the famous + 2001 "Composing contracts" paper has been added. We thank Sofus for this great and promising research, which is so + relevant in the wake of TheDAO hack. + * The contract code from the recent trade finance demos is now in experimental. This code comes thanks to a + collaboration of the members; all credit to: + + * Mustafa Ozturk @ Natixis + * David Nee @ US Bank + * Johannes Albertsen @ Dankse Bank + * Rui Hu @ Nordea + * Daniele Barreca @ Unicredit + * Sukrit Handa @ Scotiabank + * Giuseppe Cardone @ Banco Intesa + * Robert Santiago @ BBVA + +* The usability of the command line demo programs has been improved. +* All example code and existing contracts have been ported to use the new Java/Kotlin unit testing domain-specific + languages (DSLs) which make it easy to construct chains of transactions and verify them together. This cleans up + and unifies the previous ad-hoc set of similar DSLs. A tutorial on how to use it has been added to the documentation. + We believe this largely completes our testing story for now around smart contracts. Feedback from bank developers + during the Trade Finance project has indicated that the next thing to tackle is docs and usability improvements in + the protocols API. +* Significant work done towards defining the "CorDapp" concept in code, with dynamic loading of API services and more to + come. +* Inter-node communication now uses SSL/TLS and AMQP/1.0, albeit without all nodes self-signing at the moment. A real + PKI for the p2p network will come later. +* Logging is now saved to files with log rotation provided by Log4J. + +API changes: + +* Some utility methods and extension functions that are specific to certain contract types have moved packages: just + delete the import lines that no longer work and let IntelliJ replace them with the correct package paths. +* The ``arg`` method in the test DSL is now called ``command`` to be consistent with the rest of the data model. +* The messaging APIs have changed somewhat to now use a new ``TopicSession`` object. These APIs will continue to change + in the upcoming releases. + +New documentation: + +* :doc:`contract-catalogue` +* :doc:`contract-irs` +* :doc:`tutorial-test-dsl` Milestone 1 ----------- diff --git a/docs/build/html/api/alltypes/index.html b/docs/build/html/api/alltypes/index.html index 43af238104..b987d5df90 100644 --- a/docs/build/html/api/alltypes/index.html +++ b/docs/build/html/api/alltypes/index.html @@ -439,10 +439,8 @@ to extend a Corda node with additional application services.

-com.r3corda.node.services.persistence.DataVendingService +com.r3corda.node.services.persistence.DataVending -

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple -glue that sits between the network layer and the database layer.

@@ -695,7 +693,7 @@ Assumes that the rate is valid.

-com.r3corda.node.services.FixingSessionInitiationHandler +com.r3corda.node.services.clientapi.FixingSessionInitiation

This is a temporary handler required for establishing random sessionIDs for the Fixer and Floater as part of running scheduled fixings for the InterestRateSwap contract.

@@ -1096,7 +1094,7 @@ specific messages can be defined, but use your domain name as the prefix e.g. "u -com.r3corda.core.messaging.MessagingServiceBuilder +com.r3corda.node.services.api.MessagingServiceBuilder

This class lets you start up a MessagingService. Its purpose is to stop you from getting access to the methods on the messaging service interface until you have successfully started up the system. One of these objects should @@ -1106,6 +1104,12 @@ may let you cast the returned future to an object that lets you get status info. +com.r3corda.node.services.api.MessagingServiceInternal + + + + + com.r3corda.core.serialization.MissingAttachmentsException

Thrown during deserialisation to indicate that an attachment needed to construct the WireTransaction is not found

@@ -1371,18 +1375,16 @@ trying to construct the set.

-com.r3corda.protocols.NotaryChangeProtocol +com.r3corda.node.services.NotaryChange -

A protocol to be used for changing a states Notary. This is required since all input states to a transaction -must point to the same notary.

-com.r3corda.node.services.NotaryChangeService +com.r3corda.protocols.NotaryChangeProtocol -

A service that monitors the network for requests for changing the notary of a state, -and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

+

A protocol to be used for changing a states Notary. This is required since all input states to a transaction +must point to the same notary.

@@ -2064,6 +2066,13 @@ public keys are identified in the containing com.r3corda.core.messaging.TopicSession + +

An identifier for the endpoint MessagingService message handlers listen at.

+ + + + com.r3corda.core.messaging.TopicStringValidator

A singleton thats useful for validating topic strings

diff --git a/docs/build/html/api/com.r3corda.core.messaging/-message/index.html b/docs/build/html/api/com.r3corda.core.messaging/-message/index.html index f6d9ec897c..5cbe9f5bed 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/-message/index.html +++ b/docs/build/html/api/com.r3corda.core.messaging/-message/index.html @@ -42,9 +42,9 @@ the timestamp field they probably will be, even if an implementation just uses a -topic +topicSession -abstract val topic: String +abstract val topicSession: TopicSession diff --git a/docs/build/html/api/com.r3corda.core.messaging/-message/topic-session.html b/docs/build/html/api/com.r3corda.core.messaging/-message/topic-session.html new file mode 100644 index 0000000000..a278da2fdd --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-message/topic-session.html @@ -0,0 +1,15 @@ + + +Message.topicSession - + + + +com.r3corda.core.messaging / Message / topicSession
+
+

topicSession

+ +abstract val topicSession: TopicSession
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/add-message-handler.html b/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/add-message-handler.html index 18bf0f7379..728dcdb274 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/add-message-handler.html +++ b/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/add-message-handler.html @@ -7,10 +7,10 @@ com.r3corda.core.messaging / MessagingService / addMessageHandler

addMessageHandler

- -abstract fun addMessageHandler(topic: String = "", executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+ +abstract fun addMessageHandler(topic: String = "", sessionID: Long = DEFAULT_SESSION_ID, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given -executor. The topic can be the empty string to match all messages.

+executor.

If no executor is received then the callback will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.

The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler. @@ -18,6 +18,30 @@ The handle is passed to the callback as well, to avoid race conditions whereby t itself and yet addMessageHandler hasnt returned the handle yet.



+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID).
+
+ +sessionID - identifier for the session the message is part of. For services listening before +a session is established, use DEFAULT_SESSION_ID.
+
+
+ +abstract fun addMessageHandler(topicSession: TopicSession, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

+

If no executor is received then the callback will run on threads provided by the messaging service, and the +callback is expected to be thread safe as a result.

+

The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler. +The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister +itself and yet addMessageHandler hasnt returned the handle yet.

+
+
+

Parameters

+ +topicSession - identifier for the topic and session to listen for messages arriving on.


diff --git a/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/create-message.html b/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/create-message.html index b1b8f15900..8a7865dc12 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/create-message.html +++ b/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/create-message.html @@ -7,9 +7,25 @@ com.r3corda.core.messaging / MessagingService / createMessage

createMessage

- -abstract fun createMessage(topic: String, data: ByteArray): Message
+ +abstract fun createMessage(topic: String, sessionID: Long = DEFAULT_SESSION_ID, data: ByteArray): Message

Returns an initialised Message with the current time, etc, already filled in.

+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +Must not be blank.
+
+ +sessionID - identifier for the session the message is part of. For messages sent to services before the +construction of a session, use DEFAULT_SESSION_ID.
+
+
+ +abstract fun createMessage(topicSession: TopicSession, data: ByteArray): Message
+

Returns an initialised Message with the current time, etc, already filled in.

+

Parameters

+ +topicSession - identifier for the topic and session the message is sent to.


diff --git a/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/index.html b/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/index.html index 3cf433e633..7c84b54cfd 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/index.html +++ b/docs/build/html/api/com.r3corda.core.messaging/-messaging-service/index.html @@ -37,15 +37,18 @@ is reliable and as such messages may be stored to disk once queued. addMessageHandler -abstract fun addMessageHandler(topic: String = "", executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given -executor. The topic can be the empty string to match all messages.

+abstract fun addMessageHandler(topic: String = "", sessionID: Long = DEFAULT_SESSION_ID, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given +executor.

+abstract fun addMessageHandler(topicSession: TopicSession, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

createMessage -abstract fun createMessage(topic: String, data: ByteArray): Message

Returns an initialised Message with the current time, etc, already filled in.

+abstract fun createMessage(topic: String, sessionID: Long = DEFAULT_SESSION_ID, data: ByteArray): Message
+abstract fun createMessage(topicSession: TopicSession, data: ByteArray): Message

Returns an initialised Message with the current time, etc, already filled in.

@@ -66,12 +69,6 @@ available via type casting. Once this function returns the message is queued for delivered: if the recipients are offline then the message could be queued hours or days later.

- - -stop - -abstract fun stop(): Unit -

Extension Functions

@@ -81,16 +78,21 @@ delivered: if the recipients are offline then the message could be queued hours runOnNextMessage -fun MessagingService.runOnNextMessage(topic: String = "", executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic that runs the given callback with the message and then removes itself. This -is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback doesnt -take the registration object, unlike the callback to MessagingService.addMessageHandler.

+fun MessagingService.runOnNextMessage(topic: String, sessionID: Long, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session ID that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler, as the handler is +automatically deregistered before the callback runs.

+fun MessagingService.runOnNextMessage(topicSession: TopicSession, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler.

send -fun MessagingService.send(topic: String, payload: Any, to: MessageRecipients): Unit +fun MessagingService.send(topic: String, sessionID: Long, payload: Any, to: MessageRecipients): Unit
+fun MessagingService.send(topicSession: TopicSession, payload: Any, to: MessageRecipients): Unit @@ -99,22 +101,9 @@ take the registration object, unlike the callback to ArtemisMessagingService +MessagingServiceInternal -class ArtemisMessagingService : SingletonSerializeAsToken, MessagingService

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. -Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate -with each other using an Artemis specific protocol, but it supports other protocols like AMQP/1.0 -as well for interop.

- - - - -InMemoryMessaging - -inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingService

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage -system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience -when all entities on the network are being simulated in-process.

- +interface MessagingServiceInternal : MessagingService diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/-blank.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/-blank.html new file mode 100644 index 0000000000..78aced06b7 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/-blank.html @@ -0,0 +1,15 @@ + + +TopicSession.Blank - + + + +com.r3corda.core.messaging / TopicSession / Blank
+
+

Blank

+ +val Blank: TopicSession
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/-init-.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/-init-.html new file mode 100644 index 0000000000..c085f81899 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/-init-.html @@ -0,0 +1,23 @@ + + +TopicSession.<init> - + + + +com.r3corda.core.messaging / TopicSession / <init>
+
+

<init>

+TopicSession(topic: String, sessionID: Long = DEFAULT_SESSION_ID)
+

An identifier for the endpoint MessagingService message handlers listen at.

+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID).
+
+ +sessionID - identifier for the session the message is part of. For services listening before +a session is established, use DEFAULT_SESSION_ID.
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/index.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/index.html new file mode 100644 index 0000000000..307a7b9054 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/index.html @@ -0,0 +1,80 @@ + + +TopicSession - + + + +com.r3corda.core.messaging / TopicSession
+
+

TopicSession

+data class TopicSession
+

An identifier for the endpoint MessagingService message handlers listen at.

+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID).
+
+ +sessionID - identifier for the session the message is part of. For services listening before +a session is established, use DEFAULT_SESSION_ID.
+
+
+

Constructors

+ + + + + + + +
+<init> +TopicSession(topic: String, sessionID: Long = DEFAULT_SESSION_ID)

An identifier for the endpoint MessagingService message handlers listen at.

+
+

Properties

+ + + + + + + + + + + +
+sessionID +val sessionID: Long
+topic +val topic: String
+

Functions

+ + + + + + + + + + + +
+isBlank +fun isBlank(): Boolean
+toString +fun toString(): String
+

Companion Object Properties

+ + + + + + + +
+Blank +val Blank: TopicSession
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/is-blank.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/is-blank.html new file mode 100644 index 0000000000..2e22f0448d --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/is-blank.html @@ -0,0 +1,15 @@ + + +TopicSession.isBlank - + + + +com.r3corda.core.messaging / TopicSession / isBlank
+
+

isBlank

+ +fun isBlank(): Boolean
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/session-i-d.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/session-i-d.html new file mode 100644 index 0000000000..ecdd7d0e54 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/session-i-d.html @@ -0,0 +1,15 @@ + + +TopicSession.sessionID - + + + +com.r3corda.core.messaging / TopicSession / sessionID
+
+

sessionID

+ +val sessionID: Long
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/to-string.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/to-string.html new file mode 100644 index 0000000000..dfbc7f92a1 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/to-string.html @@ -0,0 +1,15 @@ + + +TopicSession.toString - + + + +com.r3corda.core.messaging / TopicSession / toString
+
+

toString

+ +fun toString(): String
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/-topic-session/topic.html b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/topic.html new file mode 100644 index 0000000000..d26290f504 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.messaging/-topic-session/topic.html @@ -0,0 +1,15 @@ + + +TopicSession.topic - + + + +com.r3corda.core.messaging / TopicSession / topic
+
+

topic

+ +val topic: String
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.messaging/index.html b/docs/build/html/api/com.r3corda.core.messaging/index.html index c0a7bd6dce..f844c69aab 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/index.html +++ b/docs/build/html/api/com.r3corda.core.messaging/index.html @@ -63,19 +63,16 @@ specific messages can be defined, but use your domain name as the prefix e.g. "u -MessagingServiceBuilder +SingleMessageRecipient -interface MessagingServiceBuilder<out T : MessagingService>

This class lets you start up a MessagingService. Its purpose is to stop you from getting access to the methods -on the messaging service interface until you have successfully started up the system. One of these objects should -be the only way to obtain a reference to a MessagingService. Startup may be a slow process: some implementations -may let you cast the returned future to an object that lets you get status info.

+interface SingleMessageRecipient : MessageRecipients

A base class for the case of point-to-point messages

-SingleMessageRecipient +TopicSession -interface SingleMessageRecipient : MessageRecipients

A base class for the case of point-to-point messages

+data class TopicSession

An identifier for the endpoint MessagingService message handlers listen at.

@@ -94,16 +91,21 @@ may let you cast the returned future to an object that lets you get status info. runOnNextMessage -fun MessagingService.runOnNextMessage(topic: String = "", executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic that runs the given callback with the message and then removes itself. This -is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback doesnt -take the registration object, unlike the callback to MessagingService.addMessageHandler.

+fun MessagingService.runOnNextMessage(topic: String, sessionID: Long, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session ID that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler, as the handler is +automatically deregistered before the callback runs.

+fun MessagingService.runOnNextMessage(topicSession: TopicSession, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler.

send -fun MessagingService.send(topic: String, payload: Any, to: MessageRecipients): Unit +fun MessagingService.send(topic: String, sessionID: Long, payload: Any, to: MessageRecipients): Unit
+fun MessagingService.send(topicSession: TopicSession, payload: Any, to: MessageRecipients): Unit diff --git a/docs/build/html/api/com.r3corda.core.messaging/run-on-next-message.html b/docs/build/html/api/com.r3corda.core.messaging/run-on-next-message.html index 24f6f3ae06..970a238062 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/run-on-next-message.html +++ b/docs/build/html/api/com.r3corda.core.messaging/run-on-next-message.html @@ -7,11 +7,30 @@ com.r3corda.core.messaging / runOnNextMessage

runOnNextMessage

- -fun MessagingService.runOnNextMessage(topic: String = "", executor: Executor? = null, callback: (Message) -> Unit): Unit
-

Registers a handler for the given topic that runs the given callback with the message and then removes itself. This -is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback doesnt -take the registration object, unlike the callback to MessagingService.addMessageHandler.

+ +fun MessagingService.runOnNextMessage(topic: String, sessionID: Long, executor: Executor? = null, callback: (Message) -> Unit): Unit
+

Registers a handler for the given topic and session ID that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler, as the handler is +automatically deregistered before the callback runs.

+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID).
+
+ +sessionID - identifier for the session the message is part of. For services listening before +a session is established, use DEFAULT_SESSION_ID.
+
+
+ +fun MessagingService.runOnNextMessage(topicSession: TopicSession, executor: Executor? = null, callback: (Message) -> Unit): Unit
+

Registers a handler for the given topic and session that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler.

+

Parameters

+ +topicSession - identifier for the topic and session to listen for messages arriving on.


diff --git a/docs/build/html/api/com.r3corda.core.messaging/send.html b/docs/build/html/api/com.r3corda.core.messaging/send.html index 206a54f73e..5a9c173003 100644 --- a/docs/build/html/api/com.r3corda.core.messaging/send.html +++ b/docs/build/html/api/com.r3corda.core.messaging/send.html @@ -7,8 +7,10 @@ com.r3corda.core.messaging / send

send

- -fun MessagingService.send(topic: String, payload: Any, to: MessageRecipients): Unit
+ +fun MessagingService.send(topic: String, sessionID: Long, payload: Any, to: MessageRecipients): Unit
+ +fun MessagingService.send(topicSession: TopicSession, payload: Any, to: MessageRecipients): Unit


diff --git a/docs/build/html/api/com.r3corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html b/docs/build/html/api/com.r3corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html new file mode 100644 index 0000000000..605dcca6aa --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html @@ -0,0 +1,17 @@ + + +DEFAULT_SESSION_ID - + + + +com.r3corda.core.node.services / DEFAULT_SESSION_ID
+
+

DEFAULT_SESSION_ID

+ +val DEFAULT_SESSION_ID: Long
+

Session ID to use for services listening for the first message in a session (before a +specific session ID has been established).

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.node.services/index.html b/docs/build/html/api/com.r3corda.core.node.services/index.html index 562b61a4e9..9a02c0e11b 100644 --- a/docs/build/html/api/com.r3corda.core.node.services/index.html +++ b/docs/build/html/api/com.r3corda.core.node.services/index.html @@ -150,9 +150,10 @@ consumed by someone else first

-TOPIC_DEFAULT_POSTFIX +DEFAULT_SESSION_ID -val TOPIC_DEFAULT_POSTFIX: String

Postfix for base topics when sending a request to a service.

+val DEFAULT_SESSION_ID: Long

Session ID to use for services listening for the first message in a session (before a +specific session ID has been established).

diff --git a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/-init-.html b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/-init-.html new file mode 100644 index 0000000000..452d9c0907 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/-init-.html @@ -0,0 +1,16 @@ + + +CordaPluginRegistry.<init> - + + + +com.r3corda.core.node / CordaPluginRegistry / <init>
+
+

<init>

+CordaPluginRegistry()
+

Implement this interface on a class advertised in a META-INF/services/com.r3corda.core.node.CordaPluginRegistry file +to extend a Corda node with additional application services.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/index.html b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/index.html index 7edaaf5842..c79b5d571e 100644 --- a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/index.html +++ b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/index.html @@ -7,11 +7,24 @@ com.r3corda.core.node / CordaPluginRegistry

CordaPluginRegistry

-interface CordaPluginRegistry
+abstract class CordaPluginRegistry

Implement this interface on a class advertised in a META-INF/services/com.r3corda.core.node.CordaPluginRegistry file to extend a Corda node with additional application services.



+

Constructors

+ + + + + + + +
+<init> +CordaPluginRegistry()

Implement this interface on a class advertised in a META-INF/services/com.r3corda.core.node.CordaPluginRegistry file +to extend a Corda node with additional application services.

+

Properties

@@ -19,7 +32,7 @@ to extend a Corda node with additional application services.

+ + + + + + + + @@ -42,16 +74,52 @@ will be running in the appropriate isolated context.

+IRSDemoPluginRegistry + + + + + + + + +Plugin +class Plugin : CordaPluginRegistry + + + + + + + + + + + + + + + +
requiredProtocols -abstract val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. The key of each map entry should contain the ProtocolLogic class name. The associated map values are the union of all concrete class names passed to the protocol constructor. Standard java.lang.* and kotlin.* types do not need to be included explicitly. @@ -28,11 +41,30 @@ This is used to extend the white listed protocols that can be initiated from the

+servicePlugins +open val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
webApis -abstract val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. -These are listed as Class<*>, because they will be instantiated inside an AttachmentClassLoader so that subsequent protocols, contracts, etc -will be running in the appropriate isolated context.

+open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

-FixingServicePlugin -class FixingServicePlugin : CordaPluginRegistry

Register the protocol that is used with the Fixing integration tests.

+class IRSDemoPluginRegistry : CordaPluginRegistry
+Plugin +class Plugin : CordaPluginRegistry
+Plugin +class Plugin : CordaPluginRegistry

Register the protocol that is used with the Fixing integration tests.

-IRSDemoPluginRegistry -class IRSDemoPluginRegistry : CordaPluginRegistry
+Plugin +class Plugin : CordaPluginRegistry
+Plugin +class Plugin : CordaPluginRegistry
+Plugin +class Plugin : CordaPluginRegistry
+Plugin +class Plugin : CordaPluginRegistry
diff --git a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/required-protocols.html b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/required-protocols.html index 72473d834e..961634b90e 100644 --- a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/required-protocols.html +++ b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/required-protocols.html @@ -8,7 +8,7 @@

requiredProtocols

-abstract val requiredProtocols: Map<String, Set<String>>
+open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. The key of each map entry should contain the ProtocolLogic class name. The associated map values are the union of all concrete class names passed to the protocol constructor. diff --git a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/service-plugins.html b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/service-plugins.html new file mode 100644 index 0000000000..d1a1aa6cc3 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/service-plugins.html @@ -0,0 +1,19 @@ + + +CordaPluginRegistry.servicePlugins - + + + +com.r3corda.core.node / CordaPluginRegistry / servicePlugins
+
+

servicePlugins

+ +open val servicePlugins: List<Class<*>>
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/static-serve-dirs.html b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/static-serve-dirs.html new file mode 100644 index 0000000000..a6d0d4c898 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/static-serve-dirs.html @@ -0,0 +1,18 @@ + + +CordaPluginRegistry.staticServeDirs - + + + +com.r3corda.core.node / CordaPluginRegistry / staticServeDirs
+
+

staticServeDirs

+ +open val staticServeDirs: Map<String, String>
+

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/web-apis.html b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/web-apis.html index 400231f019..bad42f2542 100644 --- a/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/web-apis.html +++ b/docs/build/html/api/com.r3corda.core.node/-corda-plugin-registry/web-apis.html @@ -8,10 +8,10 @@

webApis

-abstract val webApis: List<Class<*>>
+open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. -These are listed as Class<*>, because they will be instantiated inside an AttachmentClassLoader so that subsequent protocols, contracts, etc -will be running in the appropriate isolated context.

+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.



diff --git a/docs/build/html/api/com.r3corda.core.node/index.html b/docs/build/html/api/com.r3corda.core.node/index.html index 97902dddf2..4f819d6249 100644 --- a/docs/build/html/api/com.r3corda.core.node/index.html +++ b/docs/build/html/api/com.r3corda.core.node/index.html @@ -31,7 +31,7 @@ file paths.

CordaPluginRegistry -interface CordaPluginRegistry

Implement this interface on a class advertised in a META-INF/services/com.r3corda.core.node.CordaPluginRegistry file +abstract class CordaPluginRegistry

Implement this interface on a class advertised in a META-INF/services/com.r3corda.core.node.CordaPluginRegistry file to extend a Corda node with additional application services.

diff --git a/docs/build/html/api/com.r3corda.core.serialization/-singleton-serialize-as-token/index.html b/docs/build/html/api/com.r3corda.core.serialization/-singleton-serialize-as-token/index.html index 7c3ef75306..0a5ba3f22f 100644 --- a/docs/build/html/api/com.r3corda.core.serialization/-singleton-serialize-as-token/index.html +++ b/docs/build/html/api/com.r3corda.core.serialization/-singleton-serialize-as-token/index.html @@ -41,6 +41,14 @@ to indicate which instance the token is a serialized form of.

+AbstractNode + +abstract class AbstractNode : SingletonSerializeAsToken

A base node implementation that can be customised either for production (with real implementations that do real +I/O), or a mock implementation suitable for unit test environments.

+ + + + AbstractNodeService abstract class AbstractNodeService : SingletonSerializeAsToken

Abstract superclass for services that a node can host, which provides helper functions.

@@ -50,7 +58,7 @@ to indicate which instance the token is a serialized form of.

ArtemisMessagingService -class ArtemisMessagingService : SingletonSerializeAsToken, MessagingService

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. +class ArtemisMessagingService : SingletonSerializeAsToken, MessagingServiceInternal

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate with each other using an Artemis specific protocol, but it supports other protocols like AMQP/1.0 as well for interop.

@@ -74,7 +82,7 @@ as well for interop.

InMemoryMessaging -inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingService

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage +inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingServiceInternal

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience when all entities on the network are being simulated in-process.

diff --git a/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e.html b/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e.html new file mode 100644 index 0000000000..53d2e95fac --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e.html @@ -0,0 +1,15 @@ + + +CHARLIE - + + + +com.r3corda.core.testing / CHARLIE
+
+

CHARLIE

+ +val CHARLIE: Party
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-k-e-y.html b/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-k-e-y.html new file mode 100644 index 0000000000..7b7aaefb61 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-k-e-y.html @@ -0,0 +1,15 @@ + + +CHARLIE_KEY - + + + +com.r3corda.core.testing / CHARLIE_KEY
+
+

CHARLIE_KEY

+ +val CHARLIE_KEY: KeyPair
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-p-u-b-k-e-y.html b/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-p-u-b-k-e-y.html new file mode 100644 index 0000000000..007be9e476 --- /dev/null +++ b/docs/build/html/api/com.r3corda.core.testing/-c-h-a-r-l-i-e_-p-u-b-k-e-y.html @@ -0,0 +1,15 @@ + + +CHARLIE_PUBKEY - + + + +com.r3corda.core.testing / CHARLIE_PUBKEY
+
+

CHARLIE_PUBKEY

+ +val CHARLIE_PUBKEY: PublicKey
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.core.testing/index.html b/docs/build/html/api/com.r3corda.core.testing/index.html index 4108e6a928..f48bf808a8 100644 --- a/docs/build/html/api/com.r3corda.core.testing/index.html +++ b/docs/build/html/api/com.r3corda.core.testing/index.html @@ -166,6 +166,24 @@ that transactions corresponding to input states are not verified. Use CHARLIE + +val CHARLIE: Party + + + +CHARLIE_KEY + +val CHARLIE_KEY: KeyPair + + + +CHARLIE_PUBKEY + +val CHARLIE_PUBKEY: PublicKey + + + DUMMY_KEY_1 val DUMMY_KEY_1: KeyPair diff --git a/docs/build/html/api/com.r3corda.core.utilities/-progress-tracker/-step/index.html b/docs/build/html/api/com.r3corda.core.utilities/-progress-tracker/-step/index.html index 2034302798..4651edb188 100644 --- a/docs/build/html/api/com.r3corda.core.utilities/-progress-tracker/-step/index.html +++ b/docs/build/html/api/com.r3corda.core.utilities/-progress-tracker/-step/index.html @@ -86,7 +86,7 @@ -DEALING +DEALING object DEALING : Step @@ -140,7 +140,7 @@ -RECEIVED +RECEIVED object RECEIVED : Step diff --git a/docs/build/html/api/com.r3corda.core/log-elapsed-time.html b/docs/build/html/api/com.r3corda.core/log-elapsed-time.html index 719478fb49..7b538ba17a 100644 --- a/docs/build/html/api/com.r3corda.core/log-elapsed-time.html +++ b/docs/build/html/api/com.r3corda.core/log-elapsed-time.html @@ -8,7 +8,7 @@

logElapsedTime

-inline fun <T> logElapsedTime(label: String, logger: <ERROR CLASS>? = null, body: () -> T): T
+fun <T> logElapsedTime(label: String, logger: <ERROR CLASS>? = null, body: () -> T): T


diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/-init-.html new file mode 100644 index 0000000000..a43dfa7170 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/-init-.html @@ -0,0 +1,14 @@ + + +AutoOfferProtocol.Plugin.<init> - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Plugin / <init>
+
+

<init>

+Plugin()
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/index.html new file mode 100644 index 0000000000..2a19eb3959 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/index.html @@ -0,0 +1,74 @@ + + +AutoOfferProtocol.Plugin - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()
+

Properties

+ + + + + + + +
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + + + + + +
+requiredProtocols +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/service-plugins.html new file mode 100644 index 0000000000..56867dba16 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +AutoOfferProtocol.Plugin.servicePlugins - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-requester/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-requester/index.html index 9060b40041..f9729f1cea 100644 --- a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-requester/index.html +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-requester/index.html @@ -120,8 +120,8 @@ access this lazily or from inside receive -fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/-init-.html new file mode 100644 index 0000000000..3b9e02b4ea --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/-init-.html @@ -0,0 +1,14 @@ + + +AutoOfferProtocol.Service.Callback.<init> - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / Callback / <init>
+
+

<init>

+Callback(success: (SignedTransaction) -> Unit)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/index.html new file mode 100644 index 0000000000..2bfd3e7bb1 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/index.html @@ -0,0 +1,53 @@ + + +AutoOfferProtocol.Service.Callback - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / Callback
+
+

Callback

+class Callback
+
+
+

Constructors

+ + + + + + + +
+<init> +Callback(success: (SignedTransaction) -> Unit)
+

Properties

+ + + + + + + +
+success +val success: (SignedTransaction) -> Unit
+

Functions

+ + + + + + + + + + + +
+onFailure +fun onFailure(t: Throwable?): Unit
+onSuccess +fun onSuccess(st: SignedTransaction?): Unit
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-failure.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-failure.html new file mode 100644 index 0000000000..df8cb3df67 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-failure.html @@ -0,0 +1,15 @@ + + +AutoOfferProtocol.Service.Callback.onFailure - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / Callback / onFailure
+
+

onFailure

+ +fun onFailure(t: Throwable?): Unit
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-success.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-success.html new file mode 100644 index 0000000000..032586ebf4 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/on-success.html @@ -0,0 +1,15 @@ + + +AutoOfferProtocol.Service.Callback.onSuccess - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / Callback / onSuccess
+
+

onSuccess

+ +fun onSuccess(st: SignedTransaction?): Unit
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/success.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/success.html new file mode 100644 index 0000000000..522dbad34d --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-callback/success.html @@ -0,0 +1,15 @@ + + +AutoOfferProtocol.Service.Callback.success - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / Callback / success
+
+

success

+ +val success: (SignedTransaction) -> Unit
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/child-progress-tracker.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/child-progress-tracker.html new file mode 100644 index 0000000000..fed56b91fc --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/child-progress-tracker.html @@ -0,0 +1,16 @@ + + +AutoOfferProtocol.Service.DEALING.childProgressTracker - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / DEALING / childProgressTracker
+
+

childProgressTracker

+ +fun childProgressTracker(): ProgressTracker
+Overrides Step.childProgressTracker
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/index.html new file mode 100644 index 0000000000..3e8823c79d --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-d-e-a-l-i-n-g/index.html @@ -0,0 +1,42 @@ + + +AutoOfferProtocol.Service.DEALING - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / DEALING
+
+

DEALING

+object DEALING : Step
+
+
+

Inherited Properties

+ + + + + + + + + + + +
+changes +open val changes: <ERROR CLASS><Change>
+label +open val label: String
+

Functions

+ + + + + + + +
+childProgressTracker +fun childProgressTracker(): ProgressTracker
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-init-.html new file mode 100644 index 0000000000..f726f6db58 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-init-.html @@ -0,0 +1,14 @@ + + +AutoOfferProtocol.Service.<init> - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / <init>
+
+

<init>

+Service(services: ServiceHubInternal)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-r-e-c-e-i-v-e-d.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-r-e-c-e-i-v-e-d.html new file mode 100644 index 0000000000..0a4b865b79 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/-r-e-c-e-i-v-e-d.html @@ -0,0 +1,42 @@ + + +AutoOfferProtocol.Service.RECEIVED - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / RECEIVED
+
+

RECEIVED

+object RECEIVED : Step
+
+
+

Inherited Properties

+ + + + + + + + + + + +
+changes +open val changes: <ERROR CLASS><Change>
+label +open val label: String
+

Inherited Functions

+ + + + + + + +
+childProgressTracker +open fun childProgressTracker(): ProgressTracker?
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/index.html new file mode 100644 index 0000000000..2581491c79 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/index.html @@ -0,0 +1,59 @@ + + +AutoOfferProtocol.Service - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service
+
+

Service

+class Service
+
+
+

Types

+ + + + + + + + + + + + + + + +
+Callback +class Callback
+DEALING +object DEALING : Step
+RECEIVED +object RECEIVED : Step
+

Constructors

+ + + + + + + +
+<init> +Service(services: ServiceHubInternal)
+

Functions

+ + + + + + + +
+tracker +fun tracker(): ProgressTracker
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/tracker.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/tracker.html new file mode 100644 index 0000000000..6b32ed50bf --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/-service/tracker.html @@ -0,0 +1,15 @@ + + +AutoOfferProtocol.Service.tracker - + + + +com.r3corda.demos.protocols / AutoOfferProtocol / Service / tracker
+
+

tracker

+ +fun tracker(): ProgressTracker
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/index.html index 2a63363940..46fc0ac9bf 100644 --- a/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/index.html +++ b/docs/build/html/api/com.r3corda.demos.protocols/-auto-offer-protocol/index.html @@ -27,9 +27,9 @@ or the protocol would have to reach out to external systems (or users) to verify -Handler +Plugin -object Handler +class Plugin : CordaPluginRegistry @@ -37,6 +37,12 @@ or the protocol would have to reach out to external systems (or users) to verify class Requester : ProtocolLogic<SignedTransaction> + + +Service + +class Service +

Properties

diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/-init-.html new file mode 100644 index 0000000000..049a26f02e --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/-init-.html @@ -0,0 +1,14 @@ + + +ExitServerProtocol.Plugin.<init> - + + + +com.r3corda.demos.protocols / ExitServerProtocol / Plugin / <init>
+
+

<init>

+Plugin()
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/index.html new file mode 100644 index 0000000000..992f90dc92 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/index.html @@ -0,0 +1,74 @@ + + +ExitServerProtocol.Plugin - + + + +com.r3corda.demos.protocols / ExitServerProtocol / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()
+

Properties

+ + + + + + + +
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + + + + + +
+requiredProtocols +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/service-plugins.html new file mode 100644 index 0000000000..968a7fb8a7 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +ExitServerProtocol.Plugin.servicePlugins - + + + +com.r3corda.demos.protocols / ExitServerProtocol / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/-init-.html new file mode 100644 index 0000000000..ba1fd7b454 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/-init-.html @@ -0,0 +1,14 @@ + + +ExitServerProtocol.Service.<init> - + + + +com.r3corda.demos.protocols / ExitServerProtocol / Service / <init>
+
+

<init>

+Service(services: ServiceHubInternal)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/index.html new file mode 100644 index 0000000000..1f3ea7ef49 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/-service/index.html @@ -0,0 +1,25 @@ + + +ExitServerProtocol.Service - + + + +com.r3corda.demos.protocols / ExitServerProtocol / Service
+
+

Service

+class Service
+
+
+

Constructors

+ + + + + + + +
+<init> +Service(services: ServiceHubInternal)
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/index.html index 3cca97e35f..d0b2d97793 100644 --- a/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/index.html +++ b/docs/build/html/api/com.r3corda.demos.protocols/-exit-server-protocol/index.html @@ -29,9 +29,15 @@ we do not support coercing numeric types in the reflective search for matching c -Handler +Plugin -object Handler +class Plugin : CordaPluginRegistry + + + +Service + +class Service diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/-init-.html new file mode 100644 index 0000000000..69d7b073fc --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/-init-.html @@ -0,0 +1,14 @@ + + +UpdateBusinessDayProtocol.Plugin.<init> - + + + +com.r3corda.demos.protocols / UpdateBusinessDayProtocol / Plugin / <init>
+
+

<init>

+Plugin()
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/index.html new file mode 100644 index 0000000000..5a6a1d03ea --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/index.html @@ -0,0 +1,74 @@ + + +UpdateBusinessDayProtocol.Plugin - + + + +com.r3corda.demos.protocols / UpdateBusinessDayProtocol / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()
+

Properties

+ + + + + + + +
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + + + + + +
+requiredProtocols +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/service-plugins.html new file mode 100644 index 0000000000..129bcde626 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +UpdateBusinessDayProtocol.Plugin.servicePlugins - + + + +com.r3corda.demos.protocols / UpdateBusinessDayProtocol / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/-init-.html b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/-init-.html new file mode 100644 index 0000000000..186fb6f504 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/-init-.html @@ -0,0 +1,14 @@ + + +UpdateBusinessDayProtocol.Service.<init> - + + + +com.r3corda.demos.protocols / UpdateBusinessDayProtocol / Service / <init>
+
+

<init>

+Service(services: ServiceHubInternal)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/index.html new file mode 100644 index 0000000000..2e9fa8b214 --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/-service/index.html @@ -0,0 +1,25 @@ + + +UpdateBusinessDayProtocol.Service - + + + +com.r3corda.demos.protocols / UpdateBusinessDayProtocol / Service
+
+

Service

+class Service
+
+
+

Constructors

+ + + + + + + +
+<init> +Service(services: ServiceHubInternal)
+ + diff --git a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/index.html b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/index.html index 20b6ded6ab..bc1f14c358 100644 --- a/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/index.html +++ b/docs/build/html/api/com.r3corda.demos.protocols/-update-business-day-protocol/index.html @@ -22,9 +22,15 @@ -Handler +Plugin -object Handler +class Plugin : CordaPluginRegistry + + + +Service + +class Service diff --git a/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/index.html b/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/index.html index a10f81556e..2292da8061 100644 --- a/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/index.html +++ b/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/index.html @@ -37,11 +37,35 @@ This is used to extend the white listed protocols that can be initiated from the +staticServeDirs + +val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+ + + + webApis val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. -These are listed as Class<*>, because they will be instantiated inside an AttachmentClassLoader so that subsequent protocols, contracts, etc -will be running in the appropriate isolated context.

+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+ + + + +

Inherited Properties

+ + + + + diff --git a/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/static-serve-dirs.html b/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/static-serve-dirs.html new file mode 100644 index 0000000000..5b44aecc7f --- /dev/null +++ b/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/static-serve-dirs.html @@ -0,0 +1,19 @@ + + +IRSDemoPluginRegistry.staticServeDirs - + + + +com.r3corda.demos / IRSDemoPluginRegistry / staticServeDirs
+
+

staticServeDirs

+ +val staticServeDirs: Map<String, String>
+Overrides CordaPluginRegistry.staticServeDirs
+

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/web-apis.html b/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/web-apis.html index f883df3dc3..2dad9d6182 100644 --- a/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/web-apis.html +++ b/docs/build/html/api/com.r3corda.demos/-i-r-s-demo-plugin-registry/web-apis.html @@ -11,8 +11,8 @@ val webApis: List<Class<*>>
Overrides CordaPluginRegistry.webApis

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. -These are listed as Class<*>, because they will be instantiated inside an AttachmentClassLoader so that subsequent protocols, contracts, etc -will be running in the appropriate isolated context.

+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.



diff --git a/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/index.html b/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/index.html index 3002b75248..f9cde65b62 100644 --- a/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/index.html +++ b/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/index.html @@ -97,6 +97,12 @@ + + + + @@ -127,12 +133,6 @@ - - - - @@ -147,7 +147,13 @@ +lateinit var net: MessagingServiceInternal + + + + +open fun makeMessagingService(): MessagingServiceInternal + + + + @@ -309,12 +322,6 @@ - - - - diff --git a/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/make-messaging-service.html b/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/make-messaging-service.html index 58ddb30ad3..48e9376f07 100644 --- a/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/make-messaging-service.html +++ b/docs/build/html/api/com.r3corda.node.internal.testing/-mock-network/-mock-node/make-messaging-service.html @@ -8,7 +8,7 @@

makeMessagingService

-protected open fun makeMessagingService(): MessagingService
+protected open fun makeMessagingService(): MessagingServiceInternal
Overrides AbstractNode.makeMessagingService


diff --git a/docs/build/html/api/com.r3corda.node.internal.testing/-simulation/-simulated-node/index.html b/docs/build/html/api/com.r3corda.node.internal.testing/-simulation/-simulated-node/index.html index 58566814c3..b3ebb83251 100644 --- a/docs/build/html/api/com.r3corda.node.internal.testing/-simulation/-simulated-node/index.html +++ b/docs/build/html/api/com.r3corda.node.internal.testing/-simulation/-simulated-node/index.html @@ -92,7 +92,7 @@ +open fun makeMessagingService(): MessagingServiceInternal + + + + @@ -90,12 +100,6 @@ I/O), or a mock implementation suitable for unit test environments.

- - - - @@ -116,7 +120,13 @@ I/O), or a mock implementation suitable for unit test environments.

+lateinit var net: MessagingServiceInternal + + + + + + + + @@ -254,15 +271,9 @@ I/O), or a mock implementation suitable for unit test environments.

- - - - +abstract fun makeMessagingService(): MessagingServiceInternal
+servicePlugins +open val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+customServices +val customServices: ArrayList<Any>
dir val dir: Path
-interestRatesService -lateinit var interestRatesService: Service
isPreviousCheckpointsPresent var isPreviousCheckpointsPresent: Boolean net -lateinit var net: MessagingService
+netMapCache +lateinit var netMapCache: NetworkMapCache
@@ -257,7 +263,7 @@ makeMessagingService -open fun makeMessagingService(): MessagingService
@@ -297,6 +303,13 @@
+findService +fun <T : Any> findService(): <ERROR CLASS>

Locates and returns a service of the given type if loaded, or throws an exception if not found.

+
initialiseStorageService open fun initialiseStorageService(dir: Path): <ERROR CLASS><TxWritableStorageService, CheckpointStorage>
-makeInterestRatesOracleService -open fun makeInterestRatesOracleService(): Unit
makeNetworkMapService open fun makeNetworkMapService(): Unit makeMessagingService -open fun makeMessagingService(): MessagingService
diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/-init-.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/-init-.html index 2b0199a53a..9e517d7de8 100644 --- a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/-init-.html +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/-init-.html @@ -10,6 +10,10 @@ AbstractNode(dir: Path, configuration: NodeConfiguration, networkMapService: NodeInfo?, advertisedServices: Set<ServiceType>, platformClock: Clock)

A base node implementation that can be customised either for production (with real implementations that do real I/O), or a mock implementation suitable for unit test environments.

+

Marked as SingletonSerializeAsToken to prevent the invisible reference to AbstractNode in the ServiceHub accidentally +sweeping up the Node into the Kryo checkpoint serialization via any protocols holding a reference to ServiceHub.

+
+


diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/custom-services.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/custom-services.html new file mode 100644 index 0000000000..d3a558f43d --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/custom-services.html @@ -0,0 +1,15 @@ + + +AbstractNode.customServices - + + + +com.r3corda.node.internal / AbstractNode / customServices
+
+

customServices

+ +val customServices: ArrayList<Any>
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/find-service.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/find-service.html new file mode 100644 index 0000000000..3ffa9ab6a6 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/find-service.html @@ -0,0 +1,16 @@ + + +AbstractNode.findService - + + + +com.r3corda.node.internal / AbstractNode / findService
+
+

findService

+ +inline fun <reified T : Any> findService(): <ERROR CLASS>
+

Locates and returns a service of the given type if loaded, or throws an exception if not found.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/index.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/index.html index 85ac69d0a7..0640b875d4 100644 --- a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/index.html +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/index.html @@ -7,9 +7,13 @@ com.r3corda.node.internal / AbstractNode

AbstractNode

-abstract class AbstractNode
+abstract class AbstractNode : SingletonSerializeAsToken

A base node implementation that can be customised either for production (with real implementations that do real I/O), or a mock implementation suitable for unit test environments.

+

Marked as SingletonSerializeAsToken to prevent the invisible reference to AbstractNode in the ServiceHub accidentally +sweeping up the Node into the Kryo checkpoint serialization via any protocols holding a reference to ServiceHub.

+
+


Constructors

@@ -60,6 +64,12 @@ I/O), or a mock implementation suitable for unit test environments.

+customServices +val customServices: ArrayList<Any>
dir val dir: Path
-interestRatesService -lateinit var interestRatesService: Service
isPreviousCheckpointsPresent var isPreviousCheckpointsPresent: Boolean net -lateinit var net: MessagingService
+netMapCache +lateinit var netMapCache: NetworkMapCache
@@ -230,6 +240,13 @@ I/O), or a mock implementation suitable for unit test environments.

+findService +fun <T : Any> findService(): <ERROR CLASS>

Locates and returns a service of the given type if loaded, or throws an exception if not found.

+
generateKeyPair open fun generateKeyPair(): KeyPair
-makeInterestRatesOracleService -open fun makeInterestRatesOracleService(): Unit
makeMessagingService -abstract fun makeMessagingService(): MessagingService
@@ -310,6 +321,17 @@ I/O), or a mock implementation suitable for unit test environments.

+

Inherited Functions

+ + + + + + + +
+toToken +open fun toToken(context: SerializeAsTokenContext): SerializationToken

Companion Object Properties

diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/make-messaging-service.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/make-messaging-service.html index c9c25812a5..82be8aaade 100644 --- a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/make-messaging-service.html +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/make-messaging-service.html @@ -8,7 +8,7 @@

makeMessagingService

-protected abstract fun makeMessagingService(): MessagingService
+protected abstract fun makeMessagingService(): MessagingServiceInternal


diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net-map-cache.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net-map-cache.html new file mode 100644 index 0000000000..84c539670a --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net-map-cache.html @@ -0,0 +1,15 @@ + + +AbstractNode.netMapCache - + + + +com.r3corda.node.internal / AbstractNode / netMapCache
+
+

netMapCache

+ +lateinit var netMapCache: NetworkMapCache
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net.html b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net.html index 5e1dad28c0..b20231297e 100644 --- a/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net.html +++ b/docs/build/html/api/com.r3corda.node.internal/-abstract-node/net.html @@ -8,7 +8,7 @@

net

-lateinit var net: MessagingService
+lateinit var net: MessagingServiceInternal


diff --git a/docs/build/html/api/com.r3corda.node.internal/-node/index.html b/docs/build/html/api/com.r3corda.node.internal/-node/index.html index 41894a6539..55504e1cb1 100644 --- a/docs/build/html/api/com.r3corda.node.internal/-node/index.html +++ b/docs/build/html/api/com.r3corda.node.internal/-node/index.html @@ -116,6 +116,12 @@ loads important data off disk and starts listening for connections.

+ + + + @@ -146,12 +152,6 @@ loads important data off disk and starts listening for connections.

- - - - @@ -166,7 +166,13 @@ loads important data off disk and starts listening for connections.

+lateinit var net: MessagingServiceInternal + + + + +fun makeMessagingService(): MessagingServiceInternal + + + + @@ -334,12 +347,6 @@ loads important data off disk and starts listening for connections.

- - - - diff --git a/docs/build/html/api/com.r3corda.node.internal/-node/make-messaging-service.html b/docs/build/html/api/com.r3corda.node.internal/-node/make-messaging-service.html index 0b89dba4f4..9e55ac983c 100644 --- a/docs/build/html/api/com.r3corda.node.internal/-node/make-messaging-service.html +++ b/docs/build/html/api/com.r3corda.node.internal/-node/make-messaging-service.html @@ -8,7 +8,7 @@

makeMessagingService

-protected fun makeMessagingService(): MessagingService
+protected fun makeMessagingService(): MessagingServiceInternal
Overrides AbstractNode.makeMessagingService


diff --git a/docs/build/html/api/com.r3corda.node.internal/index.html b/docs/build/html/api/com.r3corda.node.internal/index.html index 2d64efa18e..4f0ffcaf58 100644 --- a/docs/build/html/api/com.r3corda.node.internal/index.html +++ b/docs/build/html/api/com.r3corda.node.internal/index.html @@ -20,7 +20,7 @@ diff --git a/docs/build/html/api/com.r3corda.node.services.api/-abstract-node-service/index.html b/docs/build/html/api/com.r3corda.node.services.api/-abstract-node-service/index.html index b8bc2a0f11..7d0e3c76ac 100644 --- a/docs/build/html/api/com.r3corda.node.services.api/-abstract-node-service/index.html +++ b/docs/build/html/api/com.r3corda.node.services.api/-abstract-node-service/index.html @@ -73,28 +73,12 @@ acknowledgement response with no content, use com.r3corda.core.messa - - - - - - - - + + + + + + + +
+customServices +val customServices: ArrayList<Any>
dir val dir: Path
-interestRatesService -lateinit var interestRatesService: Service
isPreviousCheckpointsPresent var isPreviousCheckpointsPresent: Boolean net -lateinit var net: MessagingService
+netMapCache +lateinit var netMapCache: NetworkMapCache
@@ -258,7 +264,7 @@ loads important data off disk and starts listening for connections.

makeMessagingService -fun makeMessagingService(): MessagingService
@@ -310,6 +316,13 @@ loads important data off disk and starts listening for connections.

+findService +fun <T : Any> findService(): <ERROR CLASS>

Locates and returns a service of the given type if loaded, or throws an exception if not found.

+
generateKeyPair open fun generateKeyPair(): KeyPair
-makeInterestRatesOracleService -open fun makeInterestRatesOracleService(): Unit
makeNetworkMapService open fun makeNetworkMapService(): Unit AbstractNode -abstract class AbstractNode

A base node implementation that can be customised either for production (with real implementations that do real +abstract class AbstractNode : SingletonSerializeAsToken

A base node implementation that can be customised either for production (with real implementations that do real I/O), or a mock implementation suitable for unit test environments.

-DataVendingService -class DataVendingService : AbstractNodeService

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple -glue that sits between the network layer and the database layer.

-
InMemoryNetworkMapService class InMemoryNetworkMapService : NetworkMapService, AbstractNodeService
-NotaryChangeService -class NotaryChangeService : AbstractNodeService

A service that monitors the network for requests for changing the notary of a state, -and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

-
NotaryService abstract class NotaryService : AbstractNodeService

A Notary service acts as the final signer of a transaction ensuring two things:

@@ -107,6 +91,22 @@ and immediately runs the class Service : AcceptsFileUpload, AbstractNodeService

The Service that wraps Oracle and handles messages/network interaction/request scrubbing.

+Service +class Service : AbstractNodeService

A service that monitors the network for requests for changing the notary of a state, +and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

+
+Service +class Service : AbstractNodeService

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple +glue that sits between the network layer and the database layer.

+
diff --git a/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/index.html b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/index.html new file mode 100644 index 0000000000..66d6ca6eb1 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/index.html @@ -0,0 +1,44 @@ + + +MessagingServiceBuilder - + + + +com.r3corda.node.services.api / MessagingServiceBuilder
+
+

MessagingServiceBuilder

+interface MessagingServiceBuilder<out T : MessagingServiceInternal>
+

This class lets you start up a MessagingService. Its purpose is to stop you from getting access to the methods +on the messaging service interface until you have successfully started up the system. One of these objects should +be the only way to obtain a reference to a MessagingService. Startup may be a slow process: some implementations +may let you cast the returned future to an object that lets you get status info.

+

A specific implementation of the controller class will have extra features that let you customise it before starting +it up.

+
+
+
+
+

Functions

+ + + + + + + +
+start +abstract fun start(): <ERROR CLASS><out T>
+

Inheritors

+ + + + + + + +
+Builder +inner class Builder : MessagingServiceBuilder<InMemoryMessaging>
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/start.html b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/start.html new file mode 100644 index 0000000000..ae9b565b17 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-builder/start.html @@ -0,0 +1,15 @@ + + +MessagingServiceBuilder.start - + + + +com.r3corda.node.services.api / MessagingServiceBuilder / start
+
+

start

+ +abstract fun start(): <ERROR CLASS><out T>
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/index.html b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/index.html new file mode 100644 index 0000000000..7f8c85662d --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/index.html @@ -0,0 +1,133 @@ + + +MessagingServiceInternal - + + + +com.r3corda.node.services.api / MessagingServiceInternal
+
+

MessagingServiceInternal

+interface MessagingServiceInternal : MessagingService
+
+
+

Inherited Properties

+ + + + + + + +
+myAddress +abstract val myAddress: SingleMessageRecipient

Returns an address that refers to this node.

+
+

Functions

+ + + + + + + + + + + +
+registerTrustedAddress +abstract fun registerTrustedAddress(address: SingleMessageRecipient): Unit
+stop +abstract fun stop(): Unit
+

Inherited Functions

+ + + + + + + + + + + + + + + + + + + +
+addMessageHandler +abstract fun addMessageHandler(topic: String = "", sessionID: Long = DEFAULT_SESSION_ID, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given +executor.

+abstract fun addMessageHandler(topicSession: TopicSession, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

+
+createMessage +abstract fun createMessage(topic: String, sessionID: Long = DEFAULT_SESSION_ID, data: ByteArray): Message
+abstract fun createMessage(topicSession: TopicSession, data: ByteArray): Message

Returns an initialised Message with the current time, etc, already filled in.

+
+removeMessageHandler +abstract fun removeMessageHandler(registration: MessageHandlerRegistration): Unit

Removes a handler given the object returned from addMessageHandler. The callback will no longer be invoked once +this method has returned, although executions that are currently in flight will not be interrupted.

+
+send +abstract fun send(message: Message, target: MessageRecipients): Unit

Sends a message to the given receiver. The details of how receivers are identified is up to the messaging +implementation: the type system provides an opaque high level view, with more fine grained control being +available via type casting. Once this function returns the message is queued for delivery but not necessarily +delivered: if the recipients are offline then the message could be queued hours or days later.

+
+

Extension Functions

+ + + + + + + + + + + +
+runOnNextMessage +fun MessagingService.runOnNextMessage(topic: String, sessionID: Long, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session ID that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler, as the handler is +automatically deregistered before the callback runs.

+fun MessagingService.runOnNextMessage(topicSession: TopicSession, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler.

+
+send +fun MessagingService.send(topic: String, sessionID: Long, payload: Any, to: MessageRecipients): Unit
+fun MessagingService.send(topicSession: TopicSession, payload: Any, to: MessageRecipients): Unit
+

Inheritors

+ + + + + + + + + + + +
+ArtemisMessagingService +class ArtemisMessagingService : SingletonSerializeAsToken, MessagingServiceInternal

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. +Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate +with each other using an Artemis specific protocol, but it supports other protocols like AMQP/1.0 +as well for interop.

+
+InMemoryMessaging +inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingServiceInternal

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage +system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience +when all entities on the network are being simulated in-process.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/register-trusted-address.html b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/register-trusted-address.html new file mode 100644 index 0000000000..3b5671969f --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/register-trusted-address.html @@ -0,0 +1,15 @@ + + +MessagingServiceInternal.registerTrustedAddress - + + + +com.r3corda.node.services.api / MessagingServiceInternal / registerTrustedAddress
+
+

registerTrustedAddress

+ +abstract fun registerTrustedAddress(address: SingleMessageRecipient): Unit
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/stop.html b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/stop.html new file mode 100644 index 0000000000..76191f7ca2 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.api/-messaging-service-internal/stop.html @@ -0,0 +1,15 @@ + + +MessagingServiceInternal.stop - + + + +com.r3corda.node.services.api / MessagingServiceInternal / stop
+
+

stop

+ +abstract fun stop(): Unit
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/index.html b/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/index.html index 325f63a40e..c18982248f 100644 --- a/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/index.html +++ b/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/index.html @@ -32,6 +32,12 @@ +networkService + +abstract val networkService: MessagingServiceInternal + + + protocolLogicRefFactory abstract val protocolLogicRefFactory: ProtocolLogicRefFactory @@ -67,12 +73,6 @@ -networkService - -abstract val networkService: MessagingService - - - schedulerService abstract val schedulerService: SchedulerService diff --git a/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/network-service.html b/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/network-service.html new file mode 100644 index 0000000000..8fb45b8c41 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.api/-service-hub-internal/network-service.html @@ -0,0 +1,16 @@ + + +ServiceHubInternal.networkService - + + + +com.r3corda.node.services.api / ServiceHubInternal / networkService
+
+

networkService

+ +abstract val networkService: MessagingServiceInternal
+Overrides ServiceHub.networkService
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.api/index.html b/docs/build/html/api/com.r3corda.node.services.api/index.html index 936dc89ec4..03aed9e35c 100644 --- a/docs/build/html/api/com.r3corda.node.services.api/index.html +++ b/docs/build/html/api/com.r3corda.node.services.api/index.html @@ -39,6 +39,22 @@ +MessagingServiceBuilder + +interface MessagingServiceBuilder<out T : MessagingServiceInternal>

This class lets you start up a MessagingService. Its purpose is to stop you from getting access to the methods +on the messaging service interface until you have successfully started up the system. One of these objects should +be the only way to obtain a reference to a MessagingService. Startup may be a slow process: some implementations +may let you cast the returned future to an object that lets you get status info.

+ + + + +MessagingServiceInternal + +interface MessagingServiceInternal : MessagingService + + + MonitoringService class MonitoringService : SingletonSerializeAsToken

Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes. diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/-init-.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/-init-.html new file mode 100644 index 0000000000..20811fe13a --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/-init-.html @@ -0,0 +1,14 @@ + + +FixingSessionInitiation.Plugin.<init> - + + + +com.r3corda.node.services.clientapi / FixingSessionInitiation / Plugin / <init>
+
+

<init>

+Plugin()
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/index.html new file mode 100644 index 0000000000..09c3d00a7a --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/index.html @@ -0,0 +1,74 @@ + + +FixingSessionInitiation.Plugin - + + + +com.r3corda.node.services.clientapi / FixingSessionInitiation / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()
+

Properties

+ + + + + + + +
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + + + + + +
+requiredProtocols +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/service-plugins.html new file mode 100644 index 0000000000..69a14cbcd0 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +FixingSessionInitiation.Plugin.servicePlugins - + + + +com.r3corda.node.services.clientapi / FixingSessionInitiation / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/-init-.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/-init-.html new file mode 100644 index 0000000000..e4c5df4b51 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/-init-.html @@ -0,0 +1,14 @@ + + +FixingSessionInitiation.Service.<init> - + + + +com.r3corda.node.services.clientapi / FixingSessionInitiation / Service / <init>
+
+

<init>

+Service(services: ServiceHubInternal)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/index.html new file mode 100644 index 0000000000..5b93080ebe --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/-service/index.html @@ -0,0 +1,25 @@ + + +FixingSessionInitiation.Service - + + + +com.r3corda.node.services.clientapi / FixingSessionInitiation / Service
+
+

Service

+class Service
+
+
+

Constructors

+ + + + + + + +
+<init> +Service(services: ServiceHubInternal)
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/index.html new file mode 100644 index 0000000000..a2b3efd882 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-fixing-session-initiation/index.html @@ -0,0 +1,36 @@ + + +FixingSessionInitiation - + + + +com.r3corda.node.services.clientapi / FixingSessionInitiation
+
+

FixingSessionInitiation

+object FixingSessionInitiation
+

This is a temporary handler required for establishing random sessionIDs for the Fixer and Floater as part of +running scheduled fixings for the InterestRateSwap contract.

+

TODO: This will be replaced with the automatic sessionID / session setup work.

+
+
+
+
+

Types

+ + + + + + + + + + + +
+Plugin +class Plugin : CordaPluginRegistry
+Service +class Service
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/-init-.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/-init-.html new file mode 100644 index 0000000000..5c63a6c385 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/-init-.html @@ -0,0 +1,15 @@ + + +NodeInterestRates.Plugin.<init> - + + + +com.r3corda.node.services.clientapi / NodeInterestRates / Plugin / <init>
+
+

<init>

+Plugin()
+

Register the protocol that is used with the Fixing integration tests.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/index.html new file mode 100644 index 0000000000..b14b25b30a --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/index.html @@ -0,0 +1,76 @@ + + +NodeInterestRates.Plugin - + + + +com.r3corda.node.services.clientapi / NodeInterestRates / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+

Register the protocol that is used with the Fixing integration tests.

+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()

Register the protocol that is used with the Fixing integration tests.

+
+

Properties

+ + + + + + + + + + + +
+requiredProtocols +val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + +
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/required-protocols.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/required-protocols.html new file mode 100644 index 0000000000..f0ce43bf63 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/required-protocols.html @@ -0,0 +1,21 @@ + + +NodeInterestRates.Plugin.requiredProtocols - + + + +com.r3corda.node.services.clientapi / NodeInterestRates / Plugin / requiredProtocols
+
+

requiredProtocols

+ +val requiredProtocols: Map<String, Set<String>>
+Overrides CordaPluginRegistry.requiredProtocols
+

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/service-plugins.html new file mode 100644 index 0000000000..8a3160374e --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +NodeInterestRates.Plugin.servicePlugins - + + + +com.r3corda.node.services.clientapi / NodeInterestRates / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/-init-.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/-init-.html index 5f1ef1b831..c7cd92fb7d 100644 --- a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/-init-.html +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/-init-.html @@ -7,7 +7,7 @@ com.r3corda.node.services.clientapi / NodeInterestRates / Service / <init>

<init>

-Service(node: AbstractNode)
+Service(services: ServiceHubInternal)

The Service that wraps Oracle and handles messages/network interaction/request scrubbing.



diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/index.html index 6bf9ce729c..c2f332d9ec 100644 --- a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/index.html +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/-service/index.html @@ -11,18 +11,6 @@

The Service that wraps Oracle and handles messages/network interaction/request scrubbing.



-

Types

- - - - - - - -
-FixingServicePlugin -class FixingServicePlugin : CordaPluginRegistry

Register the protocol that is used with the Fixing integration tests.

-

Constructors

@@ -30,7 +18,7 @@ diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/index.html index e0c26024ce..8ea120fe3d 100644 --- a/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/index.html +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/-node-interest-rates/index.html @@ -45,6 +45,13 @@ Interpolates missing values using the provided interpolation mechanism.

+ + + + + + + + @@ -40,9 +40,9 @@ +topicSession +val topicSession: TopicSession
<init> -Service(node: AbstractNode)

The Service that wraps Oracle and handles messages/network interaction/request scrubbing.

+Service(services: ServiceHubInternal)

The Service that wraps Oracle and handles messages/network interaction/request scrubbing.

+Plugin +class Plugin : CordaPluginRegistry

Register the protocol that is used with the Fixing integration tests.

+
Service class Service : AcceptsFileUpload, AbstractNodeService

The Service that wraps Oracle and handles messages/network interaction/request scrubbing.

diff --git a/docs/build/html/api/com.r3corda.node.services.clientapi/index.html b/docs/build/html/api/com.r3corda.node.services.clientapi/index.html index 617ee5628e..f37479383f 100644 --- a/docs/build/html/api/com.r3corda.node.services.clientapi/index.html +++ b/docs/build/html/api/com.r3corda.node.services.clientapi/index.html @@ -12,6 +12,14 @@
+FixingSessionInitiation +object FixingSessionInitiation

This is a temporary handler required for establishing random sessionIDs for the Fixer and Floater as part of +running scheduled fixings for the InterestRateSwap contract.

+
NodeInterestRates object NodeInterestRates

An interest rates service is an oracle that signs transactions which contain embedded assertions about an interest diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/-init-.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/-init-.html index db1c4826ae..cecaad77d5 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/-init-.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/-init-.html @@ -7,7 +7,7 @@ com.r3corda.node.services.messaging / ArtemisMessagingService / Handler / <init>

<init>

-Handler(executor: Executor?, topic: String, callback: (Message, MessageHandlerRegistration) -> Unit)
+Handler(executor: Executor?, topicSession: TopicSession, callback: (Message, MessageHandlerRegistration) -> Unit)

A registration to handle messages of different types



diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/index.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/index.html index 6f7f61451e..a0b48f9ffe 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/index.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/index.html @@ -18,7 +18,7 @@
<init> -Handler(executor: Executor?, topic: String, callback: (Message, MessageHandlerRegistration) -> Unit)

A registration to handle messages of different types

+Handler(executor: Executor?, topicSession: TopicSession, callback: (Message, MessageHandlerRegistration) -> Unit)

A registration to handle messages of different types

-topic -val topic: String
diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/topic-session.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/topic-session.html new file mode 100644 index 0000000000..a0567c1689 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-handler/topic-session.html @@ -0,0 +1,15 @@ + + +ArtemisMessagingService.Handler.topicSession - + + + +com.r3corda.node.services.messaging / ArtemisMessagingService / Handler / topicSession
+
+

topicSession

+ +val topicSession: TopicSession
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html new file mode 100644 index 0000000000..a2dff740b4 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html @@ -0,0 +1,15 @@ + + +ArtemisMessagingService.SESSION_ID_PROPERTY - + + + +com.r3corda.node.services.messaging / ArtemisMessagingService / SESSION_ID_PROPERTY
+
+

SESSION_ID_PROPERTY

+ +val SESSION_ID_PROPERTY: String
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/add-message-handler.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/add-message-handler.html index 8e5dcbba7d..5babe6d2f6 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/add-message-handler.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/add-message-handler.html @@ -7,11 +7,11 @@ com.r3corda.node.services.messaging / ArtemisMessagingService / addMessageHandler

addMessageHandler

- -fun addMessageHandler(topic: String, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+ +fun addMessageHandler(topic: String, sessionID: Long, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
Overrides MessagingService.addMessageHandler

The provided function will be invoked for each received message whose topic matches the given string, on the given -executor. The topic can be the empty string to match all messages.

+executor.

If no executor is received then the callback will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.

The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler. @@ -19,6 +19,31 @@ The handle is passed to the callback as well, to avoid race conditions whereby t itself and yet addMessageHandler hasnt returned the handle yet.



+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID).
+
+ +sessionID - identifier for the session the message is part of. For services listening before +a session is established, use DEFAULT_SESSION_ID.
+
+
+ +fun addMessageHandler(topicSession: TopicSession, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+Overrides MessagingService.addMessageHandler
+

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

+

If no executor is received then the callback will run on threads provided by the messaging service, and the +callback is expected to be thread safe as a result.

+

The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler. +The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister +itself and yet addMessageHandler hasnt returned the handle yet.

+
+
+

Parameters

+ +topicSession - identifier for the topic and session to listen for messages arriving on.


diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/create-message.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/create-message.html index 2813e8a231..34f70346b6 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/create-message.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/create-message.html @@ -7,10 +7,27 @@ com.r3corda.node.services.messaging / ArtemisMessagingService / createMessage

createMessage

- -fun createMessage(topic: String, data: ByteArray): Message
+ +fun createMessage(topicSession: TopicSession, data: ByteArray): Message
Overrides MessagingService.createMessage

Returns an initialised Message with the current time, etc, already filled in.

+

Parameters

+ +topicSession - identifier for the topic and session the message is sent to.
+
+
+ +fun createMessage(topic: String, sessionID: Long, data: ByteArray): Message
+Overrides MessagingService.createMessage
+

Returns an initialised Message with the current time, etc, already filled in.

+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +Must not be blank.
+
+ +sessionID - identifier for the session the message is part of. For messages sent to services before the +construction of a session, use DEFAULT_SESSION_ID.


diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/index.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/index.html index 3fa6bf7e39..30d485fe57 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/index.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/index.html @@ -7,7 +7,7 @@ com.r3corda.node.services.messaging / ArtemisMessagingService

ArtemisMessagingService

-class ArtemisMessagingService : SingletonSerializeAsToken, MessagingService
+class ArtemisMessagingService : SingletonSerializeAsToken, MessagingServiceInternal

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate with each other using an Artemis specific protocol, but it supports other protocols like AMQP/1.0 @@ -101,8 +101,10 @@ as well for interop.

addMessageHandler -fun addMessageHandler(topic: String, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given -executor. The topic can be the empty string to match all messages.

+fun addMessageHandler(topic: String, sessionID: Long, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given +executor.

+fun addMessageHandler(topicSession: TopicSession, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

@@ -117,11 +119,18 @@ the CA certs in Node resources. Then provision KeyStores into certificates folde createMessage -fun createMessage(topic: String, data: ByteArray): Message

Returns an initialised Message with the current time, etc, already filled in.

+fun createMessage(topicSession: TopicSession, data: ByteArray): Message
+fun createMessage(topic: String, sessionID: Long, data: ByteArray): Message

Returns an initialised Message with the current time, etc, already filled in.

+registerTrustedAddress + +fun registerTrustedAddress(address: SingleMessageRecipient): Unit + + + removeMessageHandler fun removeMessageHandler(registration: MessageHandlerRegistration): Unit

Removes a handler given the object returned from addMessageHandler. The callback will no longer be invoked once @@ -168,6 +177,12 @@ delivered: if the recipients are offline then the message could be queued hours +SESSION_ID_PROPERTY + +val SESSION_ID_PROPERTY: String + + + TOPIC_PROPERTY val TOPIC_PROPERTY: String @@ -205,16 +220,21 @@ delivered: if the recipients are offline then the message could be queued hours runOnNextMessage -fun MessagingService.runOnNextMessage(topic: String = "", executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic that runs the given callback with the message and then removes itself. This -is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback doesnt -take the registration object, unlike the callback to MessagingService.addMessageHandler.

+fun MessagingService.runOnNextMessage(topic: String, sessionID: Long, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session ID that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler, as the handler is +automatically deregistered before the callback runs.

+fun MessagingService.runOnNextMessage(topicSession: TopicSession, executor: Executor? = null, callback: (Message) -> Unit): Unit

Registers a handler for the given topic and session that runs the given callback with the message and then removes +itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback +doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler.

send -fun MessagingService.send(topic: String, payload: Any, to: MessageRecipients): Unit +fun MessagingService.send(topic: String, sessionID: Long, payload: Any, to: MessageRecipients): Unit
+fun MessagingService.send(topicSession: TopicSession, payload: Any, to: MessageRecipients): Unit diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/register-trusted-address.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/register-trusted-address.html new file mode 100644 index 0000000000..8a5f6efd2a --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/register-trusted-address.html @@ -0,0 +1,16 @@ + + +ArtemisMessagingService.registerTrustedAddress - + + + +com.r3corda.node.services.messaging / ArtemisMessagingService / registerTrustedAddress
+
+

registerTrustedAddress

+ +fun registerTrustedAddress(address: SingleMessageRecipient): Unit
+Overrides MessagingServiceInternal.registerTrustedAddress
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/stop.html b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/stop.html index cba5304883..bb1f8ab698 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/stop.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/-artemis-messaging-service/stop.html @@ -9,7 +9,7 @@

stop

fun stop(): Unit
-Overrides MessagingService.stop
+Overrides MessagingServiceInternal.stop


diff --git a/docs/build/html/api/com.r3corda.node.services.messaging/index.html b/docs/build/html/api/com.r3corda.node.services.messaging/index.html index bb67940574..df0d6f6eb1 100644 --- a/docs/build/html/api/com.r3corda.node.services.messaging/index.html +++ b/docs/build/html/api/com.r3corda.node.services.messaging/index.html @@ -14,7 +14,7 @@ ArtemisMessagingService -class ArtemisMessagingService : SingletonSerializeAsToken, MessagingService

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. +class ArtemisMessagingService : SingletonSerializeAsToken, MessagingServiceInternal

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate with each other using an Artemis specific protocol, but it supports other protocols like AMQP/1.0 as well for interop.

diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/index.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/index.html index 310b19b3bf..bff436776c 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/index.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/index.html @@ -7,7 +7,7 @@ com.r3corda.node.services.network / InMemoryMessagingNetwork / Builder

Builder

-inner class Builder : MessagingServiceBuilder<InMemoryMessaging>
+inner class Builder : MessagingServiceBuilder<InMemoryMessaging>


Constructors

diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/start.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/start.html index 8251efec30..62c2ac9d91 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/start.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-builder/start.html @@ -9,7 +9,7 @@

start

fun start(): <ERROR CLASS><InMemoryMessaging>
-Overrides MessagingServiceBuilder.start
+Overrides MessagingServiceBuilder.start


diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html index 1c092d23d6..3a9cef0b3c 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html @@ -7,7 +7,7 @@ com.r3corda.node.services.network / InMemoryMessagingNetwork / InMemoryMessaging / Handler / <init>

<init>

-Handler(executor: Executor?, topic: String, callback: (Message, MessageHandlerRegistration) -> Unit)
+Handler(executor: Executor?, topicSession: TopicSession, callback: (Message, MessageHandlerRegistration) -> Unit)


diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html index 8e75be52b7..e7c6f5e56f 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html @@ -17,7 +17,7 @@ <init> -Handler(executor: Executor?, topic: String, callback: (Message, MessageHandlerRegistration) -> Unit) +Handler(executor: Executor?, topicSession: TopicSession, callback: (Message, MessageHandlerRegistration) -> Unit) @@ -38,9 +38,9 @@ -topic +topicSession -val topic: String +val topicSession: TopicSession diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/topic-session.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/topic-session.html new file mode 100644 index 0000000000..cff61bfbdf --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/-handler/topic-session.html @@ -0,0 +1,15 @@ + + +InMemoryMessagingNetwork.InMemoryMessaging.Handler.topicSession - + + + +com.r3corda.node.services.network / InMemoryMessagingNetwork / InMemoryMessaging / Handler / topicSession
+
+

topicSession

+ +val topicSession: TopicSession
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html index 42f3a110f9..89775c6010 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html @@ -7,11 +7,11 @@ com.r3corda.node.services.network / InMemoryMessagingNetwork / InMemoryMessaging / addMessageHandler

addMessageHandler

- -fun addMessageHandler(topic: String, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+ +fun addMessageHandler(topic: String, sessionID: Long, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
Overrides MessagingService.addMessageHandler

The provided function will be invoked for each received message whose topic matches the given string, on the given -executor. The topic can be the empty string to match all messages.

+executor.

If no executor is received then the callback will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.

The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler. @@ -19,6 +19,31 @@ The handle is passed to the callback as well, to avoid race conditions whereby t itself and yet addMessageHandler hasnt returned the handle yet.



+

Parameters

+ +topic - identifier for the general subject of the message, for example "platform.network_map.fetch". +The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID).
+
+ +sessionID - identifier for the session the message is part of. For services listening before +a session is established, use DEFAULT_SESSION_ID.
+
+
+ +fun addMessageHandler(topicSession: TopicSession, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+Overrides MessagingService.addMessageHandler
+

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

+

If no executor is received then the callback will run on threads provided by the messaging service, and the +callback is expected to be thread safe as a result.

+

The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler. +The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister +itself and yet addMessageHandler hasnt returned the handle yet.

+
+
+

Parameters

+ +topicSession - identifier for the topic and session to listen for messages arriving on.


diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/create-message.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/create-message.html index 34684f5958..b1dba10ab1 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/create-message.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/create-message.html @@ -7,10 +7,13 @@ com.r3corda.node.services.network / InMemoryMessagingNetwork / InMemoryMessaging / createMessage

createMessage

- -fun createMessage(topic: String, data: ByteArray): Message
+ +fun createMessage(topic: String, sessionID: Long, data: ByteArray): Message
Overrides MessagingService.createMessage
-

Returns the given (topic, data) pair as a newly created message object.

+ +fun createMessage(topicSession: TopicSession, data: ByteArray): Message
+Overrides MessagingService.createMessage
+

Returns the given (topic & session, data) pair as a newly created message object.



diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/index.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/index.html index 10f5e2569a..d24576cb0a 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/index.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/index.html @@ -7,7 +7,7 @@ com.r3corda.node.services.network / InMemoryMessagingNetwork / InMemoryMessaging

InMemoryMessaging

-inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingService
+inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingServiceInternal

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience when all entities on the network are being simulated in-process.

@@ -84,15 +84,18 @@ when all entities on the network are being simulated in-process.

addMessageHandler -fun addMessageHandler(topic: String, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given -executor. The topic can be the empty string to match all messages.

+fun addMessageHandler(topic: String, sessionID: Long, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic matches the given string, on the given +executor.

+fun addMessageHandler(topicSession: TopicSession, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration

The provided function will be invoked for each received message whose topic and session matches, on the +given executor.

createMessage -fun createMessage(topic: String, data: ByteArray): Message

Returns the given (topic, data) pair as a newly created message object.

+fun createMessage(topic: String, sessionID: Long, data: ByteArray): Message
+fun createMessage(topicSession: TopicSession, data: ByteArray): Message

Returns the given (topic & session, data) pair as a newly created message object.

@@ -106,6 +109,12 @@ result indicates whether a message was delivered or not.

+registerTrustedAddress + +fun registerTrustedAddress(address: SingleMessageRecipient): Unit + + + removeMessageHandler fun removeMessageHandler(registration: MessageHandlerRegistration): Unit

Removes a handler given the object returned from addMessageHandler. The callback will no longer be invoked once diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/register-trusted-address.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/register-trusted-address.html new file mode 100644 index 0000000000..a578d02de5 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/register-trusted-address.html @@ -0,0 +1,16 @@ + + +InMemoryMessagingNetwork.InMemoryMessaging.registerTrustedAddress - + + + +com.r3corda.node.services.network / InMemoryMessagingNetwork / InMemoryMessaging / registerTrustedAddress
+
+

registerTrustedAddress

+ +fun registerTrustedAddress(address: SingleMessageRecipient): Unit
+Overrides MessagingServiceInternal.registerTrustedAddress
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/stop.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/stop.html index d1544753de..bd8ce12090 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/stop.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/-in-memory-messaging/stop.html @@ -9,7 +9,7 @@

stop

fun stop(): Unit
-Overrides MessagingService.stop
+Overrides MessagingServiceInternal.stop


diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node-with-i-d.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node-with-i-d.html index 324b99f7c2..a692d9a696 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node-with-i-d.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node-with-i-d.html @@ -8,7 +8,7 @@

createNodeWithID

-fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>
+fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>

Creates a node at the given address: useful if you want to recreate a node to simulate a restart.

Parameters

diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node.html index 5e1cd3199b..b39b05da60 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/create-node.html @@ -8,7 +8,7 @@

createNode

-fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>
+fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>

Creates a node and returns the new object that identifies its location on the network to senders, and the InMemoryMessaging that the recipient/in-memory node uses to receive messages and send messages itself.

If manuallyPumped is set to true, then you are expected to call the InMemoryMessaging.pump method on the InMemoryMessaging diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/index.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/index.html index 63d05087ed..770421766a 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/index.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-messaging-network/index.html @@ -22,7 +22,7 @@ testing).

Builder -inner class Builder : MessagingServiceBuilder<InMemoryMessaging> +inner class Builder : MessagingServiceBuilder<InMemoryMessaging> @@ -34,7 +34,7 @@ testing).

InMemoryMessaging -inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingService

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage +inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingServiceInternal

An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience when all entities on the network are being simulated in-process.

@@ -120,7 +120,7 @@ testing).

createNode -fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>

Creates a node and returns the new object that identifies its location on the network to senders, and the +fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>

Creates a node and returns the new object that identifies its location on the network to senders, and the InMemoryMessaging that the recipient/in-memory node uses to receive messages and send messages itself.

@@ -128,7 +128,7 @@ testing).

createNodeWithID -fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>

Creates a node at the given address: useful if you want to recreate a node to simulate a restart.

+fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>

Creates a node at the given address: useful if you want to recreate a node to simulate a restart.

diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/-init-.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/-init-.html index 73dca22ade..38d5dcb250 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/-init-.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/-init-.html @@ -7,7 +7,7 @@ com.r3corda.node.services.network / InMemoryNetworkMapCache / <init>

<init>

-InMemoryNetworkMapCache()
+InMemoryNetworkMapCache(netInternal: MessagingServiceInternal?)

Extremely simple in-memory cache of the network map.



diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/index.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/index.html index cb96d38e5e..d71f14a83a 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/index.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/index.html @@ -18,7 +18,7 @@ <init> -InMemoryNetworkMapCache()

Extremely simple in-memory cache of the network map.

+InMemoryNetworkMapCache(netInternal: MessagingServiceInternal?)

Extremely simple in-memory cache of the network map.

@@ -28,6 +28,12 @@ +netInternal + +val netInternal: MessagingServiceInternal? + + + networkMapNodes open val networkMapNodes: List<NodeInfo>

A list of nodes that advertise a network map service

diff --git a/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/net-internal.html b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/net-internal.html new file mode 100644 index 0000000000..83853d22ca --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.network/-in-memory-network-map-cache/net-internal.html @@ -0,0 +1,15 @@ + + +InMemoryNetworkMapCache.netInternal - + + + +com.r3corda.node.services.network / InMemoryNetworkMapCache / netInternal
+
+

netInternal

+ +val netInternal: MessagingServiceInternal?
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.network/-mock-network-map-cache/index.html b/docs/build/html/api/com.r3corda.node.services.network/-mock-network-map-cache/index.html index f85f70c172..ca05980feb 100644 --- a/docs/build/html/api/com.r3corda.node.services.network/-mock-network-map-cache/index.html +++ b/docs/build/html/api/com.r3corda.node.services.network/-mock-network-map-cache/index.html @@ -39,6 +39,12 @@ +netInternal + +val netInternal: MessagingServiceInternal? + + + networkMapNodes open val networkMapNodes: List<NodeInfo>

A list of nodes that advertise a network map service

diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/-init-.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/-init-.html new file mode 100644 index 0000000000..3294dd006c --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/-init-.html @@ -0,0 +1,14 @@ + + +DataVending.Plugin.<init> - + + + +com.r3corda.node.services.persistence / DataVending / Plugin / <init>
+
+

<init>

+Plugin()
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/index.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/index.html new file mode 100644 index 0000000000..8b04221605 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/index.html @@ -0,0 +1,74 @@ + + +DataVending.Plugin - + + + +com.r3corda.node.services.persistence / DataVending / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()
+

Properties

+ + + + + + + +
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + + + + + +
+requiredProtocols +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/service-plugins.html new file mode 100644 index 0000000000..07b8636430 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +DataVending.Plugin.servicePlugins - + + + +com.r3corda.node.services.persistence / DataVending / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-init-.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-init-.html new file mode 100644 index 0000000000..f64e87f681 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-init-.html @@ -0,0 +1,24 @@ + + +DataVending.Service.<init> - + + + +com.r3corda.node.services.persistence / DataVending / Service / <init>
+
+

<init>

+Service(services: ServiceHubInternal)
+

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple +glue that sits between the network layer and the database layer.

+

Note that in our data model, to be able to name a thing by hash automatically gives the power to request it. There +are no access control lists. If you want to keep some data private, then you must be careful who you give its name +to, and trust that they will not pass the name onwards. If someone suspects some data might exist but does not have +its name, then the 256-bit search space theyd have to cover makes it physically impossible to enumerate, and as +such the hash of a piece of data can be seen as a type of password allowing access to it.

+

Additionally, because nodes do not store invalid transactions, requesting such a transaction will always yield null.

+
+
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-n-o-t-i-f-y_-t-x_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-n-o-t-i-f-y_-t-x_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html new file mode 100644 index 0000000000..b73aecfb88 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-n-o-t-i-f-y_-t-x_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html @@ -0,0 +1,16 @@ + + +DataVending.Service.NOTIFY_TX_PROTOCOL_TOPIC - + + + +com.r3corda.node.services.persistence / DataVending / Service / NOTIFY_TX_PROTOCOL_TOPIC
+
+

NOTIFY_TX_PROTOCOL_TOPIC

+ +val NOTIFY_TX_PROTOCOL_TOPIC: String
+

Topic for messages notifying a node of a new transaction

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/-init-.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/-init-.html new file mode 100644 index 0000000000..1b6f9b298a --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/-init-.html @@ -0,0 +1,14 @@ + + +DataVending.Service.NotifyTxRequestMessage.<init> - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxRequestMessage / <init>
+
+

<init>

+NotifyTxRequestMessage(tx: SignedTransaction, replyToParty: Party, sessionID: Long)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/index.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/index.html new file mode 100644 index 0000000000..6db0914813 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/index.html @@ -0,0 +1,59 @@ + + +DataVending.Service.NotifyTxRequestMessage - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxRequestMessage
+
+

NotifyTxRequestMessage

+data class NotifyTxRequestMessage : PartyRequestMessage
+
+
+

Constructors

+ + + + + + + +
+<init> +NotifyTxRequestMessage(tx: SignedTransaction, replyToParty: Party, sessionID: Long)
+

Properties

+ + + + + + + + + + + + + + + +
+replyToParty +val replyToParty: Party
+sessionID +val sessionID: Long
+tx +val tx: SignedTransaction
+

Inherited Functions

+ + + + + + + +
+getReplyTo +open fun getReplyTo(networkMapCache: NetworkMapCache): MessageRecipients
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/reply-to-party.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/reply-to-party.html new file mode 100644 index 0000000000..06ea5edbe8 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/reply-to-party.html @@ -0,0 +1,16 @@ + + +DataVending.Service.NotifyTxRequestMessage.replyToParty - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxRequestMessage / replyToParty
+
+

replyToParty

+ +val replyToParty: Party
+Overrides PartyRequestMessage.replyToParty
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/session-i-d.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/session-i-d.html new file mode 100644 index 0000000000..8f2c25c3f7 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/session-i-d.html @@ -0,0 +1,16 @@ + + +DataVending.Service.NotifyTxRequestMessage.sessionID - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxRequestMessage / sessionID
+
+

sessionID

+ +val sessionID: Long
+Overrides ServiceRequestMessage.sessionID
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/tx.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/tx.html new file mode 100644 index 0000000000..d6f0d72a79 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-request-message/tx.html @@ -0,0 +1,15 @@ + + +DataVending.Service.NotifyTxRequestMessage.tx - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxRequestMessage / tx
+
+

tx

+ +val tx: SignedTransaction
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/-init-.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/-init-.html new file mode 100644 index 0000000000..362fd6ea76 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/-init-.html @@ -0,0 +1,14 @@ + + +DataVending.Service.NotifyTxResponseMessage.<init> - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxResponseMessage / <init>
+
+

<init>

+NotifyTxResponseMessage(accepted: Boolean)
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/accepted.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/accepted.html new file mode 100644 index 0000000000..2e264b45ef --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/accepted.html @@ -0,0 +1,15 @@ + + +DataVending.Service.NotifyTxResponseMessage.accepted - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxResponseMessage / accepted
+
+

accepted

+ +val accepted: Boolean
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/index.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/index.html new file mode 100644 index 0000000000..e148f9c96b --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/-notify-tx-response-message/index.html @@ -0,0 +1,36 @@ + + +DataVending.Service.NotifyTxResponseMessage - + + + +com.r3corda.node.services.persistence / DataVending / Service / NotifyTxResponseMessage
+
+

NotifyTxResponseMessage

+data class NotifyTxResponseMessage
+
+
+

Constructors

+ + + + + + + +
+<init> +NotifyTxResponseMessage(accepted: Boolean)
+

Properties

+ + + + + + + +
+accepted +val accepted: Boolean
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/index.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/index.html new file mode 100644 index 0000000000..b893865440 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/index.html @@ -0,0 +1,123 @@ + + +DataVending.Service - + + + +com.r3corda.node.services.persistence / DataVending / Service
+
+

Service

+class Service : AbstractNodeService
+

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple +glue that sits between the network layer and the database layer.

+

Note that in our data model, to be able to name a thing by hash automatically gives the power to request it. There +are no access control lists. If you want to keep some data private, then you must be careful who you give its name +to, and trust that they will not pass the name onwards. If someone suspects some data might exist but does not have +its name, then the 256-bit search space theyd have to cover makes it physically impossible to enumerate, and as +such the hash of a piece of data can be seen as a type of password allowing access to it.

+

Additionally, because nodes do not store invalid transactions, requesting such a transaction will always yield null.

+
+
+
+
+

Types

+ + + + + + + + + + + +
+NotifyTxRequestMessage +data class NotifyTxRequestMessage : PartyRequestMessage
+NotifyTxResponseMessage +data class NotifyTxResponseMessage
+

Constructors

+ + + + + + + +
+<init> +Service(services: ServiceHubInternal)

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple +glue that sits between the network layer and the database layer.

+
+

Properties

+ + + + + + + + + + + +
+services +val services: ServiceHubInternal
+storage +val storage: StorageService
+

Inherited Properties

+ + + + + + + + + + + +
+net +val net: MessagingService
+networkMapCache +val networkMapCache: NetworkMapCache
+

Inherited Functions

+ + + + + + + +
+addMessageHandler +fun <Q : ServiceRequestMessage, R : Any> addMessageHandler(topic: String, handler: (Q) -> R, exceptionConsumer: (Message, Exception) -> Unit): Unit

Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of +common boilerplate code. Exceptions are caught and passed to the provided consumer. If you just want a simple +acknowledgement response with no content, use com.r3corda.core.messaging.Ack.

+fun <Q : ServiceRequestMessage, R : Any> addMessageHandler(topic: String, handler: (Q) -> R): Unit

Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of +common boilerplate code. Exceptions are propagated to the messaging layer. If you just want a simple +acknowledgement response with no content, use com.r3corda.core.messaging.Ack.

+
+

Companion Object Properties

+ + + + + + + + + + + +
+NOTIFY_TX_PROTOCOL_TOPIC +val NOTIFY_TX_PROTOCOL_TOPIC: String

Topic for messages notifying a node of a new transaction

+
+logger +val logger: <ERROR CLASS>
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/logger.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/logger.html new file mode 100644 index 0000000000..75fc9ceee4 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/logger.html @@ -0,0 +1,15 @@ + + +DataVending.Service.logger - + + + +com.r3corda.node.services.persistence / DataVending / Service / logger
+
+

logger

+ +val logger: <ERROR CLASS>
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/services.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/services.html new file mode 100644 index 0000000000..369c78e351 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/services.html @@ -0,0 +1,15 @@ + + +DataVending.Service.services - + + + +com.r3corda.node.services.persistence / DataVending / Service / services
+
+

services

+ +val services: ServiceHubInternal
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/storage.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/storage.html new file mode 100644 index 0000000000..c1c15bc8fa --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/-service/storage.html @@ -0,0 +1,15 @@ + + +DataVending.Service.storage - + + + +com.r3corda.node.services.persistence / DataVending / Service / storage
+
+

storage

+ +val storage: StorageService
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/index.html b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/index.html new file mode 100644 index 0000000000..0015796763 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.persistence/-data-vending/index.html @@ -0,0 +1,33 @@ + + +DataVending - + + + +com.r3corda.node.services.persistence / DataVending
+
+

DataVending

+object DataVending
+
+
+

Types

+ + + + + + + + + + + +
+Plugin +class Plugin : CordaPluginRegistry
+Service +class Service : AbstractNodeService

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple +glue that sits between the network layer and the database layer.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services.persistence/index.html b/docs/build/html/api/com.r3corda.node.services.persistence/index.html index 4d42e3fbb3..58130fd8dd 100644 --- a/docs/build/html/api/com.r3corda.node.services.persistence/index.html +++ b/docs/build/html/api/com.r3corda.node.services.persistence/index.html @@ -12,11 +12,9 @@ -DataVendingService +DataVending -class DataVendingService : AbstractNodeService

This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple -glue that sits between the network layer and the database layer.

- +object DataVending diff --git a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-expecting-response/index.html b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-expecting-response/index.html index 7820092dbe..a01a7ce0de 100644 --- a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-expecting-response/index.html +++ b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-expecting-response/index.html @@ -51,9 +51,9 @@ -receiveTopic +receiveTopicSession -val receiveTopic: String +val receiveTopicSession: TopicSession diff --git a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-not-expecting-response/index.html b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-not-expecting-response/index.html index 5e1dd87b2e..f1e29866f2 100644 --- a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-not-expecting-response/index.html +++ b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/-not-expecting-response/index.html @@ -38,9 +38,9 @@ -receiveTopic +receiveTopicSession -val receiveTopic: String +val receiveTopicSession: TopicSession diff --git a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/index.html b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/index.html index fcc50ca031..14f370eb37 100644 --- a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/index.html +++ b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/index.html @@ -45,9 +45,9 @@ -receiveTopic +receiveTopicSession -val receiveTopic: String +val receiveTopicSession: TopicSession diff --git a/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/receive-topic-session.html b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/receive-topic-session.html new file mode 100644 index 0000000000..78d46dd8f4 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services.statemachine/-fiber-request/receive-topic-session.html @@ -0,0 +1,15 @@ + + +FiberRequest.receiveTopicSession - + + + +com.r3corda.node.services.statemachine / FiberRequest / receiveTopicSession
+
+

receiveTopicSession

+ +val receiveTopicSession: TopicSession
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/-init-.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/-init-.html new file mode 100644 index 0000000000..e6d1db2c55 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/-init-.html @@ -0,0 +1,14 @@ + + +NotaryChange.Plugin.<init> - + + + +com.r3corda.node.services / NotaryChange / Plugin / <init>
+
+

<init>

+Plugin()
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/index.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/index.html new file mode 100644 index 0000000000..5ad79b7b2f --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/index.html @@ -0,0 +1,74 @@ + + +NotaryChange.Plugin - + + + +com.r3corda.node.services / NotaryChange / Plugin
+
+

Plugin

+class Plugin : CordaPluginRegistry
+
+
+

Constructors

+ + + + + + + +
+<init> +Plugin()
+

Properties

+ + + + + + + +
+servicePlugins +val servicePlugins: List<Class<*>>

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+

Inherited Properties

+ + + + + + + + + + + + + + + +
+requiredProtocols +open val requiredProtocols: Map<String, Set<String>>

A Map with an entry for each consumed protocol used by the webAPIs. +The key of each map entry should contain the ProtocolLogic class name. +The associated map values are the union of all concrete class names passed to the protocol constructor. +Standard java.lang.* and kotlin.* types do not need to be included explicitly. +This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.

+
+staticServeDirs +open val staticServeDirs: Map<String, String>

Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*. +Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can +be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()

+
+webApis +open val webApis: List<Class<*>>

List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input. +These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that +Cordapp code can be loaded dynamically.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/service-plugins.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/service-plugins.html new file mode 100644 index 0000000000..ec1730e0be --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/-plugin/service-plugins.html @@ -0,0 +1,20 @@ + + +NotaryChange.Plugin.servicePlugins - + + + +com.r3corda.node.services / NotaryChange / Plugin / servicePlugins
+
+

servicePlugins

+ +val servicePlugins: List<Class<*>>
+Overrides CordaPluginRegistry.servicePlugins
+

List of additional long lived services to be hosted within the node. +They are expected to have a single parameter constructor that takes a ServiceHubInternal as input. +The ServiceHubInternal will be fully constructed before the plugin service is created and will +allow access to the protocol factory and protocol initiation entry points there.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/-init-.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/-init-.html new file mode 100644 index 0000000000..6afdf3ca54 --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/-init-.html @@ -0,0 +1,16 @@ + + +NotaryChange.Service.<init> - + + + +com.r3corda.node.services / NotaryChange / Service / <init>
+
+

<init>

+Service(services: ServiceHubInternal)
+

A service that monitors the network for requests for changing the notary of a state, +and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/index.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/index.html new file mode 100644 index 0000000000..135ce7f55c --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/index.html @@ -0,0 +1,74 @@ + + +NotaryChange.Service - + + + +com.r3corda.node.services / NotaryChange / Service
+
+

Service

+class Service : AbstractNodeService
+

A service that monitors the network for requests for changing the notary of a state, +and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

+
+
+

Constructors

+ + + + + + + +
+<init> +Service(services: ServiceHubInternal)

A service that monitors the network for requests for changing the notary of a state, +and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

+
+

Properties

+ + + + + + + +
+services +val services: ServiceHubInternal
+

Inherited Properties

+ + + + + + + + + + + +
+net +val net: MessagingService
+networkMapCache +val networkMapCache: NetworkMapCache
+

Inherited Functions

+ + + + + + + +
+addMessageHandler +fun <Q : ServiceRequestMessage, R : Any> addMessageHandler(topic: String, handler: (Q) -> R, exceptionConsumer: (Message, Exception) -> Unit): Unit

Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of +common boilerplate code. Exceptions are caught and passed to the provided consumer. If you just want a simple +acknowledgement response with no content, use com.r3corda.core.messaging.Ack.

+fun <Q : ServiceRequestMessage, R : Any> addMessageHandler(topic: String, handler: (Q) -> R): Unit

Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of +common boilerplate code. Exceptions are propagated to the messaging layer. If you just want a simple +acknowledgement response with no content, use com.r3corda.core.messaging.Ack.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/services.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/services.html new file mode 100644 index 0000000000..70cb6bf61e --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/-service/services.html @@ -0,0 +1,15 @@ + + +NotaryChange.Service.services - + + + +com.r3corda.node.services / NotaryChange / Service / services
+
+

services

+ +val services: ServiceHubInternal
+
+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/-notary-change/index.html b/docs/build/html/api/com.r3corda.node.services/-notary-change/index.html new file mode 100644 index 0000000000..6fa73915ae --- /dev/null +++ b/docs/build/html/api/com.r3corda.node.services/-notary-change/index.html @@ -0,0 +1,33 @@ + + +NotaryChange - + + + +com.r3corda.node.services / NotaryChange
+
+

NotaryChange

+object NotaryChange
+
+
+

Types

+ + + + + + + + + + + +
+Plugin +class Plugin : CordaPluginRegistry
+Service +class Service : AbstractNodeService

A service that monitors the network for requests for changing the notary of a state, +and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

+
+ + diff --git a/docs/build/html/api/com.r3corda.node.services/index.html b/docs/build/html/api/com.r3corda.node.services/index.html index e9309df899..513ccf1116 100644 --- a/docs/build/html/api/com.r3corda.node.services/index.html +++ b/docs/build/html/api/com.r3corda.node.services/index.html @@ -12,19 +12,9 @@ -FixingSessionInitiationHandler +NotaryChange -object FixingSessionInitiationHandler

This is a temporary handler required for establishing random sessionIDs for the Fixer and Floater as part of -running scheduled fixings for the InterestRateSwap contract.

- - - - -NotaryChangeService - -class NotaryChangeService : AbstractNodeService

A service that monitors the network for requests for changing the notary of a state, -and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.

- +object NotaryChange diff --git a/docs/build/html/api/com.r3corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html b/docs/build/html/api/com.r3corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html index cb6c9b56c2..19a1922b32 100644 --- a/docs/build/html/api/com.r3corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html @@ -120,8 +120,8 @@ Note that this is temporary until protocol sessions are properly implemented.

receive -fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> diff --git a/docs/build/html/api/com.r3corda.protocols/-notary-protocol/-service/index.html b/docs/build/html/api/com.r3corda.protocols/-notary-protocol/-service/index.html index 15bfa6662b..4ad6af110c 100644 --- a/docs/build/html/api/com.r3corda.protocols/-notary-protocol/-service/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-notary-protocol/-service/index.html @@ -141,8 +141,8 @@ undo the commit of the input states (the exact mechanism still needs to be worke receive -fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> diff --git a/docs/build/html/api/com.r3corda.protocols/-party-request-message/index.html b/docs/build/html/api/com.r3corda.protocols/-party-request-message/index.html index 61d971fd15..f8bac85bdf 100644 --- a/docs/build/html/api/com.r3corda.protocols/-party-request-message/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-party-request-message/index.html @@ -60,7 +60,7 @@ -NotifyTxRequestMessage +NotifyTxRequestMessage data class NotifyTxRequestMessage : PartyRequestMessage diff --git a/docs/build/html/api/com.r3corda.protocols/-resolve-transactions-protocol/index.html b/docs/build/html/api/com.r3corda.protocols/-resolve-transactions-protocol/index.html index 39fc5670f7..7d47bfe409 100644 --- a/docs/build/html/api/com.r3corda.protocols/-resolve-transactions-protocol/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-resolve-transactions-protocol/index.html @@ -117,8 +117,8 @@ access this lazily or from inside receive -fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> diff --git a/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-fixing-role-decider/index.html b/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-fixing-role-decider/index.html index 1511b0eceb..9af29fbdd7 100644 --- a/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-fixing-role-decider/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-fixing-role-decider/index.html @@ -122,8 +122,8 @@ access this lazily or from inside receive -fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> diff --git a/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-primary/index.html b/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-primary/index.html index 99d0056ccf..e27a93056c 100644 --- a/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-primary/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-primary/index.html @@ -192,8 +192,8 @@ access this lazily or from inside receive -fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> diff --git a/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-secondary/index.html b/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-secondary/index.html index 868d5b687e..eeb06a36ad 100644 --- a/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-secondary/index.html +++ b/docs/build/html/api/com.r3corda.protocols/-two-party-deal-protocol/-secondary/index.html @@ -156,8 +156,8 @@ access this lazily or from inside receive -fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T>
-fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T> +fun <T : Any> receive(sessionIDForReceive: Long): UntrustworthyData<T>
+fun <T : Any> receive(sessionIDForReceive: Long, receiveType: Class<T>): UntrustworthyData<T> diff --git a/docs/build/html/api/index-outline.html b/docs/build/html/api/index-outline.html index 63029b7b51..d157a46956 100644 --- a/docs/build/html/api/index-outline.html +++ b/docs/build/html/api/index-outline.html @@ -124,7 +124,7 @@ -abstract class AbstractNode
+abstract class AbstractNode : SingletonSerializeAsToken
-class ArtemisMessagingService : SingletonSerializeAsToken, MessagingService
+class ArtemisMessagingService : SingletonSerializeAsToken, MessagingServiceInternal
+val SESSION_ID_PROPERTY: String
val TOPIC_PROPERTY: String
-fun addMessageHandler(topic: String, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+fun addMessageHandler(topic: String, sessionID: Long, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+fun addMessageHandler(topicSession: TopicSession, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
val config: NodeConfiguration
fun configureWithDevSSLCertificate(): Unit
-fun createMessage(topic: String, data: ByteArray): Message
+fun createMessage(topicSession: TopicSession, data: ByteArray): Message
+fun createMessage(topic: String, sessionID: Long, data: ByteArray): Message
val defaultExecutor: Executor
val directory: Path
val log: <ERROR CLASS>
@@ -472,6 +476,7 @@ fun makeRecipient(hostname: String): <ERROR CLASS>
val myAddress: SingleMessageRecipient
val myHostPort: <ERROR CLASS>
+fun registerTrustedAddress(address: SingleMessageRecipient): Unit
fun removeMessageHandler(registration: MessageHandlerRegistration): Unit
fun send(message: Message, target: MessageRecipients): Unit
fun start(): Unit
@@ -600,7 +605,7 @@ -object Handler
+class Plugin : CordaPluginRegistry
@@ -672,6 +649,47 @@ +class Service
+ val TOPIC: String
@@ -1461,7 +1479,7 @@ -interface CordaPluginRegistry
+abstract class CordaPluginRegistry
@@ -1501,7 +1522,7 @@ -class DataVendingService : AbstractNodeService
+object DataVending
@@ -2035,7 +2081,7 @@ -object Handler
+class Plugin : CordaPluginRegistry
+class Service
+ @@ -2260,7 +2319,7 @@ open fun equals(other: Any?): Boolean
open fun hashCode(): Int
val payload: Any?
-val receiveTopic: String
+val receiveTopicSession: TopicSession
val sessionIDForReceive: Long
val sessionIDForSend: Long
val stackTraceInCaseOfProblems: StackSnapshot?
@@ -2340,7 +2399,7 @@ -object FixingSessionInitiationHandler
+object FixingSessionInitiation
@@ -2577,6 +2660,7 @@ IRSDemoPluginRegistry()
val requiredProtocols: Map<String, Set<String>>
+val staticServeDirs: Map<String, String>
val webApis: List<Class<*>>
@@ -2681,7 +2765,7 @@ InMemoryMessagingNetwork(sendManuallyPumped: Boolean)
-inner class Builder : MessagingServiceBuilder<InMemoryMessaging>
+inner class Builder : MessagingServiceBuilder<InMemoryMessaging>
-inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingService
+inner class InMemoryMessaging : SingletonSerializeAsToken, MessagingServiceInternal
@@ -2751,11 +2835,14 @@ -fun addMessageHandler(topic: String, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+fun addMessageHandler(topic: String, sessionID: Long, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+fun addMessageHandler(topicSession: TopicSession, executor: Executor?, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
protected val backgroundThread: Nothing?
-fun createMessage(topic: String, data: ByteArray): Message
+fun createMessage(topic: String, sessionID: Long, data: ByteArray): Message
+fun createMessage(topicSession: TopicSession, data: ByteArray): Message
val myAddress: SingleMessageRecipient
fun pumpReceive(block: Boolean): MessageTransfer?
+fun registerTrustedAddress(address: SingleMessageRecipient): Unit
fun removeMessageHandler(registration: MessageHandlerRegistration): Unit
protected var running: Boolean
fun send(message: Message, target: MessageRecipients): Unit
@@ -2793,8 +2880,8 @@ -fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>
-fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>
+fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>
+fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>
val endpoints: List<InMemoryMessaging>
val everyoneOnline: AllPossibleRecipients
var latencyCalculator: LatencyCalculator?
@@ -2815,7 +2902,7 @@ -InMemoryNetworkMapCache()
+InMemoryNetworkMapCache(netInternal: MessagingServiceInternal?)
open fun addMapService(net: MessagingService, service: NodeInfo, subscribe: Boolean, ifChangedSinceVer: Int?): <ERROR CLASS><Unit>
open fun addNode(node: NodeInfo): Unit
open fun deregisterForUpdates(net: MessagingService, service: NodeInfo): <ERROR CLASS><Unit>
@@ -2824,6 +2911,7 @@ open fun getNodeByLegalName(name: String): <ERROR CLASS>
open fun getNodeByPublicKey(publicKey: PublicKey): <ERROR CLASS>
open fun getRecommended(type: ServiceType, contract: Contract, vararg party: Party): NodeInfo?
+val netInternal: MessagingServiceInternal?
open val networkMapNodes: List<NodeInfo>
open val notaryNodes: List<NodeInfo>
open val partyNodes: List<NodeInfo>
@@ -3627,7 +3715,7 @@ abstract val debugMessageID: String
abstract val debugTimestamp: Instant
abstract fun serialise(): ByteArray
-abstract val topic: String
+abstract val topicSession: TopicSession
@@ -3642,16 +3730,17 @@ -abstract fun addMessageHandler(topic: String = "", executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
-abstract fun createMessage(topic: String, data: ByteArray): Message
+abstract fun addMessageHandler(topic: String = "", sessionID: Long = DEFAULT_SESSION_ID, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+abstract fun addMessageHandler(topicSession: TopicSession, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+abstract fun createMessage(topic: String, sessionID: Long = DEFAULT_SESSION_ID, data: ByteArray): Message
+abstract fun createMessage(topicSession: TopicSession, data: ByteArray): Message
abstract val myAddress: SingleMessageRecipient
abstract fun removeMessageHandler(registration: MessageHandlerRegistration): Unit
abstract fun send(message: Message, target: MessageRecipients): Unit
-abstract fun stop(): Unit
-interface MessagingServiceBuilder<out T : MessagingService>
+interface MessagingServiceBuilder<out T : MessagingServiceInternal>
+interface MessagingServiceInternal : MessagingService
+ @@ -3770,7 +3872,7 @@ val keyPair: KeyPair?
protected open val log: <ERROR CLASS>
protected open fun makeIdentityService(): MockIdentityService
-protected open fun makeMessagingService(): MessagingService
+protected open fun makeMessagingService(): MessagingServiceInternal
val mockNet: MockNetwork
protected open fun noNetworkMapConfigured(): <ERROR CLASS>
val place: PhysicalLocation
@@ -4236,7 +4338,7 @@ Node(dir: Path, p2pAddr: <ERROR CLASS>, webServerAddr: <ERROR CLASS>, configuration: NodeConfiguration, networkMapAddress: NodeInfo?, advertisedServices: Set<ServiceType>, clock: Clock = NodeClock())
val DEFAULT_PORT: Int
protected val log: <ERROR CLASS>
-protected fun makeMessagingService(): MessagingService
+protected fun makeMessagingService(): MessagingServiceInternal
val p2pAddr: <ERROR CLASS>
protected val serverThread: ServiceAffinityExecutor
fun setup(): Node
@@ -4409,6 +4511,20 @@ +class Plugin : CordaPluginRegistry
+ class Service : AcceptsFileUpload, AbstractNodeService
+object NotaryChange
+ object NotaryChangeProtocol : AbstractStateReplacementProtocol<Party>
-class NotaryChangeService : AbstractNodeService
- sealed class NotaryError
+data class TopicSession
+ object TopicStringValidator
-object Handler
+class Plugin : CordaPluginRegistry
+class Service
+ @@ -10071,7 +10228,7 @@ -inline fun <T> logElapsedTime(label: String, logger: <ERROR CLASS>? = null, body: () -> T): T
+fun <T> logElapsedTime(label: String, logger: <ERROR CLASS>? = null, body: () -> T): T
fun random63BitValue(): Long
fun <T> <ERROR CLASS><T>.setFrom(logger: <ERROR CLASS>? = null, block: () -> T): <ERROR CLASS><T>
fun <T> <ERROR CLASS><T>.success(executor: Executor, body: (T) -> Unit): <ERROR CLASS>
@@ -12025,7 +12182,7 @@ abstract val debugMessageID: String
abstract val debugTimestamp: Instant
abstract fun serialise(): ByteArray
-abstract val topic: String
+abstract val topicSession: TopicSession
@@ -12040,16 +12197,18 @@ -abstract fun addMessageHandler(topic: String = "", executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
-abstract fun createMessage(topic: String, data: ByteArray): Message
+abstract fun addMessageHandler(topic: String = "", sessionID: Long = DEFAULT_SESSION_ID, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+abstract fun addMessageHandler(topicSession: TopicSession, executor: Executor? = null, callback: (Message, MessageHandlerRegistration) -> Unit): MessageHandlerRegistration
+abstract fun createMessage(topic: String, sessionID: Long = DEFAULT_SESSION_ID, data: ByteArray): Message
+abstract fun createMessage(topicSession: TopicSession, data: ByteArray): Message
abstract val myAddress: SingleMessageRecipient
abstract fun removeMessageHandler(registration: MessageHandlerRegistration): Unit
abstract fun send(message: Message, target: MessageRecipients): Unit
-abstract fun stop(): Unit
-interface MessagingServiceBuilder<out T : MessagingService>
+interface SingleMessageRecipient : MessageRecipients
+data class TopicSession
-interface SingleMessageRecipient : MessageRecipients
object TopicStringValidator
-fun MessagingService.runOnNextMessage(topic: String = "", executor: Executor? = null, callback: (Message) -> Unit): Unit
-fun MessagingService.send(topic: String, payload: Any, to: MessageRecipients): Unit
+fun MessagingService.runOnNextMessage(topic: String, sessionID: Long, executor: Executor? = null, callback: (Message) -> Unit): Unit
+fun MessagingService.runOnNextMessage(topicSession: TopicSession, executor: Executor? = null, callback: (Message) -> Unit): Unit
+fun MessagingService.send(topic: String, sessionID: Long, payload: Any, to: MessageRecipients): Unit
+fun MessagingService.send(topicSession: TopicSession, payload: Any, to: MessageRecipients): Unit
@@ -12128,7 +12293,7 @@ -interface CordaPluginRegistry
+abstract class CordaPluginRegistry
@@ -12234,6 +12402,7 @@ +val DEFAULT_SESSION_ID: Long
interface IdentityService
-val TOPIC_DEFAULT_POSTFIX: String
class TimestampChecker
-object Handler
+class Plugin : CordaPluginRegistry
@@ -13931,6 +14075,47 @@ +class Service
+ val TOPIC: String
@@ -13971,7 +14156,7 @@ -object Handler
+class Plugin : CordaPluginRegistry
+class Service
+ @@ -14013,7 +14211,7 @@ -object Handler
+class Plugin : CordaPluginRegistry
+class Service
+ @@ -14262,7 +14473,7 @@ -abstract class AbstractNode
+abstract class AbstractNode : SingletonSerializeAsToken
+interface MessagingServiceBuilder<out T : MessagingServiceInternal>
+ +interface MessagingServiceInternal : MessagingService
+ class MonitoringService : SingletonSerializeAsToken
-fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>
-fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>
+fun createNode(manuallyPumped: Boolean): <ERROR CLASS><Handle, MessagingServiceBuilder<InMemoryMessaging>>
+fun createNodeWithID(manuallyPumped: Boolean, id: Int, description: String? = null): MessagingServiceBuilder<InMemoryMessaging>
val endpoints: List<InMemoryMessaging>
val everyoneOnline: AllPossibleRecipients
var latencyCalculator: LatencyCalculator?
@@ -15250,7 +15543,7 @@ -InMemoryNetworkMapCache()
+InMemoryNetworkMapCache(netInternal: MessagingServiceInternal?)
open fun addMapService(net: MessagingService, service: NodeInfo, subscribe: Boolean, ifChangedSinceVer: Int?): <ERROR CLASS><Unit>
open fun addNode(node: NodeInfo): Unit
open fun deregisterForUpdates(net: MessagingService, service: NodeInfo): <ERROR CLASS><Unit>
@@ -15259,6 +15552,7 @@ open fun getNodeByLegalName(name: String): <ERROR CLASS>
open fun getNodeByPublicKey(publicKey: PublicKey): <ERROR CLASS>
open fun getRecommended(type: ServiceType, contract: Contract, vararg party: Party): NodeInfo?
+val netInternal: MessagingServiceInternal?
open val networkMapNodes: List<NodeInfo>
open val notaryNodes: List<NodeInfo>
open val partyNodes: List<NodeInfo>
@@ -15582,7 +15876,7 @@ -class DataVendingService : AbstractNodeService
+object DataVending
@@ -15759,7 +16078,7 @@ open fun equals(other: Any?): Boolean
open fun hashCode(): Int
val payload: Any?
-val receiveTopic: String
+val receiveTopicSession: TopicSession
val sessionIDForReceive: Long
val sessionIDForSend: Long
val stackTraceInCaseOfProblems: StackSnapshot?
diff --git a/docs/build/html/contract-catalogue.html b/docs/build/html/contract-catalogue.html new file mode 100644 index 0000000000..c2e49454ee --- /dev/null +++ b/docs/build/html/contract-catalogue.html @@ -0,0 +1,295 @@ + + + + + + + + + + + Platform contracts — R3 Corda latest documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + +
+ +
+
+
+
+ +
+

Platform contracts¶

+

There are a number of contracts supplied with Corda, which cover both core functionality (such as cash on ledger) and +provide examples of how to model complex contracts (such as interest rate swaps). There is also a Dummy contract. +However it does not provide any meaningful functionality, and is intended purely for testing purposes.

+
+

Cash¶

+

The Cash contract’s state objects represent an amount of some issued currency, owned by some party. Any currency +can be issued by any party, and it is up to the recipient to determine whether they trust the issuer. Generally nodes +are expected to have criteria (such as a whitelist) that issuers must fulfil for cash they issue to be accepted.

+

Cash state objects implement the FungibleAsset interface, and can be used by the commercial paper and obligation +contracts as part of settlement of an outstanding debt. The contracts’ verification functions require that cash state +objects of the correct value are received by the beneficiary as part of the settlement transaction.

+

The cash contract supports issuing, moving and exiting (destroying) states. Note, however, that issuance cannot be part +of the same transaction as other cash commands, in order to minimise complexity in balance verification.

+
+
+

Commercial Paper¶

+

CommercialPaper is a very simple obligation to pay an amount of cash at some future point in time (the maturity +date), and exists primarily as a simplified contract for use in tutorials. Commercial paper supports issuing, moving +and redeeming (settling) states. Unlike the full obligation contract it does not support locking the state so it cannot +be settled if the obligor defaults on payment, or netting of state objects. All commands are exclusive of the other +commercial paper commands. Use the Obligation contract for more advanced functionality.

+
+
+

Interest Rate Swap¶

+

The Interest Rate Swap (IRS) contract is a bilateral contract to implement a vanilla fixed / floating same currency +interest rate swap. In general, an IRS allows two counterparties to modify their exposure from changes in the underlying +interest rate. They are often used as a hedging instrument, convert a fixed rate loan to a floating rate loan, vice +versa etc.

+

See “Interest Rate Swaps” for full details on the IRS contract.

+
+
+

Obligation¶

+

The obligation contract’s state objects represent an obligation to provide some asset, which would generally be a +cash state object, but can be any contract state object fulfilling the FungibleAsset interface, including other +obligations. The obligation contract uses objects referred to as Terms to group commands and state objects together. +Terms are a subset of an obligation state object, including details of what should be paid, when, and to whom.

+

Obligation state objects can be issued, moved and exited as with any fungible asset. The contract also supports state +object netting and lifecycle changes (marking the obligation that a state object represents as having defaulted, or +reverting it to the normal state after marking as having defaulted). The Net command cannot be included with any +other obligation commands in the same transaction, as it applies to state objects with different beneficiaries, and +as such applies across multiple terms.

+

All other obligation contract commands specify obligation terms (what is to be delivered, by whom and by when) +which are used as a grouping key for input/output states and commands. Issuance and lifecyle commands are mutually +exclusive of other commands (move/exit) which apply to the same obligation terms, but multiple commands can be present +in a single transaction if they apply to different terms. For example, a contract can have two different Issue +commands as long as they apply to different terms, but could not have an Issue and a Net, or an Issue and +Move that apply to the same terms.

+

Netting of obligations supports close-out netting (which can be triggered by either obligor or beneficiary, but is +limited to bilateral netting), and payment netting (which requires signatures from all involved parties, but supports +multilateral netting).

+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/contract-irs.html b/docs/build/html/contract-irs.html index dea946b718..bb7b75c6bd 100644 --- a/docs/build/html/contract-irs.html +++ b/docs/build/html/contract-irs.html @@ -8,7 +8,7 @@ - The Interest Rate Swap Contract — R3 Corda latest documentation + Interest Rate Swaps — R3 Corda latest documentation @@ -32,7 +32,7 @@ - + @@ -86,7 +86,7 @@

Overview

-