Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bring Testcontainers integration to Dapr for local spring boot development experience #1040

Closed
salaboy opened this issue Apr 25, 2024 · 3 comments · Fixed by #1085
Closed
Assignees

Comments

@salaboy
Copy link
Contributor

salaboy commented Apr 25, 2024

Describe the proposal

Spring Boot developers should be able to use Testcontainers to start a local Dapr setup. This is already working here: https://github.com/diagridio/testcontainers-dapr, but this should be part of the Spring Boot and Dapr Java SDK integration, so it provides an out of the box experience to Spring Boot users.

I propose to adapt and move this code to the Dapr Java SDK repository so it is part of the Java SDK release stream.

@salaboy
Copy link
Contributor Author

salaboy commented Jul 8, 2024

This is work in progress and it is coming along slowly but surely

@salaboy
Copy link
Contributor Author

salaboy commented Jul 22, 2024

After building the Testcontainers integration with Dapr here: https://github.com/diagridio/testcontainers-dapr I will create a PR containing the Testcontainers module to be released as part of the Java SDK, so it can be versioned and distributed together for developers to use. This also needs to include documentation and community validation.

@salaboy
Copy link
Contributor Author

salaboy commented Jul 30, 2024

As part of this work, and after the testcontainers support is merged, we are working with @artur-ciocanu to bring the Spring Boot integration to support core Spring Data and Messaging interfaces. The goal is to demonstrate that Spring developers can leverage Dapr functionalities by using constructs that they already know, as KeyValueTemplate, CrudRepositories and MessagingTemplates.

The initial implementation of these constructs does not aim to be complete, but it includes the building blocks to provide more features that can be iteratively added.

The PR: #1089 (under review)
Includes a new structure for Spring Boot related artifacts following Spring and Spring Boot naming guidelines.
It also includes basic implementations for the Templates mentioned before and test to demonstrate their usage. This PR allows us to write documentation targeting Spring Boot users, while we have time to refine the implementation details.

The PubSub, Statestore and Binding APIs are used to implement functionality exposed by the Spring interfaces and highlights mismatches in support of different features by different Dapr components. The initial PR covers PostgreSQL and MySQL to avoid using the deprecated Query API.

Artur created this issue too: #1088 which covers part of what the PR under review includes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant