blob: e5c94eae99f91a5a6c4f803df202dfc5074e397c [file] [log] [blame]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Load-time Weaving Requirements</title><link rel="stylesheet" href="aspectj-docs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.44"><link rel="home" href="index.html" title="The AspectJtm Development Environment Guide"><link rel="up" href="ltw.html" title="Chapter 5. Load-Time Weaving"><link rel="previous" href="ltw.html" title="Chapter 5. Load-Time Weaving"><link rel="next" href="ltw-configuration.html" title="Configuration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Load-time Weaving Requirements</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ltw.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 5. Load-Time Weaving</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ltw-configuration.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="ltw-rules"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="ltw-rules"></a>Load-time Weaving Requirements</h2></div></div><p> All load-time weaving is done in the context of a class loader, and hence the set of
aspects used for weaving and the types that can be woven are affected by the class
loader delegation model. This ensures that LTW complies with the Java 2 security model.
The following rules govern the interaction of load-time weaving with class loading: </p><div class="orderedlist"><ol type="1"><li><p><a name="d0e2768"></a>All aspects to be used for weaving must be defined to the weaver before any
types to be woven are loaded. This avoids types being "missed" by aspects added
later, with the result that invariants across types fail.</p></li><li><p><a name="d0e2771"></a>All aspects visible to the weaver are usable.
A visible aspect is one defined by the
weaving class loader or one of its parent class loaders.
All concrete visible aspects are woven and all abstract visible aspects
may be extended.
</p></li><li><p><a name="d0e2774"></a>A class loader may only weave classes that it defines. It may not weave
classes loaded by a delegate or parent class loader.</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ltw.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ltw-configuration.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 5. Load-Time Weaving&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ltw.html">Up</a></td><td width="40%" align="right">&nbsp;Configuration</td></tr></table></div></body></html>