Skip to content

fix: use official io.floci:spring-boot-testcontainers-floci - #1701

Closed
Mendred wants to merge 1 commit into
awspring:mainfrom
Mendred:feature/flociTestcontainers
Closed

fix: use official io.floci:spring-boot-testcontainers-floci#1701
Mendred wants to merge 1 commit into
awspring:mainfrom
Mendred:feature/flociTestcontainers

Conversation

@Mendred

@Mendred Mendred commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Removes AwsFlociContainerConnectionDetailsFactory and FlociAwsClientFactory, which duplicated the ContainerConnectionDetailsFactory<FlociContainer, AwsConnectionDetails> already provided by io.floci:spring-boot-testcontainers-floci. Having both implementations on the classpath at the same time breaks Spring Boot's service connection resolution (two competing factories for the same pair), as reported by the Floci maintainer in #1604.

Depend on io.floci:spring-boot-testcontainers-floci (optional, same scope as before) instead of the low-level io.floci:testcontainers-floci module. This also brings automatic S3 path-style configuration for Floci, which the removed implementation was missing.

Ref: #1604 (comment)
Ref: https://github.com/floci-io/testcontainers-floci

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Removed my testcontainers-floci implementation (AwsFlociContainerConnectionDetailsFactory and FlociAwsClientFactory) in favour of the official io.floci:spring-boot-testcontainers-floci module.
spring-cloud-aws-testcontainers now depends on io.floci:spring-boot-testcontainers-floci (optional, same scope as before) instead of the low-level io.floci:testcontainers-floci module. This removes the duplicated ContainerConnectionDetailsFactory<FlociContainer, AwsConnectionDetails> and, as a side effect, also brings automatic S3 path-style configuration for Floci, which our own implementation was missing.

💡 Motivation and Context

see #1604 (comment)

💚 How did you test it?

JUnit Test

📝 Checklist

  • I reviewed submitted code
  • I added tests to verify changes
  • I updated reference documentation to reflect the change
  • All tests passing
  • No breaking changes

🔮 Next steps

…f re-implementing it

Removes AwsFlociContainerConnectionDetailsFactory and FlociAwsClientFactory,
which duplicated the ContainerConnectionDetailsFactory<FlociContainer, AwsConnectionDetails>
already provided by io.floci:spring-boot-testcontainers-floci. Having both
implementations on the classpath at the same time breaks Spring Boot's
service connection resolution (two competing factories for the same pair),
as reported by the Floci maintainer in awspring#1604.

Depend on io.floci:spring-boot-testcontainers-floci (optional, same scope
as before) instead of the low-level io.floci:testcontainers-floci module.
This also brings automatic S3 path-style configuration for Floci, which
the removed implementation was missing.

Ref: awspring#1604
Ref: https://github.com/floci-io/testcontainers-floci
@ThomasVitale

ThomasVitale commented Sep 7, 2026

Copy link
Copy Markdown

For convenience, I'll mention here what I have already shared in #1604:

Since the Service Connection implementation is connected to specific Spring Boot versions, I would consider keeping the implementation in this project so that the Testcontainers Floci project doesn't need to carry dependencies on Spring Boot and deal with supporting/testing multiple versions of Spring Boot (and Spring Cloud AWS). Any change to either the Service Connection API in Spring Boot or to the Spring Cloud AWS API might require new releases of Testcontainers Floci, which seems backwards, and it would add quite some complexity on the Testcontainers Floci project. That also makes it easier for users to know which versions to pick (no need for matrixes showing which versions of Spring Cloud AWS are supported by which version of Testcontainers Floci). And it mirrors the way Quarkus support for Floci is provided (which is in the Quarkus AWS project).

@MatejNedic

Copy link
Copy Markdown
Member

Hey @Mendred ,

I appreciate quick PR!

However I am closing this PR check comment -> #1604 (comment)

@MatejNedic MatejNedic closed this Sep 7, 2026
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