This project aims to integrate Spring Modulith with Google Cloud Platform services. The initial focus is on supporting GCP Datastore through a custom, work-in-progress transaction manager that overcomes the limitations of the official GCP Spring library.
// For the starter (recommended)
implementation("pl.brightinventions.spring.modulith:spring-modulith-starter-gcp-datastore:1.0.3")
// Or individual modules
implementation("pl.brightinventions.spring.modulith:spring-gcp-datastore:1.0.3")
implementation("pl.brightinventions.spring.modulith:spring-modulith-events-gcp-datastore:1.0.3")
<!-- For the starter (recommended) -->
<dependency>
<groupId>pl.brightinventions.spring.modulith</groupId>
<artifactId>spring-modulith-starter-gcp-datastore</artifactId>
<version>1.0.3</version>
</dependency>
<!-- Or individual modules -->
<dependency>
<groupId>pl.brightinventions.spring.modulith</groupId>
<artifactId>spring-gcp-datastore</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>pl.brightinventions.spring.modulith</groupId>
<artifactId>spring-modulith-events-gcp-datastore</artifactId>
<version>1.0.3</version>
</dependency>
-
spring-gcp-datastore
Core module providing GCP Datastore integration with Spring. -
spring-modulith-events-gcp-datastore
Integration of Spring Modulith Events with GCP Datastore for event storage. See module documentation for details. -
spring-modulith-starter-gcp-datastore
Spring Boot starter for easy integration of Spring Modulith with GCP Datastore.
-
Spring Modulith & GCP Datastore:
Implement a dedicated transaction manager to seamlessly integrate Spring Modulith with GCP Datastore, removing the limitations of the existing manager provided by the official library. -
Future Enhancements:
Support for GCP Firebase and Spanner is planned for future development.
Please refer to the guidelines for further information on code style and testing practices. Note that the project adheres to Spring Boot Starter conventions and Gradle's Kotlin DSL using version 8.13, as well as JVM target 21.
This project uses GitHub Actions for continuous integration and automated releases to Maven Central.
The CI workflow runs on every push to the main branch and on pull requests. It builds the project and runs all tests.
To release a new version to Maven Central:
- Go to the "Actions" tab in the GitHub repository
- Select the "Release" workflow
- Click "Run workflow"
- Enter the release version (e.g., "0.1.0") and the next development version (e.g., "0.1.1-SNAPSHOT")
- Click "Run workflow"
The workflow will:
- Update the version in the build files
- Build and test the project
- Sign the artifacts with GPG
- Publish to Maven Central
- Create a Git tag for the release
- Update the version to the next development version
The following secrets must be configured in the GitHub repository:
SONATYPE_USERNAME
: Sonatype OSSRH usernameSONATYPE_PASSWORD
: Sonatype OSSRH passwordGPG_SIGNING_KEY
: GPG private key for signing artifactsGPG_SIGNING_PASSWORD
: Password for the GPG key
- Bright Inventions Team
For more information about the company behind this project, please visit Bright Inventions.