Open Source Aspect-Oriented Frameworks in Java
12 projectsAspectJ is an aspect-oriented extension for Java that enables modularization of cross-cutting concerns through compile-time, post-compile, and load-time weaving. It is actively maintained under the Eclipse Foundation and publishes core artifacts such as aspectjrt, aspectjweaver, and aspectjtools for use in Maven-based builds.
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.
CaesarJ is a Java-compatible aspect-oriented programming language designed for modularity and reusable collaboration-based components. It combines aspect-oriented constructs with component composition features and includes tooling support through a dedicated Eclipse plugin and compiler.
JAC (Java Aspect Components) is an aspect-oriented middleware framework for Java focused on composing cross-cutting services as reusable aspect components. It includes components for persistence, distributed programming policies, access control, and data integrity, plus tooling for declarative GUI and web application development. The project provides sourc...
Nanning is an aspect-oriented framework for Java built around dynamic proxies and interceptor-based composition. It provides modular AOP support through reusable framework modules for concerns such as caching, contracts, and metadata-driven behavior. The project was originally hosted on Codehaus and is now available as a historical source repository.
DynamicAspects is a pure Java aspect-oriented framework built on the Java Instrumentation and Java Agent APIs. It supports runtime weaving and unweaving of advice around method and constructor calls or executions, including cflow-based pointcuts. The framework targets Java 5 runtime environments and allows aspect definitions directly in Java code.
PROSE (PROgrammable extenSions of sErvices) is a dynamic adaptation and weaving platform for Java applications that supports inserting, reordering, and withdrawing aspects at runtime. It provides instrumentation and code replacement mechanisms for running JVM processes, including development tooling for monitoring and modifying local or remote applications....
Azuki Framework is a Java application framework aimed at reducing development and maintenance costs through component-based architecture and dependency weaving. It combines patterns such as decorator, injection, interceptor, command, and proxy to assemble large systems from reusable technical and business components.
dynaop is a proxy-based aspect-oriented programming framework for Java focused on improving code reuse, decomposition, and dependency management. It supports dynamic and CGLIB-style proxy approaches and provides a pointcut model for cross-cutting behavior. The framework offers releases and documentation centered on lightweight runtime AOP usage.
EAOP is an event-based aspect-oriented programming tool for Java that models execution points as events and defines crosscuts as relations between events. The framework supports explicit aspect composition operators, aspects applied to other aspects, and runtime management of aspect instances. Its distribution includes source code, user documentation, and...
JBoss AOP is a pure Java aspect-oriented framework that applies interceptor and advice chains to classes, methods, constructors, and fields. It supports declarative and runtime pointcuts, dynamic proxies, introductions, and metadata-driven interception for cross-cutting concerns such as transactions, security, and caching. The project also provides runtime...
CALI (Common Aspect Languages Interpreter) is a Java-based research framework for prototyping and composing aspect-oriented programming languages on top of a shared abstract aspect model. It demonstrates multi-language composition with implementations such as dynamic AspectJ, EAOPJ, COOL, and a Decorator DSAL.