Multiple changes here:
- annotation unpacking is smarter and if it only needs runtime
retention annotations it uses reflection and doesn't unpack the
bytes to discover class level retention annotations.
- Reflection worlds are shared if for the same classloader.
Fix some stuff that Wes pointed out: addEmptyConstructor() in ClassGen has always been broken and the src.zip for BCEL that was generated included test imports.
Adding BCEL src to bcel-builder project. We change/patch BCEL more frequently than we import new versions of BCEL into AspectJ - so it makes sense to make that patching process easier than the importing process. Also the Java5 support would result in an unwieldy patch.txt file.
The ANT targets in build.xml will still enable transformation of the packaging from org.aspectj.apache to org.apache for diffing with a new BCEL version, should one ever appear.