Commit Graph

8 Commits

Author SHA1 Message Date
Dan Newton
4bae045a58 ENT-4601 Public API to run external operations from a flow (#5833)
Deprecate FlowAsyncOperation and reimplement public versions FlowExternalOperation and FlowExternalAsyncOperation.

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

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

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

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

The current implementation leaves FlowAsyncOperation alone, meaning that any developers that have used it (even though it is internal) won't need to change their apps. If this was not concern I would delete it completely and replumb the state machine code. Instead, it has been marked with @DoNotImplement and executeAsync is annotated with @Deprecated
2020-01-22 09:27:17 +00:00
Ben Wyeth
f9916e673c Document warning cleanup + new version of docs builder 2019-04-11 13:43:47 +00:00
Joel Dudley
faa9606dea
Combines all contributing info in one place. Clean-up. (#4266) 2018-11-20 18:17:11 +00:00
Shams Asari
e8b6f5f2f2
CORDA-2005: FinalityFlow has been made into an inlined flow to resolve issue with FinalityHandler (#4050)
FinalityHandler is insecure in that it is open to receive any transaction from any party.

Any CorDapp targeting platform version 4 or above is required use the new c'tors which take in FlowSession objects to the counterpart flow. This flow must subcall ReceiveFinalityFlow to receive and record the finalised transaction.

Old CorDapps (with target platform version < 4) will continue to work as previously. However if there are no old CorDapps loaded then the node will disable FinalityHandler.
2018-11-14 14:16:22 +00:00
Shams Asari
0a611afa55
Various clean ups of the docs example code (#3982)
* Consistent separation of Java and Kotlin sources via package names only
* Renamed the Kotlin tutorial files to match the class names
* Added Java example of LaunchSpaceshipFlow
2018-09-24 15:00:31 +01:00
Andras Slemmer
18a9155e89 Add java samples 2018-07-12 15:30:23 +01:00
Andras Slemmer
d375875054 Address comments 2018-07-12 15:30:23 +01:00
Andras Slemmer
80a5e7ab81 Add flow state machine extension tutorial 2018-07-12 15:30:23 +01:00