DBOS Transact Java SDK
Install a recent OpenJDK. I use OpenJDK 21.
https://adoptium.net/en-GB/temurin/releases/?os=any&arch=any&version=21
Recommended IDE IntelliJ (Community edition is fine). But feel free to use vi or VSCode, if you are more comfortable with it.
Postgres docker container with
localhost
port 5432
user postgres
export PGPASSWORD = password for postgres user
./gradlew clean buildThe DBOS Transact Java SDK uses Spotless for consistent formatting.
Spotless checks formatting automatically during build
If build fails because of format violations, you can update the code with the spotlessApply Gradle task.
./gradlew spotlessApply./gradlew clean test./gradlew publishToMavenLocalAdd to your build.gradle.kts
implementation("dev.dbos:transact")
implementation("ch.qos.logback:logback-classic:1.5.6")DBOS uses the gradle-versions-plugin to detect dependencies that need updates.
./gradlew dependencyUpdatesThis will generate a report on the console and in build/dependencyUpdates/report.txt of the project dependencies that are out of date.
DBOS Transact for Java follows the Maven version order algorithm.
Release branch builds are published to Maven Central.
To create a new release, run this from the main branch
java scripts/createRelease --version 1.2.3 --pushThis command tags the latest commit with the version number and creates a release branch for it.
If a version number is not supplied, it is generated by incrementing the last released minor version.
If --push option is provided, the tag and release branch are pushed to origin.
Release branch patch builds are published to Maven Central.
To create a new release, run this from a release branch
java scripts/createRelease --pushThis command tags the latest commit with the version number.
The version number is generated by incrementing the last released patch version.
If --push option is provided, the tag is pushed to origin.
Main branch builds may be published to Maven Central. To facilitate publishing, main branch builds carry the automatically generated version number (i.e.incremented minor version ) as well as a prerelease tag `-m. The git commit count is the number of commits since the last release.
Feature branch builds are not designed to be published to Maven Central.
Like main branch builds, feature branch builds carry the automatically generated version number
and a prerelease tag -a<git-commit-count>. In Maven version order algorithm, the -aprerelease prefix is lower priority than the-mprefix. Feature branch builds also carry an additional-g` prerelease tag.