4bae045a58
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 |
||
---|---|---|
.. | ||
docs_builder | ||
ext | ||
source | ||
.gitattributes | ||
.gitignore | ||
build.gradle | ||
index.html | ||
install-docsite-requirements.sh | ||
make-docsite.sh | ||
Makefile | ||
packages.md | ||
README.md | ||
requirements.txt |
Corda Documentation Build
This Readme describes how to build the Corda documentation for the current version. The output html files will be written to the corda\docs\build\html
directory.
Prerequisites / First time build
Before you begin, you need to:
- Install Docker.
- Ensure that Docker is running.
- Select Expose daemon on tcp://localhost:2375 without TLS in the Docker Settings (which you can open from the System Tray by right-clicking the Docker symbol and then selecting Settings)
Build process
- Open a cmd dialogue.
- Navigate to the root location (this is the
\corda
directory) - Run the documentation build (
gradlew makeDocs
or./gradlew makeDocs
)
Windows users: If this task fails because Docker can't find make-docsite.sh, go to Settings > Shared Drives in the Docker system tray agent, make sure the relevant drive is shared, and click 'Reset credentials'.
RST style guide
The Corda documentation is described using the ReStructured Text (RST) markup language. For details of the syntax, see this.
Version placeholders
We currently support the following placeholders; they get substituted with the correct value at build time:
"|corda_version|"
"|corda_version_lower|"
"|java_version|"
"|kotlin_version|"
"|gradle_plugins_version|"
"|quasar_version|"
If you put one of these in an rst file anywhere (including in a code tag), it will be substituted with the value from constants.properties
(which is in the root of the project) at build time. corda_version_lower
returns the current Corda version in lowercase which is useful
for case sensitive artifacts such as docker images.
The code for this can be found near the top of the conf.py file in the docs/source
directory.