S3Mock

A simple mock implementation of the AWS S3 API startable as Docker image, TestContainer, JUnit 4 rule, JUnit Jupiter extension or TestNG listener

APACHE-2.0 License

Stars
785

Bot releases are hidden (Show)

S3Mock - 2.12.2

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Speed up AwsChunkedDecodingInputStream (fixes #1115)

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.12.1...2.12.2

S3Mock - 2.12.1

Published by afranken over 1 year ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Expose all headers for CORS requests (fixes #1023)
    • Fixed various error responses, validations and http return codes
      • Verified all integration tests against the AWS S3 API, fixed S3Mock to match S3 responses exactly.
  • Version updates
    • Bump spring-boot.version from 2.7.6 to 2.7.7
    • Bump testng from 7.7.0 to 7.7.1
    • Bump checkstyle from 10.5.0 to 10.6.0
    • Bump alpine from 3.17.0 to 3.17.1 in /docker
    • Bump xmlunit-assertj3 from 2.9.0 to 2.9.1
    • Bump maven-failsafe-plugin from 3.0.0-M7 to 3.0.0-M8
    • Bump maven-checkstyle-plugin from 3.2.0 to 3.2.1
    • Bump maven-surefire-plugin from 3.0.0-M7 to 3.0.0-M8
    • Bump aws-java-sdk-s3 from 1.12.369 to 1.12.389
    • Bump aws-v2.version from 2.19.1 to 2.19.16

What's Changed

New Contributors

Full Changelog: https://github.com/adobe/S3Mock/compare/2.11.0...2.12.1

S3Mock - 2.11.0

Published by afranken almost 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support for GetBucketLocation API (fixes #985)
  • Version updates
    • Bump aws-java-sdk-s3 from 1.12.346 to 1.12.369
    • Bump aws-v2.version from 2.18.21 to 2.19.1
    • Bump docker-maven-plugin from 0.40.2 to 0.40.3
    • Bump maven-dependency-plugin from 3.3.0 to 3.4.0
    • Bump mockito-kotlin from 4.0.0 to 4.1.0
    • Bump checkstyle from 10.4 to 10.5.0
    • Bump kotlin.version from 1.7.21 to 1.7.22
    • Bump alpine from 3.16.3 to 3.17.0 in /docker
    • Bump spring-boot.version from 2.7.5 to 2.7.6

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.10.2...2.11.0

S3Mock - 2.10.2

Published by afranken almost 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Let S3Mock return correct errors for invalid bucket names (fixes #935)
      • Previous implementation returned a Spring generated error which does not disclose what's actually wrong
      • If the bucket name is not valid, the bucket can't be created. If a later request still contains this invalid name, S3Mock will now return a 404 not found.

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.10.1...2.10.2

S3Mock - 2.10.1

Published by afranken almost 2 years ago

  • Features and fixes
    • Let S3Mock use streams for MD5 verification (fixes #939)
      • Previous implementation read the full stream into memory, leading to OutOfMemory errors if the file is larger than the available heap.

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.10.0...2.10.1

S3Mock - 2.10.0

Published by afranken almost 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Let S3Mock use container memory and cpu (fixes #922)
      • Set resource limits through docker like this: docker run -it --memory="1g" --cpus="1.0"
  • Version updates
    • Bump alpine from 3.16.2 to 3.16.3 in /docker
    • Bump testcontainers.version from 1.17.5 to 1.17.6
    • Bump maven-install-plugin from 3.0.1 to 3.1.0
    • Bump aws-v2.version from 2.18.15 to 2.18.21
    • Bump aws-java-sdk-s3 from 1.12.340 to 1.12.346

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.9.1...2.10.0

S3Mock - 2.9.1

Published by afranken almost 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • IDs in stores must be different for all objects (fixes #877)

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.9.0...2.9.1

S3Mock - 2.9.0

Published by afranken almost 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Support restarting S3Mock with the retainFilesOnExit option enabled. (fixes #818, #877)
    • Let AWS SDKv2 use path style access (fixes #880)
      • Starting with AWS SDKv2.18.x domain style access is the default. This is currently not
        supported by S3Mock.
  • Version updates
    • Bump aws-v2.version from 2.17.284 to 2.18.15
    • Bump aws-java-sdk-s3 from 1.12.313 to 1.12.340
    • Bump kotlin.version from 1.7.20 to 1.7.21
    • Bump maven-release-plugin from 3.0.0-M6 to 3.0.0-M7
    • Bump checkstyle from 10.3.4 to 10.4
    • Bump spring-boot.version from 2.7.4 to 2.7.5
    • Bump testcontainers.version from 1.17.4 to 1.17.5

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.8.0...2.9.0

S3Mock - 2.8.0

Published by afranken about 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Add support for BucketLifecycleConfiguration APIs (fixes #291)
      • Implement GetBucketLifecycleConfiguration / PutBucketLifecycleConfiguration / DeleteLifecycleConfiguration
      • S3Mock currently does not enforce the lifecycle configuration.
  • Version updates
    • Bump aws-java-sdk-s3 from 1.12.309 to 1.12.312
    • Bump aws-v2.version from 2.17.281 to 2.17.284
    • Bump kotlin.version from 1.7.10 to 1.7.20
    • Bump checkstyle from 10.3.3 to 10.3.4
    • Bump testcontainers.version from 1.17.3 to 1.17.4

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.7.1...2.8.0

S3Mock - 2.7.2

Published by afranken about 2 years ago

Accidentally released 2.7.2 instead of 2.8.0 - please ignore :(

S3Mock - 2.7.1

Published by afranken about 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Avoid root folder temporary directory race condition (fixes #837)
      • Thanks to @ginkel for the fix!

What's Changed

New Contributors

Full Changelog: https://github.com/adobe/S3Mock/compare/2.7.0...2.7.1

S3Mock - 2.7.0

Published by afranken about 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Add support for ACL APIs (fixes #213 / #290)
      • Implement GetObjectACL / PutObjectACL
      • Return / accept String instead of a POJO. We need to use JAX-B annotations instead of Jackson annotations
        because AWS decided to use xsi:type annotations in the XML representation, which are not supported
        by Jackson. It doesn't seem to be possible to use bot JAX-B and Jackson for (de-)serialization in parallel.
  • Version updates
    • Bump aws-java-sdk-s3 from 1.12.298 to 1.12.309
    • Bump aws-v2.version from 2.17.269 to 2.17.281
    • Bump spring-boot.version from 2.7.3 to 2.7.4
    • Bump maven-jar-plugin from 3.2.2 to 3.3.0

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.6.3...2.7.0

S3Mock - 2.6.3

Published by afranken about 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • Handle all incoming and outgoing ETags according to RFC2616 / RFC7232 (fixes #807)
      • Fixes ETag handling in GetObject, HeadObject, CopyObject, UploadPartCopy APIs.
      • We are now generating and storing ETags in the "RFC-Format" with enclosing double quotes.
      • Incoming ETags are used verbatim to compare against the internally held representation.
      • Wildcard ETags are also correctly handled.

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.6.2...2.6.3

S3Mock - 2.6.2

Published by afranken about 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • LastModified must be updated when copying an object onto itself (fixes #811)
  • Refactorings
    • Split up integration tests by type

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.6.1...2.6.2

S3Mock - 2.6.1

Published by afranken about 2 years ago

2.x is JDK8 LTS bytecode compatible, with Docker and JUnit / direct Java integration.

  • Features and fixes
    • ETags in requests and responses must comply to RFC-2616 (fixes #801)
      • Fixes ListObjects and ListObjectsV2 APIs.
      • Whenever S3Mock uses Serialization / Deserialization with Jackson, we must use our custom
        EtagSerializer / EtagDeserializer that wraps and unwraps the etag for the DTO.
  • Version updates
    • Bump aws-v2.version from 2.17.267 to 2.17.269
    • Bump aws-java-sdk-s3 from 1.12.296 to 1.12.298

What's Changed

Full Changelog: https://github.com/adobe/S3Mock/compare/2.6.0...2.6.1

S3Mock - 2.6.0

Published by afranken about 2 years ago

  • Features and fixes
    • Add support for LegalHold APIs (fixes #157)
      • Implement GetObjectLegalHold / PutObjectLegalHold
      • Implement GetObjectLockConfiguration / PutObjectLockConfiguration
      • In S3, object locking can only be activated for versioned buckets, versions are currently not supported by S3Mock.
        S3 enforces LegalHold only for versions, so S3Mock currently can't enforce the legal hold.
    • Add support for Retention APIs
      • Implement GetObjectRetention / PutObjectRetention
      • In S3, object locking can only be activated for versioned buckets, versions are currently not supported by S3Mock.
        S3 enforces retention only for versions, so S3Mock currently can't enforce the retention.
  • Refactorings
    • Added support for IntegrationTests to use a dedicated bucket per test method
      • Refactored some IntegrationTests to this pattern.
    • Use AWS SDK internal Utils for instants and encoding
      • Using software.amazon.awssdk.utils.DateUtils and software.amazon.awssdk.utils.http.SdkHttpUtils
      • These classes are marked as software.amazon.awssdk.annotations.SdkProtectedApi
        which means that SDK users (liek S3Mock) should not use these classes, but S3Mock has to exactly match the
        behaviour and expectations of the AWS SDKs, and it's easier to depend on internal AWS SDK classes
        instead of replicating or copying the code.
      • S3Mock may have violated the AWS SDK license before by including source code without explicitly
        stating that it's AWS copyrighted code. (In the JavaDoc it did say that this is a copy with
        a reference to the class, though)
  • Version updates
    • Bump aws-v2.version from 2.17.263 to 2.17.267
    • Bump aws-java-sdk-s3 from 1.12.292 to 1.12.296
S3Mock - 2.5.4

Published by afranken about 2 years ago

  • Features and fixes
    • Rename local storage files, add file system structure documentation to README.md (fixes #220)
    • @Configuration / @ConfigurationProperties classes now public to enable customers to use @Import / @ContextConfiguration on them. (fixes #751)
S3Mock - 2.5.3

Published by afranken about 2 years ago

  • Features and fixes
    • Remove Spring Component Index from S3Mock (fixes #786)
      • Adding a Spring Component Index file is a breaking change for all clients of the s3mock.jar
      • If Spring finds even one Component Index file in the classpath, all other configuration in the application
        is completely ignored by default.
S3Mock - 2.5.2

Published by afranken about 2 years ago

  • Features and fixes
    • Correctly detect and use existing root folder (fixes #786)
S3Mock - 2.5.1

Published by afranken about 2 years ago

  • Features and fixes
    • Use @SpringBootApplication to configure S3Mock (fixes #782)