JBoss AOP
Home Page
Categories: AOP
Author: JBoss
Latest version: 2.0.0.SP1
Added 2005-02-15Updated 2008-12-08
JBoss AOP allows you to apply interceptor technology and patterns to plain Java classes and dynamic proxies.
It is not only a framework, but also a prepackaged set of aspects that are applied via annotations, pointcut expressions, or dynamically at runtime. Some of these include caching, asynchronous communication, transactions, security, remoting.
Features include:
- Java Class Interception: Field, constructor, and method interception, public, private, protected, and package protected, static and class members.
- Fully compositional pointcuts caller side for methods and constructors, control flow, annotations.
- Aspect classes Advices can be incapsulated in scoped Java classes
- Hot-deploy: Interceptors can be deployed, undeployed, and redeployed at runtime for both dynamic proxies and classes.
- Introductions: ability to add any arbitrary interface to a Java class. Either an interceptor or a 'mixin' class can service method calls for the attached interfaces.
- Dynamic proxies: ability to define a dynamic proxy and an interceptor chain for it. Proxies can either be created from an existing class, or from a set of interfaces ala java.lang.reflect.Proxy.
- Metadata and attribute programming: ability to define and attach metadata configuration to your classes or dynamic proxies. Interceptors can be triggered when metadata is added to a class. We also have Metadata Chains, the ability to define defaults at the cluster and application level, as well as the ability to override configuration at runtime for a specific method call.
- Dynamic AOP: all aspected objects can be typecasted to an AOP API. You can do things like add/remove new interceptors to a specific instance or add/remove instance configuration/metadata at runtime.
 Built for Java |
 Free or free version available |
 Source code provided |