← ClaudeAtlas

wirebox-aoplisted

Use this skill when working with WireBox Aspect-Oriented Programming (AOP) -- activating the AOP engine (Mixer listener), creating method interceptor aspects, registering aspects via mapAspect(), binding aspects to classes and methods via bindAspect(), using the Matcher DSL (any, regex, mappings, instanceOf, annotatedWith, methods, returns), auto-aspect binding via classMatcher/methodMatcher annotations, the MethodInvocation API (proceed, getArgs, getTarget, getMethod), using built-in aspects (CFTransaction, HibernateTransaction, MethodLogger), and AOP in both standalone WireBox and ColdBox applications.
ColdBox/skills · ★ 0 · AI & Automation · score 61
Install: claude install-skill ColdBox/skills
# WireBox AOP — Aspect-Oriented Programming ## When to Use This Skill Use this skill when: - Adding cross-cutting concerns (logging, transactions, security, caching, tracing) to methods without modifying them - Creating reusable method interceptors (aspects) - Using the built-in `CFTransaction`, `HibernateTransaction`, or `MethodLogger` aspects - Binding aspects to classes/methods via DSL or self-binding annotations Applies to both **standalone WireBox** and **ColdBox** applications. ## Language Mode Reference Examples use **BoxLang (`.bx`)** / CFML script syntax. Adapt for your target language: | Concept | BoxLang (`.bx`) | CFML (`.cfc`) | |---------|-----------------|---------------| | Class declaration | `class [extends="..."] {` | `component [extends="..."] {` | | DI annotation | `@inject` above `property name="svc";` | `property name="svc" inject="svc";` | --- ## AOP Vocabulary | Term | Definition | |------|------------| | **Aspect** | A modularized cross-cutting concern (e.g., logging, transactions) | | **Target Object** | The object whose methods will be intercepted | | **Join Point** | A method execution point where an aspect is applied | | **Advice** | The action taken at a join point (before, after, or around) | | **AOP Proxy** | The runtime proxy wrapping the original method | --- ## AOP Namespaces ``` // ColdBox application coldbox.system.aop // Standalone WireBox wirebox.system.aop ``` > WireBox AOP is implemented as a **WireBox listener** called t