| | 1. Aspect-Oriented | By: | | License: | Open source | URL: | http://eclipse.org/aspectj/ | Description: | A seamless aspect-oriented extension to the Javatm programming language
Java platform compatible easy to learn and use.
AspectJ enables clean modularization of crosscutting concerns, such as error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multi-object protocols
|
2. AspectWerkz 2 | By: | | License: | GNU Lesser General Public License | URL: | http://aspectwerkz.codehaus.org/ | Description: | 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 bytecode modification to weave your classes at project build-time, class load time or runtime. It hooks in using standardized JVM level APIs. 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 Java 5 annotations, Java 1.3/1.4 custom doclets or a simple XML definition file.
AspectWerkz provides an API to use the very same aspects for proxies, hence providing a transparent experience, allowing a smooth transition for users familiar with proxies.
AspectWerkz performance is reported in this separate project.
AspectWerkz is Free Software. The LGPL-style license allows the use of AspectWerkz 2.0 in both commercial and open source projects.
|
3. Nanning Aspects | By: | | License: | BSD License | URL: | http://nanning.codehaus.org/ | Description: | Nanning Aspects is a simple yet scaleable aspect-oriented framework for Java.
Nanning is also nice "little" town in Guanxi province in southern China. It's about 1-2 million inhabitants which barely qualifies it as a town by chinese standards. It is not to be confused with the much larger Nanking/Nanjing.
|
4. JBoss Aspect Oriented Programming (AOP) | By: | | License: | GNU Library or Lesser General Public License (LGPL) | URL: | http://www.jboss.org/products/aop | Description: | JBoss AOP is a 100% Pure Java aspected oriented framework usuable in any programming environment or tightly integrated with our application server. Aspects allow you to more easily modularize your code base when regular object oriented programming just doesn't fit the bill. It can provide a cleaner separation from application logic and system code. It provides a great way to expose integration points into your software. Combined with JDK 1.5 Annotations, it also is a great way to expand the Java language in a clean pluggable way rather than using annotations solely for code generation.
JBoss AOP 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, and many many more.
|
5. CaesarJ | By: | | License: | GNU General Public License (GPL) | URL: | http://caesarj.org/ | Description: | CaesarJ is a new Java based programming language, which facilitates better modularity and development of reusable components. The components are collaborations of classes, but they can modularize crosscutting features or non-functional concerns. Caesar language features help to implement, abstract and integrate such components. Caesar can be used in combination with plain Java. Tool support is available in the form of an Eclipse plugin.
|
6. EAOP tool | By: | | License: | GNU General Public License (GPL) | URL: | http://www.emn.fr/x-info/eaop/tool.html | Description: | We are pleased to present the first public distribution of our research prototype for Event-based Aspect-Oriented Programming (EAOP) for Java. EAOP 1.0 realizes the EAOP model through the following characteristics:
1. Expressive crosscuts: execution points can be represented by events and crosscuts can be expressed which denote arbitrary relations between events.
2. Explicit aspect composition: Aspects may be combined using a (extensible) set of aspect composition operators.
3. Aspects of aspects: Aspects may be applied to other aspects.
4. Dynamic aspect management: Aspects may be instantiated, composed and destroyed at runtime.
|
7. The JAC Project | By: | | License: | GNU Library or Lesser General Public License (LGPL) | URL: | http://jac.objectweb.org/ | Description: | JAC (Java Aspect Components) is a project consisting in developing an aspect-oriented middleware layer.
|
8. DynamicAspects | By: | | License: | BSD License | URL: | http://dynamicaspects.sourceforge.net/ | Description: | DynamicAspects is a aspect-oriented framework for Java using only pure Java.
Aspects are written in pure Java.
Aspects can be installed and deinstalled during runtime.
Target classes can be written on a SUN JDK 1.4 or a SUN JDK 5.0 ( 1.5 ) basis.
DynamicAspects needs the Runtime Environment SUN JRE 5.0.
DynamicAspects uses the JavaAgent technology introduced in SUN JDK 5.0.
DynamicAspects lets you write Advices that can be installed around Method/Constructor-executions or -calls.
DynamicAspects lets you write Cflow-Advices.
DynamicAspects lets you write MixIns/IntertypeDeclarations ( which are currently loaded at program start and not deinstallable ).
Regular expressions are used for describing the pointcuts.
The current release of DynamicAspects is beta.
|
9. PROSE | By: | | License: | Mozilla Public License | URL: | http://prose.ethz.ch/Wiki.jsp?page=AboutProse | Description: | PROSE (PROgrammable extenSions of sErvices) allows Java programs modification at run-time. To modify a program, it is first necessary to identify where to change the program. Potential points of interest may be, e.g., incoming and outgoing calls or variable access. Once a set of such points is identified, it is necessary to establish what additional actions are needed at those points. After this step, each time the execution reaches one of the points of interest, the execution is intercepted, and an additional piece of code is executed.
|
|