To get the example up-and-running, there are two possibilities:
-
using Docker:
./gradlew dockerize # on x86/64 platforms ./gradlew dockerize -Dplatform="linux/amd64" # on arm platforms, e.g. Apple M1
Then there should be two new images in your image cache,
controlplane:latest
anddataplane:latest
-
using a native Java process
./gradlew build java -jar runtimes/[controlplane|dataplane]/build/libs/[controlplane|dataplane].jar
In both cases configuration must be supplied, either using Docker environment variables, or using Java application properties.
This is a template repository, so some adaptations will obviously have to be made.
- update
gradle.properties
: this should reflect the appropriategroup
andversion
of your project - update the
pom
block in build.gradle.kts - alter
LICENSE
,SECURITY.md
,NOTICE.md
andCONTRIBUTING.md
as needed by your project.
- if desired, uncomment the
vault
andsql
dependencies in the controlplane and dataplane build files so that the runtime uses Hashicorp and PostgreSQL
config
: contains the configuration file for the Checkstyle pluginextensions
: this is where your extension modules should be implementedgradle
: contains the Gradle Wrapper and the Version Catalogruntimes
: contains executable modules for the controlplane and data plane
This is for developers who want to create custom extensions to implement new features and thereby extend the EDC functionality. For example, implementing support for a new database technology could be implemented in one (or several) extensions.
If this is you, then you should focus mainly on the extensions/
directory.
This is for developers who want to package several existing extensions into a new runtime. A runtime in EDC-speak is a runnable application. We achieve this by packaging all class files into a fat JAR using the Shadow Plugin, but naturally other approaches exist (but are not covered here).
If this is you, then you should focus mainly on the runtimes/
directory.
Both runtimes provided in this template are simply pulling in official EDC control plane and data plane modules.