You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 21703ec
Browse filesBrowse the repository at this point in the historyBrowse files
Write durable workflows in plain Java with `dapr-sdk-workflows`. Workflow state is persisted by Dapr, so a workflow picks up where it left off after a crash or restart.
*[Maven 3.x](https://maven.apache.org/install.html) or [Gradle](https://gradle.org/install/)
42
+
* An existing Java Maven or Gradle project. To start a new one, see [Maven in 5 minutes](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html).
43
+
* The [Dapr CLI](https://docs.dapr.io/getting-started/install-dapr-cli/), to run your application with a Dapr sidecar locally
56
44
57
-
### Install JDK
58
-
59
-
If using [SDKMAN!](https://sdkman.io), execute `sdk env install` to install the required JDK.
45
+
IDE setup and the tools needed to work on the SDK itself are under [Development](#development).
-**`io.dapr.spring:dapr-spring-bom`** — Spring-specific modules (`dapr-sdk-springboot`, `dapr-spring-*`). Imports `dapr-sdk-bom` transitively, so Spring users only need this single BOM.
71
57
72
-
Pick the one that matches your project. Importing a BOM ensures you inherit security fixes for transitive dependencies like the Netty CVEs.
58
+
`durabletask-client` is the gRPC client and worker for the Durable Task engine that runs Dapr workflows; `dapr-sdk-workflows` pulls it in, so you do not add it yourself.
59
+
60
+
Pick the one that matches your project. Importing a BOM ensures you inherit security fixes for transitive dependencies like the Netty CVEs. With a BOM imported, the version is set once on the BOM and left off each Dapr dependency.
73
61
74
62
##### Core (non-Spring) projects
75
63
@@ -90,23 +78,20 @@ For Maven:
90
78
</dependencyManagement>
91
79
92
80
<dependencies>
93
-
<!-- Dapr's core SDK with all features, except Actors. -->
81
+
<!-- Dapr's core SDK with all features, except Actors and Workflows. -->
94
82
<dependency>
95
83
<groupId>io.dapr</groupId>
96
84
<artifactId>dapr-sdk</artifactId>
97
-
<version>1.19.0</version>
98
85
</dependency>
99
-
<!-- Dapr's SDK for Actors (optional). -->
86
+
<!-- Dapr's SDK for Workflows (optional). -->
100
87
<dependency>
101
88
<groupId>io.dapr</groupId>
102
-
<artifactId>dapr-sdk-actors</artifactId>
103
-
<version>1.19.0</version>
89
+
<artifactId>dapr-sdk-workflows</artifactId>
104
90
</dependency>
105
-
<!-- Dapr's SDK integration with SpringBoot (optional). -->
@@ -248,7 +237,7 @@ You can find a [step-by-step tutorial showing this integration here](./spring-bo
248
237
249
238
### API Documentation
250
239
251
-
Please, refer to our [Javadoc](https://dapr.github.io/java-sdk/)website.
240
+
See the [Javadoc](https://dapr.github.io/java-sdk/)for the API reference, and the [Java SDK documentation](https://docs.dapr.io/developing-applications/sdks/java/) for guides.
252
241
253
242
### Reactor API
254
243
@@ -325,6 +314,14 @@ Most exceptions thrown from the SDK are instances of `DaprException`. `DaprExcep
325
314
326
315
## Development
327
316
317
+
### Tools
318
+
319
+
* JDK 17. With [SDKMAN!](https://sdkman.io), run `sdk env install` in the repo root to install the JDK pinned in `.sdkmanrc`.
320
+
* Maven is not needed: use the wrapper, `./mvnw`.
321
+
* A Java IDE, for example [IntelliJ](https://www.jetbrains.com/idea/download/), [Eclipse](https://www.eclipse.org/downloads/), [Apache NetBeans](https://netbeans.apache.org/download/index.html) or [Visual Studio Code](https://code.visualstudio.com/Download), with Maven support if it needs a plugin:
322
+
* [Maven in IntelliJ](https://www.jetbrains.com/help/idea/maven.html)
323
+
* [Maven in Eclipse with m2e](https://projects.eclipse.org/projects/technology.m2e)
324
+
328
325
### Update URL to fetch proto files
329
326
330
327
Change the `dapr.proto.baseurl` property below in [pom.xml](./pom.xml) to point to the URL for the desired commit hash in Git if you need to target a proto file that is not been merged into master yet.
@@ -349,7 +346,7 @@ Note: You may need to run `./mvnw clean` after changing this setting to remove a
@@ -365,7 +362,7 @@ As a starting point for running the Integration Tests, first run `./mvnw clean i
365
362
366
363
#### Backing services (managed automatically by Testcontainers)
367
364
368
-
The integration tests use [Testcontainers](https://testcontainers.com/) to start and manage every backing service they depend on — Redis, Zipkin, MongoDB, Kafka, and the Dapr control plane (`placement` and `scheduler`) — automatically at test runtime.
365
+
The integration tests use [Testcontainers](https://testcontainers.com/) to start and manage every backing service they depend on — Redis, Zipkin, MongoDB, Kafka, [Toxiproxy](https://github.com/Shopify/toxiproxy) for the resiliency tests, and the Dapr control plane (`placement` and `scheduler`) — automatically at test runtime.
369
366
370
367
There is no separate step to bring these services up: you only need a running Docker daemon. Testcontainers pulls the required images and starts/stops the containers as the tests run.
0 commit comments