Skip to content

chore: Migrate AWS tests from LocalStack to Floci and add sink tests#2913

Merged
oscerd merged 2 commits into
mainfrom
ci-fix/floci-migration-and-aws-sink-tests
Jul 9, 2026
Merged

chore: Migrate AWS tests from LocalStack to Floci and add sink tests#2913
oscerd merged 2 commits into
mainfrom
ci-fix/floci-migration-and-aws-sink-tests

Conversation

@oscerd

@oscerd oscerd commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

LocalStack's community edition was sunset in March 2026, requiring auth tokens and freezing security updates. Floci is the MIT-licensed, drop-in replacement — same port 4566, same default credentials, same wire protocol.

Since Citrus 4.10.1 doesn't yet expose floci: in its YAML DSL (that's on main targeting 5.0), this PR keeps the localstack: YAML action but configures it to pull the Floci Docker image instead via citrus-application.properties:

citrus.testcontainers.localstack.image.name=floci/floci
citrus.testcontainers.localstack.version=latest

This PR makes three changes:

  • Swap the AWS emulator from LocalStack to Floci — configure citrus-application.properties to use the floci/floci Docker image with the existing localstack: Citrus YAML DSL action
  • Migrate all Pipe-format integration definitions to Camel route YAML (ref Migrate kamelet tests to not use pipes but camel routes #2873) — replace 9 kind: Pipe files with equivalent - route: YAML files and update all Citrus test references accordingly
  • Add new Citrus integration tests for 3 AWS sink kameletsaws-s3-sink, aws-sqs-sink, and aws-sns-sink, all using Camel route format

Files changed

Category Count Details
Modified 25 Citrus tests, Groovy scripts, properties, READMEs, AwsIT.java, citrus-application.properties
New 20 Route YAML files, Citrus tests, Groovy scripts for new sinks
Deleted 9 Old Pipe-format YAML files

New test coverage

Kamelet Test strategy
aws-s3-sink timer → S3 sink → verify via Groovy getObject
aws-sqs-sink timer → SQS sink → verify via SQS event listener
aws-sns-sink timer → SNS sink → SNS-to-SQS subscription → verify via SQS listener

Test plan

  • Run mvn verify -pl :camel-kamelets-itest -Denable.integration.tests to confirm all existing + new tests pass with Floci
  • Verify the 3 new sink tests (S3, SQS, SNS) complete successfully
  • Verify test module compiles cleanly (mvn compile test-compile -pl :camel-kamelets-itest)

Claude Code on behalf of Andrea Cosentino

🤖 Generated with Claude Code

@oscerd oscerd requested a review from christophd July 9, 2026 10:23
@oscerd oscerd force-pushed the ci-fix/floci-migration-and-aws-sink-tests branch from 6067e3d to 1e3d50d Compare July 9, 2026 10:24
LocalStack's community edition was sunset in March 2026, now requiring
auth tokens. This migrates all AWS integration tests to use Floci, the
MIT-licensed drop-in replacement, via Citrus's native floci support in
citrus-testcontainers.

Also migrates all Pipe-format integration definitions to Camel route
YAML format (issue #2873) and adds new Citrus integration tests for
aws-s3-sink, aws-sqs-sink, and aws-sns-sink kamelets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
@oscerd oscerd force-pushed the ci-fix/floci-migration-and-aws-sink-tests branch from 1e3d50d to 21911f6 Compare July 9, 2026 11:55
The SNS sink test Groovy script imports SnsClient which requires
the camel-aws2-sns dependency on the test classpath. Without it,
all AWS tests fail with ClassNotFoundException.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
@oscerd oscerd merged commit 34dd734 into main Jul 9, 2026
5 checks passed
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.

1 participant