AspectJ
AspectJ is a seamless aspect-oriented extension to the Java programming language, Java platform compatible and easy to learn and use. AspectJ enables the clean modularization of crosscutting concerns such as: error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, multi-object protocols.
AspectWerkz
AspectWerkz is a dynamic, lightweight and high-performant AOP framework for Java. AspectWerkz offers both power and simplicity and will help you to easily integrate AOP in both new and existing projects. AspectWerkz utilizes runtime bytecode modification to weave your classes at runtime. It hooks in and weaves classes loaded by any class loader except the bootstrap class loader. It has a rich and highly orthogonal join point model. Aspects, advices and introductions are written in plain Java and your target classes can be regular POJOs. You have the possibility to add, remove and re-structure advice as well as swapping the implementation of your introductions at runtime. Your aspects can be defined using either an XML definition file or using runtime attributes.
Nanning
Nanning Aspects is a simple yet scaleable aspect-oriented framework for Java.
Go To Nanning
JBossAOP
JBossAOP allows you to apply interceptor technology and patterns to plain Java classes and Dynamic Proxies. It includes:
- 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.(working)
- Introductions. The 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. The 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. The 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.
dynaop, a proxy-based Aspect-Oriented Programming (AOP) framework, enhances Object-Oriented (OO) design in the following areas: code reuse decomposition dependency reduction
CAESAR
CAESAR is a new aspect-oriented programming language compatible to Java, that is, all Java programs will run with CAESAR.
EAOP
Event-based Aspect-Oriented Programming (EAOP) for Java. EAOP 1.0 realizes the EAOP model through the following characteristics:
- Expressive crosscuts: execution points can be represented by events and crosscuts can be expressed which denote arbitrary relations between events.
- Explicit aspect composition: Aspects may be combined using a (extensible) set of aspect composition operators.
- Aspects of aspects: Aspects may be applied to other aspects.
- Dynamic aspect management: Aspects may be instantiated, composed and destroyed at runtime.
JAC (Java Aspect Components) is a project consisting in developing an aspect-oriented middleware layer.
DynamicAspects
DynamicAspects enables you to do aspect-oriented programming in pure Java. Using the "instrumentation" and "agent" features introduced with Sun JDK 1.5, aspects can be installed and deinstalled during runtime!
PROSE
The PROSE system (PROSE stands for PROgrammable extenSions of sErvices) is a dynamic weaving tool (allows inserting and withdrawing aspects to and from running applications) PROSE aspects are regular JAVA objects that can be sent to and be received from computers on the network. Signatures can be used to guarantee their integrity. Once an aspect has been inserted in a JVM, any occurrence of the events of interest results in the execution of the corresponding aspect advice. If an aspect is withdrawn from the JVM, the aspect code is discarded and the corresponding interception(s) will no longer take place.
Ref: http://java-source.net/
0 comments:
Post a Comment