Discovery
Classpath discovery finds public static methods annotated with @Paramixel.Factory. A factory returns an Action, a Builder, or null.
import org.paramixel.api.Paramixel;
import org.paramixel.api.action.Action;
import org.paramixel.api.action.Sequence;
import org.paramixel.api.action.Step;
public final class CheckoutTest {
@Paramixel.Factory
@Paramixel.Tag("smoke")
public static Action checkout() {
return Sequence.builder("checkout")
.child(Step.of("add item", ctx -> addItem()))
.child(Step.of("pay", ctx -> pay()))
.build();
}
}
Discovery annotations
@Paramixel.Factorymarks a factory method returningAction,Builder, ornull.@Paramixel.Disabledexcludes a factory from discovery.@Paramixel.Tagis repeatable and supports tag filtering.@Paramixel.Priorityorders discovered factory classes before the root action is built.@Paramixel.Idis used byAnnotationResolver, not factory discovery.
Filtering
Use configuration keys or selectors:
paramixel.match.package.regex=com\.example\.smoke
paramixel.match.class.regex=Checkout
paramixel.match.tag.regex=smoke|critical
The regex filters use Java Pattern.find() semantics.