Skip to content

chore(java): shut down local DDB in test #2176

Merged
rishav-karanjit merged 15 commits into
mainfrom
tearDownLocalDDB
Apr 7, 2026
Merged

chore(java): shut down local DDB in test #2176
rishav-karanjit merged 15 commits into
mainfrom
tearDownLocalDDB

Conversation

@rishav-karanjit
Copy link
Copy Markdown
Member

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@rishav-karanjit rishav-karanjit changed the title chore: shut down local DDB once its no longer needed chore(java): shut down local DDB once its no longer needed Mar 31, 2026
@rishav-karanjit rishav-karanjit marked this pull request as ready for review March 31, 2026 17:39
@rishav-karanjit rishav-karanjit requested a review from a team as a code owner March 31, 2026 17:39
@rishav-karanjit rishav-karanjit changed the title chore(java): shut down local DDB once its no longer needed chore(java): shut down local DDB in test Mar 31, 2026
methodCalls.clear();
}

@AfterMethod
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to shut down ddb local after each test method? If yes, can you explain why?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, @AfterMethod is intentional here. The @BeforeMethod setup() creates a new DynamoDB Local client and @AfterMethod is doing the reverse as its consuming a lot of memory without shutting it down.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The crux of question is that do we need DB local to be created after each test method? Why can't we setup DB local for a test class and do setup/teardown after the test class is complete. This practice is seen on other test cases in the same PR.

Copy link
Copy Markdown
Member Author

@rishav-karanjit rishav-karanjit Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point — I've refactored CachingMostRecentProviderTests to create the DDB Local client once in BeforeClass and shut it down in AfterClass, with table create/delete per method for test isolation as test expects it.

For TransformerHolisticIT, the refactor of interop test takes longer — the parameterized tests expect fresh DDB Local instance to get a completely clean database per scenario, and converting that to a shared client would require refactoring of interop test. Since we plan to delete sdkv1 anyway, I did not refactor all of the interop test.

@rishav-karanjit rishav-karanjit merged commit fa1e151 into main Apr 7, 2026
183 of 189 checks passed
@rishav-karanjit rishav-karanjit deleted the tearDownLocalDDB branch April 7, 2026 19:10
rishav-karanjit pushed a commit that referenced this pull request Apr 16, 2026
## [4.0.0](v3.9.1...v4.0.0) (2026-04-16)

### ⚠ BREAKING CHANGES

* **.net:** Bump MPL V2 (#2145)

### feat

* **.net:** Bump MPL V2 ([#2145](#2145)) ([87c534b](87c534b))

### Fixes -- Java

* **java:** drop hkdf offset method ([#2222](#2222)) ([7aad5fb](7aad5fb))

### Maintenance -- Java

* **java:** Attempt to reduce flaky CI ([#2220](#2220)) ([987aec6](987aec6))
* **java:** attempt to reduce flaky CI failures ([#2203](#2203)) ([b4d88f1](b4d88f1))
* **java:** merge from main  ([53d6ba3](53d6ba3))
* **java:** shut down local DDB in test ([#2176](#2176)) ([fa1e151](fa1e151))

### Maintenance -- Rust

* **rust:** release v1.2.4 ([#2184](#2184)) ([6823d31](6823d31))

### Miscellaneous

* **.net:** add ddb local to .net release ([#2075](#2075)) ([db55bdf](db55bdf))
* **.net:** comment out testvectors from release ([#2076](#2076)) ([fdaa9e3](fdaa9e3))
* **.net:** fix release commands to include all json tv files ([#2072](#2072)) ([10f809d](10f809d))
* **.net:** pin mpl to latest ([#2065](#2065)) ([f6b64a6](f6b64a6))
* **.net:** reference submoduled mpl ([#2080](#2080)) ([be3f58f](be3f58f))
* add code coverage check ([#2171](#2171)) ([c2ae8e7](c2ae8e7))
* add DDBEC examples ([#2064](#2064)) ([9b7c284](9b7c284))
* add integration test and unit test ([#2139](#2139)) ([3cb8a96](3cb8a96))
* add migration examples  ([#2057](#2057)) ([18dbc50](18dbc50))
* add more interop tests ([#2131](#2131)) ([c06bc3a](c06bc3a))
* add multi order test ([#2170](#2170)) ([d09cd16](d09cd16))
* add test for DDBEC with sdk v2 ([#2126](#2126)) ([e3ac7cd](e3ac7cd))
* add user agent string ([#2172](#2172)) ([88c597c](88c597c))
* bump GitHub Actions to latest versions ([#2144](#2144)) ([92615d4](92615d4))
* **ci:** add workflow_dispatch and remove run on PR for daily CI ([#2218](#2218)) ([d6fd0fb](d6fd0fb))
* **ci:** daily ci for branches ([#2208](#2208)) ([fcc4b97](fcc4b97))
* **ci:** remove branch default to main ([#2219](#2219)) ([1a3d1f0](1a3d1f0))
* **CI:** run clippy ([#2181](#2181)) ([6b54985](6b54985))
* **ci:** run test on Java 21 and windows OS ([#2159](#2159)) ([6e702d8](6e702d8))
* **ci:** use snapshot builds ([#2083](#2083)) ([0124ca6](0124ca6))
* copy DDBEC with SDK v2 code as-is from internal ([#2047](#2047)) ([dc439b4](dc439b4))
* delete ddbec which uses AWS SDK Java v1 ([#2193](#2193)) ([bb74687](bb74687))
* **deps:** bump actions/checkout v5->v6 and setup-docker-macos-action v1.0.2->v1.1.0 ([#2130](#2130)) ([337c776](337c776))
* **deps:** update aws-lc-sys requirement from 0.38 to 0.39 in /DynamoDbEncryption/runtimes/rust ([#2149](#2149)) ([b76bcb7](b76bcb7))
* fix CI (almost) and make AWS SDK v1 compileOnly ([#2049](#2049)) ([e509a56](e509a56))
* merge from main ([e9f8259](e9f8259))
* merge from main 2nd try ([eb17468](eb17468))
* merge from main and fix ubuntu failing ([#2192](#2192)) ([3317b4d](3317b4d))
* move put cache after signature verification ([#2223](#2223)) ([49b8b67](49b8b67))
* refactor non-prod CI to only run Go targets ([#2134](#2134)) ([0d2622c](0d2622c))
* release aws-db-esdk v1.2.3 ([#2122](#2122)) ([888aaba](888aaba))
* Rename `Directkmsmaterialsprovider` to `Directkmsmaterialprovider` ([#2150](#2150)) ([4126efa](4126efa))
* rename and format ([#2118](#2118)) ([091b7b4](091b7b4))
* run java test on ubuntu ([#2167](#2167)) ([cffa72c](cffa72c))
* update internal legacy override with adapter pattern  ([#2054](#2054)) ([abbac83](abbac83))
* update readme and remove comments in CI ([#2158](#2158)) ([7e1c863](7e1c863))
rishav-karanjit added a commit that referenced this pull request Apr 29, 2026
## [4.0.0](v3.9.0-java...v4.0.0-java) (2026-04-29)

### ⚠ BREAKING CHANGES

* **java:** add DDBEC with SDK v2 and remove DDBEC with SDK V1 (#2048)
  * The AWS Database Encryption SDK for DynamoDB will NOT support AWS SDK for Java 1.x in the embedded 2.x version (which was known as DynamoDB Encryption Client(DDBEC)). The embedded DDBEC will now use AWS SDK for Java 2.x. These changes are limited to embedded DDBEC and rest of DB-ESDK has no code changes.
  * If consumer of DB-ESDK is using APIs from namespace `com.amazonaws.services.dynamodbv2` through DB-ESDK then they have to migrate to use corresponding API from namespace `com.amazonaws.services.dynamodbv2.datamodeling.sdkv2`. If consumer of DB-ESDK are NOT using namespace `com.amazonaws.services.dynamodbv2` through DB-ESDK then there will not be any breaking change when moving to next major version.

### Features -- Java

* **java:** add DDBEC with SDK v2 and remove DDBEC with SDK V1 ([#2048](#2048)) ([035dbe3](035dbe3))

### Fixes -- All Languages

* use UUIDs and cleanup in beacon styles example to avoid stale item collisions ([#2125](#2125)) ([773c1ff](773c1ff))

### Fixes -- Java

* **java:** drop hkdf offset method ([#2011](#2011)) ([b8f29f9](b8f29f9))

### Maintenance -- All Languages

* **dafny:** bump MPL and update mutable map ([#1974](#1974)) ([e9ea870](e9ea870))
* **dafny:** bump smithy dafny  ([#1971](#1971)) ([85309a0](85309a0))

### Maintenance -- Java

* **java:** Allow local testing ([#1947](#1947)) ([bf5a106](bf5a106))
* **java:** Attempt to reduce flaky CI ([#2220](#2220)) ([987aec6](987aec6))
* **java:** attempt to reduce flaky CI failures ([#2203](#2203)) ([b4d88f1](b4d88f1))
* **java:** bring back test against released MPL version ([#2226](#2226)) ([a340b34](a340b34))
* **java:** fix GetEncryptedDataKeyDescription java Example  ([#1973](#1973)) ([ba8fcb7](ba8fcb7))
* **java:** retry failed workflow ([#2229](#2229)) ([2668d68](2668d68))
* **java:** shut down local DDB in test ([#2176](#2176)) ([fa1e151](fa1e151))
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 this pull request may close these issues.

3 participants