(→Rather small example programs using AspectJ) |
|||
| (3 intermediate revisions not shown.) | |||
| Line 6: | Line 6: | ||
* The [http://www.sable.mcgill.ca/ Sable Research group] provides a [http://www.sable.mcgill.ca/benchmarks/ set of smaller AspectJ benchmarks] (joint work with the [http://progtools.comlab.ox.ac.uk/ Programming Tools Group of Oxford University]) and [http://www.cs.mcgill.ca/~mbatch/621notes.html another one here]. | * The [http://www.sable.mcgill.ca/ Sable Research group] provides a [http://www.sable.mcgill.ca/benchmarks/ set of smaller AspectJ benchmarks] (joint work with the [http://progtools.comlab.ox.ac.uk/ Programming Tools Group of Oxford University]) and [http://www.cs.mcgill.ca/~mbatch/621notes.html another one here]. | ||
| - | |||
| - | |||
* [http://www.sable.mcgill.ca/~ebodde/meta/ This work on Stratified aspects] has a few smaller AspectJ example programs. | * [http://www.sable.mcgill.ca/~ebodde/meta/ This work on Stratified aspects] has a few smaller AspectJ example programs. | ||
* [https://glassbox-inspector.dev.java.net/ Glassbox inspector] is a commercial program of which an open source version exists. It uses AspectJ technology. | * [https://glassbox-inspector.dev.java.net/ Glassbox inspector] is a commercial program of which an open source version exists. It uses AspectJ technology. | ||
| + | |||
| + | * [http://contract4j.org/ Contract4J] is a Design by Contract tool for Java 5. Contract tests are defined using annotations and evaluated at runtime using AspectJ aspects. | ||
| + | |||
| + | == Larger example programs using AspectJ == | ||
| + | |||
| + | * The AspectBench Compiler project made some [http://abc.comlab.ox.ac.uk/benchmarks benchmarks available]. | ||
| + | |||
| + | == Infrastructure services implemented using AOSD technologies == | ||
| + | |||
| + | * [http://terracotta.org/ Open Terracotta] provides Open Source JVM-level clustering for Java. It uses AOP style technologies (based on [http://aspectwerkz.codehaus.org/ AspectWerkz] and custom [http://asm.objectweb.org/ ASM] adapters) to weave the target application at class load time (load-time weaving). In this phase it extends the application in order to ensure that the semantics of the Java Language Specification (JLS) and the Java Memory Model (JMM) are correctly maintained across the cluster, including object references, thread coordination (wait/notify), garbage collection etc. | ||
Current revision
Does your program use AspectJ, JBoss AOP, Spring AOP or your other favorite implementation of aspect-oriented technology? For researchers it's always useful see how those technologies are actually being used. So please let us know!
Note: on this page we are really looking for programs written in an aspect-oriented language, not programs which implement AOP themselves. Programs of the latter form should go onto the Tools page.
Rather small example programs using AspectJ
- The Sable Research group provides a set of smaller AspectJ benchmarks (joint work with the Programming Tools Group of Oxford University) and another one here.
- This work on Stratified aspects has a few smaller AspectJ example programs.
- Glassbox inspector is a commercial program of which an open source version exists. It uses AspectJ technology.
- Contract4J is a Design by Contract tool for Java 5. Contract tests are defined using annotations and evaluated at runtime using AspectJ aspects.
Larger example programs using AspectJ
- The AspectBench Compiler project made some benchmarks available.
Infrastructure services implemented using AOSD technologies
- Open Terracotta provides Open Source JVM-level clustering for Java. It uses AOP style technologies (based on AspectWerkz and custom ASM adapters) to weave the target application at class load time (load-time weaving). In this phase it extends the application in order to ensure that the semantics of the Java Language Specification (JLS) and the Java Memory Model (JMM) are correctly maintained across the cluster, including object references, thread coordination (wait/notify), garbage collection etc.
![[Main Page]](/wiki/skins/common/images/AOSDWikiLogo.gif)