TRAP/J (Transparent Reflective Aspect Programming in Java) is a software tool which allows client programs to introduce new behavior to their existing applications (transparently) at runtime. Using aspect-oriented programming and behavioral reflection, TRAP/J inserts "hooks" into a client application around key pieces of code that a developer indicates should be adaptable. At runtime, the developer composes new code (via the TRAP/J Composer) into the application without the need to take the application down and recompile. Currently there are two versions of TRAP/J available. Version 2.1 allows adaptation at the class level. Version 2.2 allows adaptation at the method level. It is only available as a plug-in for the Eclipse SDK. For more information consult the documentation for the respective version of TRAP/J.
S. Masoud Sadjadi, Philip K. McKinley, Betty H.C. Cheng, and R.E. Kurt Stirewalt. TRAP/J: Transparent generation of adaptable Java programs.
In Proceedings of the International Symposium on Distributed Objects and Applications (DOA'04), Agia Napa, Cyprus, October 2004.
[ bib | .ps | .pdf ]
TRAP/J 2.1 is a stand-alone development tool that allows applications to be adapted at both startup and runtime. It uses a remote web interface to add functionality to running applications.
TRAP/J 2.2 is a plug-in for Eclipse that allows for adaptation at the method level at runtime. New functionality is introduced via a graphical local composer.
The TRAP/J Developer's Page has the source code and development documents for both versions of TRAP/J currently offered by the ACRL.