Conversation
0caadbe to
4ed6065
Compare
8447e23 to
6cc8c41
Compare
6cc8c41 to
8ab7d71
Compare
bac7d67 to
ea50ddf
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR updates the AWS SDK v2 from version 2.33.12 to 2.37.2, adapts to breaking API changes in the SDK, and adds support for unquoted ETags in conditional request headers.
- Updates ChecksumTrailerProvider constructor to include new required parameters for AWS SDK v2 compatibility
- Adds support for unquoted ETags in if-match and if-none-match headers to match S3 behavior
- Updates changelog with release notes for version 4.10.0
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pom.xml | Bumps AWS SDK v2 from 2.33.12 to 2.37.2 |
| server/src/test/kotlin/com/adobe/testing/s3mock/ChecksumTestUtil.kt | Adapts ChecksumTrailerProvider constructor call to new API with additional parameters |
| server/src/main/java/com/adobe/testing/s3mock/service/ObjectService.java | Implements unquoted ETag handling in if-match and if-none-match conditional headers |
| integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/GetPutDeleteObjectIT.kt | Adds integration tests for unquoted ETag support in conditional headers |
| CHANGELOG.md | Updates changelog to document version 4.10.0 release and associated changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var setMatch = match != null && !match.isEmpty(); | ||
| if (setMatch) { | ||
| if (match.contains(WILDCARD_ETAG) || match.contains(WILDCARD) || match.contains(etag)) { | ||
| var unquotedEtag = etag.replace("\"", ""); |
There was a problem hiding this comment.
The unquotedEtag is computed even when it might not be needed. Consider computing it only when the initial checks with the quoted etag fail, to avoid unnecessary string operations when the quoted etag matches directly.
| var setNoneMatch = noneMatch != null && !noneMatch.isEmpty(); | ||
| if (setNoneMatch) { | ||
| if (noneMatch.contains(WILDCARD_ETAG) || noneMatch.contains(WILDCARD) || noneMatch.contains(etag)) { | ||
| var unquotedEtag = etag.replace("\"", ""); |
There was a problem hiding this comment.
The logic for creating unquotedEtag is duplicated on lines 371 and 396. Consider extracting this to a helper method or computing it once at the beginning of the method (line 358-359 area) to avoid duplication.
Description
Related Issue
Tasks