A Corbeans project sample and template originally based on Joel Dudley's yo-cordapp by R3.
This project demonstrates how to apply Corbeans in order to create fully testable webapp/cordapp modules with Spring Boot and Corda. It also demonstrates some approaches towards more maintainable code using the following projects:
> For Windows, use `gradlew.bat` instead of `./gradlew`
corbeans-yo-cordapp
templategit clone https://github.com/manosbatsis/corbeans-yo-cordapp.git
cd corbeans-yo-cordapp
./gradlew clean build
Note that unit tests for the Spring Boot module use the node driver.
You can also use the integrationTest
task to execute the same tests
against a Docker-based corda network:
./gradlew clean build integrationTest -x test
This will implicitly call deployNodes
as well (see below) and uses
Docker via Testcontainers
(see also Corda Testacles).
Both approaches run the same tests by extending mypackage.server.AbstractRootTest
.
./gradlew deployNodes
Linux/Unix:
cordapp-workflow/build/nodes/runnodes
Windows:
call cordapp/build/nodes/runnodes.bat
You can also uncomment webPort
and webserverJar
in build.gradle
to have runnodes
launch Spring Boot as well, then browse the API:
http://localhost:8080/swagger-ui.html
You can configure nodes, logging and other options for either runtime or testing by editing
server/src/main/resources/application.properties
or server/src/test/resources/application.properties respectively.
If you refactor from mypackage
to your actual base package, make sure to update main and test sources
throughout project modules, along with the corbeans.cordappPackages
property in both application.properties
files in the bootapp-webserver module.
By default runnodes
will only create a single webserver instance.
If a webserver per node is desired, uncomment "PartyB" node's webPort
and webserverJar
in cordapp-workflow/build.gradle's Cordform
task.