Skip to content

CAMEL-23285: Fix embedded test services requiring Docker unnecessarily#22409

Open
gnodet wants to merge 1 commit intoapache:mainfrom
gnodet:CAMEL-22524-fix-embedded-service-docker-check
Open

CAMEL-23285: Fix embedded test services requiring Docker unnecessarily#22409
gnodet wants to merge 1 commit intoapache:mainfrom
gnodet:CAMEL-22524-fix-embedded-service-docker-check

Conversation

@gnodet
Copy link
Copy Markdown
Contributor

@gnodet gnodet commented Apr 2, 2026

CAMEL-23285

Summary

Several test-infra service interfaces extend ContainerTestService, which implements JUnit 5's ExecutionCondition and disables tests when Docker is unavailable. However, some of these services only have embedded (in-memory) implementations that don't need Docker at all. This causes their tests to be silently skipped in environments without Docker.

This PR removes ContainerTestService from the following service interfaces that only have embedded implementations:

  • HazelcastService - only has HazelcastEmbeddedService (in-memory Hazelcast)
  • IgniteService - only has IgniteEmbeddedService (in-memory Ignite)
  • FtpService - only has embedded services (FtpEmbeddedService, SftpEmbeddedService, FtpsEmbeddedService)

History analysis

These three interfaces originally extended InfrastructureService (without ContainerTestService). ContainerTestService was added in commit 7d90f0d ("Align all components" by @Croway, Dec 2024) as part of the CAMEL-21452 decoupling work. The interfaces were uniformly aligned to extend ContainerTestService, but these three only have embedded implementations and don't actually need Docker.

The original creation of each service confirms they never needed Docker:

  • HazelcastService — created in CAMEL-16660 extending only TestService
  • IgniteService — created extending only InfrastructureService
  • FtpService — created extending only InfrastructureService

The *RemoteInfraService classes for Hazelcast and Ignite are stubs that throw UnsupportedOperationException("Remote support is not implemented"), confirming no container-based implementations exist.

Test plan

  • Verify the three affected modules compile
  • Verify Hazelcast tests run without Docker (locally tested — 217 tests, 0 failures)
  • Verify Ignite tests run without Docker (locally tested — 47 tests, 0 failures)
  • Verify FTP/SFTP tests run without Docker (locally tested — 56 tests, 0 failures)
  • Verify no regressions in CI

Claude Code on behalf of Guillaume Nodet

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using build-all, build-dependents, skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@gnodet gnodet marked this pull request as draft April 2, 2026 12:28
@gnodet gnodet changed the title CAMEL-22524: Fix embedded test services requiring Docker unnecessarily CAMEL-23285: Fix embedded test services requiring Docker unnecessarily Apr 2, 2026
@gnodet gnodet force-pushed the CAMEL-22524-fix-embedded-service-docker-check branch from 931644b to 5db8ece Compare April 2, 2026 12:41
@gnodet gnodet requested review from Croway and oscerd April 2, 2026 12:50
@gnodet
Copy link
Copy Markdown
Contributor Author

gnodet commented Apr 2, 2026

Tested locally with Docker stopped — all three modules pass:

  • camel-hazelcast: 217 tests, 0 failures (1 pre-existing flaky test that passed on retry)
  • camel-ignite: 47 tests, 0 failures
  • camel-ftp: 56 tests, 0 failures

Claude Code on behalf of Guillaume Nodet

@gnodet gnodet marked this pull request as ready for review April 2, 2026 12:51
@apupier
Copy link
Copy Markdown
Contributor

apupier commented Apr 2, 2026

ContainerTestService was added to these three interfaces in commit 581b0b5 (PR #21901),

This commit and PR are touching only a github action o it has not added the three interfaces

@apupier
Copy link
Copy Markdown
Contributor

apupier commented Apr 2, 2026

/component-test hazelcast ftp ignite

@gnodet
Copy link
Copy Markdown
Contributor Author

gnodet commented Apr 2, 2026

You're right, sorry for the inaccuracy! The actual commit that introduced ContainerTestService to these three interfaces is 7d90f0deff92 ("Align all components" by @Croway, Dec 2024). It was part of CAMEL-21452 decoupling work — the interfaces were aligned to all extend ContainerTestService uniformly, but these three only have embedded implementations and don't actually need Docker. I'll update the PR description.

Claude Code on behalf of Guillaume Nodet

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

/component-test hazelcast ftp ignite tests passed successfully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants