Message-ID: <1636061723.3441.1411345805017.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_3440_1896890034.1411345805016" ------=_Part_3440_1896890034.1411345805016 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
backport175 has been designed to work in highly dynamic= environment (such as load-time and runtime weaving for AOP). In environmen= ts like this the bytecode on disk is not the "current" one being = executed. Since the bytecode has been transformed during the execution of t= he application. What this means is that annotations can have been added or = removed.=20
We therefore need two things:=20
All these operation should be fully thread-safe, if not, then we have a = bug.=20
This is done by implementing the
ytecode.spi.BytecodeProvider interface. This interface is a strategy=
with one single method you need to implement:
The bytecode provider implementation class is registered in the
g.codehaus.backport175.reader.bytecode.AnnotationReader class by inv=
If no bytecode provider is registered then a default one that uses
getResourceAsStream(), e.g. reads in the bytecode from disk, is use=
It is also possible to set a bytecode provider on a per class basis, whi=
ch can be usefull in some circumstances.
Refer to the API documentati= on for more details.
When a change to the bytecode has been made it is needed to refresh the =
annotation reader, so that it can pull the new bytecode from the
codeProvider, parse it and update the reader with the new informatio=
n about the annotations.
This is done by invoking one of the
refresh(..) methods in =