Repository navigation
chore: Migrate java-server-sdk-dynamodb-store to java-core - #241
kinyoklion wants to merge 1 commit into
Conversation
Move launchdarkly/java-server-sdk-dynamodb into lib/java-server-sdk-dynamodb-store and release it with release-please, following the redis-store migration. - Copy the sources, tests, Gradle wrapper (7.6), checkstyle config and CHANGELOG unchanged. - Replace the de.marcphilipp.nexus-publish and io.codearte.nexus-staging plugins with io.github.gradle-nexus.publish-plugin 1.3.0 and publish through the Central Portal OSSRH staging API, as the other packages do. - Drop the retired oss.sonatype.org repository and the unused ossrh credential properties. - Point the POM url and scm at java-core. - Add the package to release-please, the release workflow, the manual publish workflows, the shared CI action (DynamoDB Local on Linux) and a package workflow (Linux Java 8/11/17/19, Windows Java 11/17). - Add the package to the root README and add issue templates. Generated-by: termag
|
There were a number of dependabot items against the old location, and it looks like it isn't ready to easily be released. So moving it here should make it releasable when we need it, and we can archive the old repo. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c6a8f9e. Configure here.
| mkdir dynamo | ||
| Expand-Archive -Path dynamo.zip -DestinationPath dynamo | ||
| cd dynamo | ||
| Start-Process -FilePath "java" -ArgumentList "-D`"java.library.path=./DynamoDBLocal_lib`"","-jar","DynamoDBLocal.jar" |
There was a problem hiding this comment.
Windows Java 11 cannot run DynamoDB
Medium Severity
The Windows job downloads dynamodb_local_latest.zip and starts it with the matrix JDK, which includes Java 11. Current DynamoDB Local requires Java 17 or newer, so that job never gets a process listening on port 8000 and the integration tests fail. Start-Process also does not fail the step when the JVM exits immediately, so the setup step stays green.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit c6a8f9e. Configure here.


Moves launchdarkly/java-server-sdk-dynamodb into
lib/java-server-sdk-dynamodb-storeand releases it with release-please. It follows the redis-store migration (#45) and the publishing changes made to that package since then (#48, #82, #153), so the DynamoDB package uses the same tooling as the rest of the repo.Requirements
The library code and tests are unchanged. This PR's CI covers the platform matrix: Linux on Java 8/11/17/19 and Windows on Java 11/17.
Describe the solution you've provided
Package contents (
lib/java-server-sdk-dynamodb-store/)checkstyle.xml,settings.gradle,CHANGELOG.mdand the Gradle 7.6 wrapper are byte-for-byte copies ofjava-server-sdk-dynamodb@main. The wrapper is also identical to redis-store's..gitignoreis the same as redis-store's.Build changes (
build.gradle,gradle.properties). The old repo could no longer publish.de.marcphilipp.nexus-publish0.4.0 andio.codearte.nexus-staging0.30.0 withio.github.gradle-nexus.publish-plugin1.3.0, and removed thenexusStagingblock.publish.shcallspublishToSonatype closeAndReleaseSonatypeStagingRepository, and only the gradle-nexus plugin provides those tasks.nexusPublishingnow targets the Central Portal OSSRH staging API (ossrh-staging-api.central.sonatype.com) and the Central snapshots repo, the same as redis-store and otel. Credentials come from-PsonatypeUsername/-PsonatypePasswordas with the other packages, so theossrhUsername/ossrhPasswordproperties are gone.oss.sonatype.orgresolution repository. That host is retired and now redirects to a Maven Central path that doesn't exist. Redis-store still lists it and could drop it in a follow-up.urlandscmnow point at java-core.#x-release-please-start-versionmarkers aroundversioningradle.properties.Repo wiring
release-please-config.jsonand.release-please-manifest.json: addedlib/java-server-sdk-dynamodb-storewith package namelaunchdarkly-java-server-sdk-dynamodb-store, starting from the last published version, 5.0.0. Tags will look likelaunchdarkly-java-server-sdk-dynamodb-store-5.0.1.release-please.yml: added apackage-server-sdk-dynamodb-store-releasedoutput and arelease-server-sdk-dynamodb-storejob, a copy of the redis-store job.manual-publish.ymlandmanual-publish-docs.yml: added the package to the workspace choices..github/actions/ci/action.yml: startsamazon/dynamodb-localon port 8000 when the workspace is this package, like the Redis step.java-server-sdk-dynamodb-store.ymlworkflow:Run Testsstep runs onsteps.build.outcome. The redis job keys that step oninputs.run_tests, which is always empty in a push/PR workflow, so that step never runs.buildstill runs the tests either way.README.md: added a row and link references under "Other Packages".package-dynamodb-store--bug_report.mdandpackage-dynamodb-store--feature_request.md.Not carried over, because java-core already covers them or doesn't use them:
.ldrelease/config.yml, the old CI action and workflow,stale.yml,dependabot.yml,gradle.properties.example,CODEOWNERS,LICENSE,SECURITY.mdandCONTRIBUTING.md.Release behavior
The commit override below makes release-please open a 5.0.1 release PR for this package after the merge. The only change to the published artifact is the POM metadata, the same kind of change as redis-store 3.1.1 (#153). That first release exercises the new pipeline end to end: Central Portal publish, signing, and docs to
launchdarkly.github.io/java-core/lib/java-server-sdk-dynamodb-store/. To merge without releasing, delete thefix:line.BEGIN_COMMIT_OVERRIDE
chore: Migrate java-server-sdk-dynamodb-store to java-core
fix: Update Maven POM URLs to java-core
END_COMMIT_OVERRIDE
Validation done locally (Temurin 8 container next to an
amazon/dynamodb-localcontainer)gradlew dependencies,build(which includescheckstyleMain/checkstyleTest),jarandjavadocall succeed. 27 tests pass, 0 fail.gradlew tasks --alllistspublishToSonatypeandcloseAndReleaseSonatypeStagingRepository.publishToMavenLocalproduces the jar, sources, javadoc,.moduleand a POM with java-coreurl/scm.Before merging
package: java-server-sdk-dynamodb-storelabel in java-core. The new issue templates and the README issues link use it.After the first release from java-core
5.0.1is on Maven Central and the docs are on GitHub Pages.launchdarkly/java-server-sdk-dynamodb, as was done forjava-server-sdk-redis. Its maintenance branches (2.x,3.x,4.x,aws-v1) aren't migrated. It has no open issues or PRs.Describe alternatives you've considered
Additional context
Follow-ups this PR deliberately doesn't change, so the move stays behavior-neutral:
software.amazon.awssdk:dynamodbAPI dependency is still pinned at 2.10.32 (2019). Applications get that version transitively unless they declare their own.Opened from termag
Note
Overview
Moves
launchdarkly-java-server-sdk-dynamodb-storefrom the standalonejava-server-sdk-dynamodbrepo intolib/java-server-sdk-dynamodb-store, matching the redis-store monorepo pattern. Runtime library and tests are carried over as-is; the meaningful product change is repo and release plumbing, not new DynamoDB behavior.Build and publish:
build.gradleswitches toio.github.gradle-nexus.publish-pluginand Sonatype Central Portal staging URLs, drops legacy OSSRH config, and points Maven POMurl/scmat java-core.gradle.propertiesgets release-please version markers (starting at 5.0.0).Automation: Registers the package in
release-please-config.json,.release-please-manifest.json,manual-publish.yml,manual-publish-docs.yml, and adds arelease-server-sdk-dynamodb-storejob inrelease-please.yml. Shared CI starts DynamoDB Local (Docker on Linux) when building this workspace; a dedicated workflow runs Linux (Java 8/11/17/19) and Windows (11/17) builds.Docs and triage: Root
READMElists the package; new GitHub issue templates use thepackage: java-server-sdk-dynamodb-storelabel.Reviewed by Cursor Bugbot for commit c6a8f9e. Bugbot is set up for automated code reviews on this repo. Configure here.