marketplace/bundles/pm-dev-java/skills/java-cdi/SKILL.md
Core CDI patterns including constructor injection, scopes, producers, events, observers, and interceptors
npx skillsauth add cuioss/plan-marshall java-cdiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Core CDI (Contexts and Dependency Injection) standards applicable to any CDI container. Covers dependency injection patterns, scopes, producer methods, events/observers, and interceptors.
This skill applies to Jakarta CDI projects:
jakarta.inject:jakarta.inject-apijakarta.enterprise:jakarta.enterprise.cdi-api// CDI Core
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Singleton;
// CDI Scopes
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.context.RequestScoped;
import jakarta.enterprise.context.SessionScoped;
import jakarta.enterprise.context.Dependent;
// CDI Producers and Optional Dependencies
import jakarta.enterprise.inject.Produces;
import jakarta.enterprise.inject.Instance;
// CDI Events
import jakarta.enterprise.event.Event;
import jakarta.enterprise.event.Observes;
import jakarta.enterprise.event.ObservesAsync;
// CDI Interceptors
import jakarta.interceptor.AroundInvoke;
import jakarta.interceptor.Interceptor;
import jakarta.interceptor.InterceptorBinding;
import jakarta.interceptor.InvocationContext;
// Quarkus Configuration
import org.eclipse.microprofile.config.inject.ConfigProperty;
standards/basic.md — Injection, scopes, scope mismatch rule, optional dependencies, producers, error handlingstandards/advanced.md — Events, observers, interceptorstemplates/cdi-bean.java.tmpl — ApplicationScoped bean with constructor injection and Instance<T> for optional dependenciestemplates/cdi-producer.java.tmpl — Producer method with Null Object pattern (never returns null)@Inject needed) or @Inject on injection constructorInstance<T>Instance<T> used for optional dependencies (not Provider<T>)@Priority for deterministic orderingpm-dev-java:java-quarkus — Quarkus-specific CDI patterns, container/Docker config, securitypm-dev-java:java-core — Core Java patternspm-dev-java:junit-core — CDI testing patternsdevelopment
Domain-owned OpenRewrite log-line finding parser for the java-cui domain — parses the
development
Domain-owned OpenRewrite marker detection for the java-cui domain — scans Java/Kotlin sources for cui-rewrite TODO markers, categorizes them by recipe, and fails the gate on any detected marker
development
Operator control surface for the marshalld build server — enrol/drop a project in the machine-global registry (the opt-in enable signal and anti-laundering wall), manage the daemon lifecycle (start, stop, drain, status, install, upgrade) version-pinned to the verified bundle copy, and inspect the daemon's per-project interaction-audit log (read-only)
tools
The tiny build-consumption client for the marshalld build server — submit a build job, bounded long-poll for its result, ping the daemon identity, and preflight registry-plus-liveness in one call; consumption only, never provisioning or enrolment