
At the Institute for Cyber Security, we use many different technologies to help accomplish our goals. One such technology is Aspect-Oriented Programming (AOP)., where one can "weave" cross-cutting concerns into source code, separating them from core concerns.
While compile-time weaving is common, the weaving process itself can take place at one of four different times: compile-time, post-compile time, load-time, and run-time. The run-time behavior of an application are the same regardless of the approach chosen.
- Compile-time weaving: this is the simplest approach. A compile-time weaver will compile from source and produce woven class files as output. The aspects themselves may be in source or binary form.
- Binary-weaving (also called post-compile-time weaving): this is used to weave existing class files and JAR files. As with compile-time weaving, the aspects used for weaving may be in source or binary form, and may themselves be woven by aspects.
- Load-time weaving: here, binary weaving is defered until the point that a class loader loads a class file and defines the class to the system. To support this, one or more "weaving class loaders", either provided explicitly by the run-time environment or enabled through a "weaving agent" are required.
- Run-time weaving: this is the weaving of classes that have already been defined to the system without reloading those classes, making it a more dynamic load-time weaver.
Erhan J. Kartaltepe,
erhan.kartaltepe-at-utsa.edu








