Skip to main content
Version: 6.0.0 (Unmaintained)

Examples

The repository's examples live under examples/src/main/java. They demonstrate factory discovery, annotations, lifecycle composition, retry support, and Testcontainers integration.

Factory with tags​

import org.paramixel.api.Paramixel;
import org.paramixel.api.action.Action;
import org.paramixel.api.action.Sequence;
import org.paramixel.api.action.Step;

@Paramixel.Factory
@Paramixel.Tag("smoke")
@Paramixel.Tag("critical")
public static Action smoke() {
return Sequence.builder("smoke")
.child(Step.of("arrange", ctx -> arrange()))
.child(Step.of("act", ctx -> act()))
.child(Step.of("assert", ctx -> assertResult()))
.build();
}

AnnotationResolver pattern​

import org.paramixel.api.AnnotationResolver;
import org.paramixel.api.Paramixel;
import org.paramixel.api.action.Action;
import org.paramixel.api.action.Instance;
import org.paramixel.api.action.Sequence;

final class LoginFixture {
@Paramixel.Id("open")
public void open() {}

@Paramixel.Id("submit")
public void submit() {}
}

var resolver = AnnotationResolver.create(LoginFixture.class);
Action fixture = Instance.builder(LoginFixture.class)
.body(Sequence.builder("login")
.child(resolver.byId("open"))
.child(resolver.byId("submit"))
.build())
.build();

Disabled factory​

@Paramixel.Factory
@Paramixel.Disabled("under investigation")
public static Action temporarilyDisabled() {
return Sequence.builder("disabled").build();
}