Skip to content

Adding a number of missing features for container management, generated by Claude Code AI #117

@haster

Description

@haster

Hi there,

we're looking into updating test setup by either upgrading to the latest arquillian-cube (since we use arquillian-cube now), or migrating to testcontainers. We're making a comparison between various scenario's, and one of those scenario's involves using this extension to use testcontainers from our arquillian based tests.

We have quite an extensive test suite and Claude (which we've been using to analyze the various codebases and scenario's) has detected some missing functionality that we would need in order to use testcontainers the way we are now using cube.

We think our testsuite is a useful reallife, extensive test suite and that the realworld issues we run into are broadly applicable/can be used to make arquillian-extension-testcontainers more useful.

This is Claude's summary:

What the extension has today

  • @Testcontainer field injection (type-based lookup only)
  • @TestcontainersRequired Docker availability check
  • TestcontainerRegistry (ClassScoped, accessible to other extensions via @Inject)
  • Container lifecycle: start in AfterEnrichment, stop in AfterClass
  • LoggingConsumer helper

What it needs (all generic, useful to any Arquillian user) <--- this is roughly what we would be adding

Feature Why any user needs this Cube equivalent
Named container lookup Multiple containers, lookup by role CubeRegistry.getCube("name")
Container lifecycle events React to container start/stop (copy files, inject IPs, collect logs) BeforeCreate, AfterStart, BeforeDestroy
Shared network management Inter-container communication NetworkRegistry + CUBE YAML networks
@ArquillianResource integration Standard Arquillian injection pattern CubeRegistryProvider
arquillian.xml configuration Global settings (timeouts, network mode) Cube's <extension qualifier="docker">

Our questions:
a) Would you be opposed to a largely AI-generated PR adding functionality? We always keep a human in control, and would make sure to have the code be reviewed by a human before opening a PR, but most of the code would probably be AI-generated.
b) Do you agree (in general) with the above summary and features to add or would you leave any out?

To be clear, we are as of now still in the planning/gather information stage, though we tend to move quickly once we make a decision.
We have not yet made a decision so no guarantees as to whether we would implement this or not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions