Update dependency com.adobe.testing:s3mock-testcontainers to v5.2.0 - #5351
Open
renovate-bot wants to merge 1 commit into
Open
Update dependency com.adobe.testing:s3mock-testcontainers to v5.2.0#5351renovate-bot wants to merge 1 commit into
renovate-bot wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.1.0→5.2.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
adobe/S3Mock (com.adobe.testing:s3mock-testcontainers)
v5.2.0Compare Source
UploadPartas.partmeta.jsonsidecar files so thatCompleteMultipartUploadcan pass without clients re-sending per-part checksums forFULL_OBJECTtype uploads. (#3034)ListParts(returned in eachPartelement) andGetObjectAttributes(ObjectPartsattribute).COMPOSITErequires per-part checksums inCompleteMultipartUpload;FULL_OBJECTdoes not.ChecksumTypeis now derived per algorithm when not explicitly specified (CRC64NVME→FULL_OBJECT;CRC32/CRC32C/SHA1/SHA256→COMPOSITE), matching real S3 behavior.CreateMultipartUploadwith HTTP 400 (COMPOSITE+CRC64NVME,FULL_OBJECT+SHA1,FULL_OBJECT+SHA256).S3MockContainer(Testcontainers) now supports the S3 Vectors API. CallwithVectors()to activate thevectorsSpring profile and connect via the newvectorsHttpEndpoint/vectorsHttpsEndpointaccessors (container ports9092/9193).S3MockContainer(Testcontainers) addswithDebug()to activate the server'sdebugSpring profile andwithSpringProfiles(...)to add arbitrary profiles. Spring profiles now compose (comma-separated, de-duplicated) instead of overwriting, sowithVectors(),withDebug(), andwithSpringProfiles(...)can be freely combined.x-amz-delete-marker: trueis now correctly returned when deleting a versioned object that is itself a delete marker (previously returnedfalse).bucket-owner-full-controlcanned ACL now correctly grantsFULL_CONTROLto the bucket owner (was incorrectly grantingREAD, same asbucket-owner-read).ListObjectVersionsno longer skips objects whose key contains characters requiring URL-encoding — a decoding mismatch caused their version metadata lookup to fail, returning an empty version list for those keys.CompleteMultipartUploadnow returns a properNoSuchUploadS3 error instead of an internal server error when the upload result cannot be resolved.GetObjectLegalHoldandGetObjectRetentionnow correctly return a404 NotFoundwhen only the other lock type is set on the object, instead of incorrectly returning200 OKwith an empty body.ListObjectVersionsnow URL-encodes theDelimiterfield in the response whenencoding-type=urlis requested, consistent withPrefix,KeyMarker, and object keys.PutObjectRetention/GetObjectRetentionnow parseRetainUntilDatewith full nanosecond precision instead of truncating to milliseconds, fixing incorrect retention timestamp comparisons.ListBuckets/ListObjectsV2no longer leak an entry into an in-memory pagination-state map on every truncated listing that isn't paged through to exhaustion — the "continue after" marker is now encoded directly into the continuation token instead of being tracked server-side, so long-lived servers under sustained listing traffic no longer grow memory unboundedly.PutObject/PostObject/UploadPartno longer leak the request's temp file on disk when a later validation (bucket existence, MD5/checksum mismatch, invalid part number, etc.) rejects the request — the temp file is now always cleaned up, not just on the success path.CompleteMultipartUploadnow closes already-opened part-file streams if a later part fails to open, instead of leaking their file descriptors.ListBucketsnow rejects a non-positivemax-bucketswith400 Bad Requestinstead of an unhandled exception.Content-MD5request header, which could be used to forge log entries.GetObjectwith aRangeheader no longer risks a500 Internal Server Erroron large objects — range positioning now guarantees an exact skip to the requested start offset instead of relying onInputStream.skip, which is permitted to skip fewer bytes than requested.software.amazon.awssdk:s3client SDK dependency from the server module (only itschecksums,regions, andutilshelper classes were ever used) — shrinks the Docker image by removing ~15 transitive jars (Netty/Apache HTTP clients, protocol/model classes) that were never exercised at runtime.max-partsandmax-uploadsmultipart listing parameters instead of failing with server errors.ListPartsnow correctly returnsIsTruncated=falseand aNextPartNumberMarkerequal to the last returned part's number (or0/the request'spart-number-markerwhen no parts are returned, e.g.max-parts=0) instead ofnull/incorrectly reporting the page as truncated, matching real S3.ListMultipartUploadswithmax-uploads=0now returns an empty, non-truncated page (IsTruncated=falseand emptyNextKeyMarker/NextUploadIdMarker) instead of incorrectly reporting the page as truncated, matching real S3.software.amazon.awssdk:aws-crt-clientdependency with a pure-JVMCrc64Nvmechecksum implementation. The nativeaws-crtlibrary was only pulled in to compute theCRC64NVMEchecksum and bundled ~20MB of per-platform native binaries (MQTT, S3, TLS, HTTP) that were otherwise unused — shrinking the executable fat jar from ~54MB to ~34MB (−37%) and removing native-library loading at startup.aws-crtis now a test-only dependency (the AWS SDK chunk-encoder used to build test fixtures still requires it).software.amazon.awssdk:regionsdependency from the server module. It was only used to type thecom.adobe.testing.s3mock.store.regionconfig property (defaultus-east-1), but transitively bundled the entiresdk-corechain (sdk-core,third-party-jackson-core,retries,profiles,json-utils, and several SPIs). The property is now a plainString, shrinking the executable fat jar by a further ~3MB (~34MB to ~31MB). No user-facing change — the region is still configured the same way.Dockerfileanddocker buildxshell scripts (and the entiredockermodule) were replaced by the Spring Boot Maven plugin'sbuild-imagegoal.bellsoft/buildpacks.builder:musl) instead of the default Paketonoble-java-tinybuilder, and the jlink JRE is trimmed further (--vm=serverdrops the unused client/minimal JVMs,--compress=zip-9shrinks the module layer).S3MockContainer.withVolumeAsRoot(...)now runs the container asroot. Because the Buildpacks image runs as the non-rootcnbuser, writes to a host-owned bind mount previously failed with HTTP 500 on Linux (e.g. in CI) — the container could not write into a directory it did not own.-XX:+ExitOnOutOfMemoryError-triggered JVM exits under concurrent load (surfacing to clients asConnection reset) — Serial GC's fully-compacting collections reclaim memory more reliably at this heap size.integration-testsmodule now starts one S3Mock container per test class via Testcontainers instead of the fabric8docker-maven-plugin, giving each test class full state isolation.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.