You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/07/07 00:08:33 UTC

svn commit: r419720 [1/5] - in /incubator/abdera/java/trunk/build: ./ tools/ tools/retroweaver/ tools/retroweaver/docs/ tools/retroweaver/docs/guide/ tools/retroweaver/docs/images/ tools/retroweaver/lib/ tools/retroweaver/release/ tools/retroweaver/src...

Author: jmsnell
Date: Thu Jul  6 15:08:30 2006
New Revision: 419720

URL: http://svn.apache.org/viewvc?rev=419720&view=rev
Log:
Incorporates Retroweaver into the ant build.

To run: ant -f build/build.xml retro

Both the JDK 1.5 and JDK 1.4.2 jars will be in the "dist" folder, with the 1.4.2 jars suffixed with "retro".
There is one additional dependency (retroweaver-rt-1.2.3.jar) for the 1.4.2 jars that is copied to the dist/lib directory.

Added:
    incubator/abdera/java/trunk/build/tools/
    incubator/abdera/java/trunk/build/tools/retroweaver/
    incubator/abdera/java/trunk/build/tools/retroweaver/ChangeLog.txt
    incubator/abdera/java/trunk/build/tools/retroweaver/build.properties
    incubator/abdera/java/trunk/build/tools/retroweaver/build.xml
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/asm-license.txt
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/documentation.html
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/guide/
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/guide/retroweaver-guide.html
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/guide/retroweaver-guide.jpg   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/guide/retroweaver-guide.odt   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/guide/retroweaver-guide.pdf   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/images/
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/images/headerbitty.gif   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/images/menubg.gif   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/images/seascape.gif   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/images/seascape.psd   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/images/sliver.jpg   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/index.html
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/news.html
    incubator/abdera/java/trunk/build/tools/retroweaver/docs/overview.html
    incubator/abdera/java/trunk/build/tools/retroweaver/lib/
    incubator/abdera/java/trunk/build/tools/retroweaver/lib/asm-2.2.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/lib/asm-commons-2.2.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/lib/backport-util-concurrent.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/lib/junit.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/release/
    incubator/abdera/java/trunk/build/tools/retroweaver/release/retroweaver-1.2.3.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/release/retroweaver-all-1.2.3.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/release/retroweaver-rt-1.2.3.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/release/retroweaver-tests-1.2.3.jar   (with props)
    incubator/abdera/java/trunk/build/tools/retroweaver/src/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/NameTranslator.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/RefVerifier.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/RetroWeaver.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/RetroWeaverClassLoader.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/RetroWeaverException.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/SignatureStripper.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/WeaveRunner.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/Weaver.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/ant/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/ant/RetroWeaverTask.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/event/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/event/VerifierListener.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/event/WeaveListener.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/gui/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/gui/RetroWeaverGui.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/AnnotationConstantsCollector.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/ClassConstantsCollector.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/Constant.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/ConstantComparator.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/ConstantPool.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/FieldConstantsCollector.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/optimizer/MethodConstantsCollector.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/runtime/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/runtime/Autobox.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/runtime/ClassMethods.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/runtime/Enum_.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/runtime/IterableMethods.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/runtime/Iterable_.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/AbstractTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/AppendableTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/AutoboxTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/BigDecimalTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/ClassLiteralTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/ClassMethodsTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/CollectionsTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/ConcurrentTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/EnumTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/FullCoverageTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/InnerClassTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/InterfaceFieldTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/IterableTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/MapTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/RetroweaverTestSuite.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/RmicEnumTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/StringBufferTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/StringBuilderTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/SystemTest.java
    incubator/abdera/java/trunk/build/tools/retroweaver/src/com/rc/retroweaver/tests/VerifierTest.java
Modified:
    incubator/abdera/java/trunk/build/build.xml

Modified: incubator/abdera/java/trunk/build/build.xml
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/build.xml?rev=419720&r1=419719&r2=419720&view=diff
==============================================================================
--- incubator/abdera/java/trunk/build/build.xml (original)
+++ incubator/abdera/java/trunk/build/build.xml Thu Jul  6 15:08:30 2006
@@ -38,15 +38,23 @@
   <property name="server.src" value="${server}/src/main/java" />
   <property name="server.work" value="${work}/server" />
   <property name="server.jar" value="${dist}/${ant.project.name}.server.${version}.jar" />
+  
+	<property name="retro_core.jar" value="${dist}/${ant.project.name}.core.${version}.retro.jar" />
+  <property name="retro_parser.jar" value="${dist}/${ant.project.name}.parser.${version}.retro.jar" />
+  <property name="retro_extensions.jar" value="${dist}/${ant.project.name}.extensions.${version}.retro.jar" />
+  <property name="retro_server.jar" value="${dist}/${ant.project.name}.server.${version}.retro.jar" />
   	
-
   <property name="dependencies" value="${basedir}/dependencies" />
   <property file="${dependencies}/deps.properties" />
 
   <path id="jar.dependencies">
     <fileset dir="${dependencies}" includes="**/*.jar" />
   </path>
-  
+
+  <path id="jar.retro">
+    <fileset dir="${basedir}/build/tools/retroweaver/release" includes="**/*.jar" />
+  </path>
+	
   <target name="dependencies">
     <path id="">
       <fileset dir="dependencies" includes="*.jar" />
@@ -247,4 +255,29 @@
     </copy>
   </target>
   
+	<target name="retro" >
+		<echo>Retroweaving the Jars...</echo>
+    <java classpathref="jar.retro" 
+          classname="com.rc.retroweaver.Weaver"
+          fork="yes">
+    	<arg line="-jar ${core.jar} ${retro_core.jar}" />
+    </java>
+    <java classpathref="jar.retro" 
+          classname="com.rc.retroweaver.Weaver"
+          fork="yes">
+    	<arg line="-jar ${parser.jar} ${retro_parser.jar}"/>
+    </java>
+    <java classpathref="jar.retro" 
+          classname="com.rc.retroweaver.Weaver"
+          fork="yes">
+      <arg line="-jar ${server.jar} ${retro_server.jar}" />
+    </java>
+    <java classpathref="jar.retro" 
+          classname="com.rc.retroweaver.Weaver"
+          fork="yes">
+      <arg line="-jar ${extensions.jar} ${retro_extensions.jar}" />
+		</java>
+		<copy todir="${dist_lib}" file="${basedir}/build/tools/retroweaver/release/retroweaver-rt-1.2.3.jar" />
+	</target>
+	
 </project>

Added: incubator/abdera/java/trunk/build/tools/retroweaver/ChangeLog.txt
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/tools/retroweaver/ChangeLog.txt?rev=419720&view=auto
==============================================================================
--- incubator/abdera/java/trunk/build/tools/retroweaver/ChangeLog.txt (added)
+++ incubator/abdera/java/trunk/build/tools/retroweaver/ChangeLog.txt Thu Jul  6 15:08:30 2006
@@ -0,0 +1,389 @@
+Changes in retroweaver 1.2.3 (April 22 2006)
+
+  - Bug fix (1472581) Ant srcdir property doesn't work
+    classes in subdirectories were not included
+    (bug report by Dan Smith)
+    (Xavier Le Vourch).
+
+  - Bug fix: Target parent directories are not created
+    When a destination directory is specified, subdirectories for packages
+    were not created when needed and a FileNotFoundException was raised.
+    retroweaver bug 1472575
+    (bug report by Dan Smith)
+    (Xavier Le Vourch).
+
+  - RefVerifier: new warning if a class file version is higher than target jdk
+    This should help ensure people use the weaved classes in the verifier
+    class path and not the 1.5 versions.
+    (Xavier Le Vourch).
+
+  - 1.5 flags are kept in generated code if harmless
+    (Xavier Le Vourch).
+
+  - Bug fix: invalid translation of generic signatures
+    (Xavier Le Vourch).
+
+  - New option -stripSignatures for console tool and ant task
+    Removes generic signatures from methods and fields if set. Off by default.
+    Signatures were always removed in previous versions. Keeping signatures
+    allows weaved classes to be used by 1.5 compiler
+    (bug report by Goldin Evgeny)
+    (Xavier Le Vourch).
+
+  - Documentation updates
+    (Xavier Le Vourch).
+
+  - Bug fix: Retroweaver required 1.5, not 1.4
+    Call to String.replace() raised NoSuchMethodException
+    (Xavier Le Vourch).
+
+Changes in retroweaver 1.2.2 (April 5 2006)
+
+  - NameTranslator did not translate exception tables
+    retroweaver bug 1464906
+    (bug report and patch from Ronald Brindl).
+
+  - Iterable improvement: foreach loop now works on Collections
+    (Xavier Le Vourch).
+
+  - Bug fix: Enum initialization by class loader was too lazy
+    retroweaver bug 1442573
+    (problem reported and test case provided by Ronald Brindl).
+    (Xavier Le Vourch).
+
+  - Bug fix: false positives in verifier for abstract classes
+    (Xavier Le Vourch).
+
+Changes in retroweaver 1.2.1 (March 13 2006)
+
+  - Verifier is now lazy: only weaved classes are verified
+    closes bug 1207248
+    (Xavier Le Vourch).
+
+  - System.nanoTime() is processed
+    closes bug 1181380, some requests ignored
+    (Xavier Le Vourch).
+
+  - Bug fix: incorrect exception handling in .class weaved code for 1.2 or 1.3
+    (Xavier Le Vourch).
+
+  - Bug fixes: Enum serialization problems
+    Handles changes in Enum class (missing name raises InvalidObjectException
+    and serialVersionUID set to 0L).
+    Enum inner class wasn't serialized correctly.
+    (Xavier Le Vourch).
+
+  - BigDecimal(int) and BigDecimal(long) constructors are correctly processed
+    closes feature request 1202810
+    (Xavier Le Vourch).
+
+  - Bug fix: Enum.class was not weaved correctly
+    ".class" byte code modification now uses NameTranslator on the LDC
+    manifest string representing the type. This bug also applied to the
+    concurrent backport classes.
+    (Xavier Le Vourch).
+
+  - Bug fix: line number and local variable tables were not kept by optimizer
+    (Xavier Le Vourch).
+
+  - StringBuffer and StringBuilder methods are weaved
+    Constructors, append and insert methods based on CharSequence are
+    weaved. trimToSize() calls are also discarded as its contract states
+    that no action is acceptable.
+    (Xavier Le Vourch).
+
+  - Documentation updates
+    (Xavier Le Vourch).
+
+Changes in retroweaver 1.2 (February 26 2006)
+
+  - retroweaver-ng 1.2.4 merged back into the official retroweaver project
+    and released as retroweaver 1.2
+    (Xavier Le Vourch).
+
+  - Documentation updates
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2.4
+
+  - all java.util.concurrent classes are replaced by their backport equivalent
+    (Xavier Le Vourch).
+
+  - Bug fix: ClassLiteral changes were not working for interfaces
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2.3
+
+  - Documentation updates to reflect changes since retroweaver-1.1
+    (Xavier Le Vourch).
+
+  - regression tests can be run with jre 1.6 if available
+    (Xavier Le Vourch).
+
+  - problem with bridge methods corrected
+    1.4 rmic can not deal with synthetic methods extending an interface
+    (problem reported and test case provided by Mike Kopp).
+    (Xavier Le Vourch).
+
+  - backport-util-concurrent updated to 2.1
+    (Xavier Le Vourch).
+
+  - Enum flag removed from weaved classes
+    (Xavier Le Vourch).
+
+  - ClassLiteral runtime class removed: byte code generation similar to 1.4
+    (Xavier Le Vourch).
+
+  - Collections: emptyList, emptyMap and emptySet are now handled
+    Retroweaver Feature Request 1207694
+    (Xavier Le Vourch).
+
+  - ClassLiteral: SecurityManager hack removed
+    (Xavier Le Vourch).
+
+  - bug fix: translation of method and field descriptors was incorrect
+    (problem reported by Toby Reyelts).
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2.2
+
+  - Enum changes: initialization is faster, extra routines from Class added
+    byte code init is done in <clinit> once instead of for each enum object
+    isEnum() and getEnumConstants() from Class translated in their equivalent
+    in ClassMethods.
+    (Xavier Le Vourch).
+
+  - Constant compaction based on ASM's optimizer classes
+    (Xavier Le Vourch).
+
+  - Class analysis is now based on ASM: better maintained, smaller, faster lib
+    (Xavier Le Vourch).
+
+  - WeaveRunner class added: ability to perform weaving on the fly
+    (Xavier Le Vourch).
+
+  - code cleanup: authors moved to Contributors.txt file
+    (Xavier Le Vourch).
+
+  - code cleanup: standard formatting + import cleanup
+    (Xavier Le Vourch).
+
+  - bug fix: ClassLiteral didn't deal with arrays correctly
+    recent ClassLoader changes broke the class.
+    Junit test added.
+    (problem reported by Svet Kovich).
+    (Xavier Le Vourch).
+
+  - bug fix: getDeclaringClass() in Enum_ was not correctly implemented
+    found while writing test coverage suite
+    (Xavier Le Vourch).
+
+  - Code coverage target in ant script
+    performed on runtime classes using EMMA Code Coverage tool
+    (Xavier Le Vourch).
+
+  - Test classes are now using junit to automate testing before a release
+    extra tests to improve test coverage of runtime classes
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2.1
+
+  - ClassLiteral was not working for jre 1.2 and 1.3
+    as class sun.reflect.Reflection was introduced in 1.4.
+    New mechanism uses SecurityManager to get the call stack.
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2
+
+  - Gui is the Main-Class in manifest files
+    option "-console" to start the Weaver class
+    version and build revision stored in properties file
+    version in jar file names
+    distribution is now a zip file
+    (Xavier Le Vourch).
+
+  - bcel recompiled with target 1.2
+    (Xavier Le Vourch).
+
+  - retroweaver bug 1323841: GUI should allow you to exit
+    (from Peter Taylor).
+
+  - class file is only written once
+    (Xavier Le Vourch).
+
+  - weaving jar files with -jar option or inputjar/outputjar in ant task
+    closes retroweaver bug 1117628
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2 rc1
+
+  - failonerror raises an ExitStatusException if the verifier found problems
+    (Xavier Le Vourch).
+
+  - retroweaver patch 1165123: ClassLiteral::ContextClassLoader patch
+    modified to declare everything final.
+    (from Vladimir Kirichenko).
+
+  - retroweaver patch 1324045: Use BCEL instead of Jace
+    (from Peter Taylor).
+
+  - ant task: dirset files were included multiple times
+    (Xavier Le Vourch).
+
+  - Warning messages refactoring
+    "-verbose" option for Weaver class added
+    number of classes to process displayed
+    verbose flag is off by default
+    (Xavier Le Vourch).
+
+  - Verifier changes
+    uses BCEL library
+    bug fixes: interfaces are searched for attributes
+    cast and asSubsclass from java.lang.Class don't generate warnings
+    shorter messages
+    (Xavier Le Vourch).
+
+  - bcel.jar update: using svn version 343959 (from Nov 13 2005)
+
+    crash when weaving java/lang/BigDecimal.class twice due to a BCEL bug in
+    LDC_W.java
+    (investigation by Peter Taylor).
+    (Xavier Le Vourch).
+
+  - bug fix: translation of class names
+
+    Previous implementation was incorrect for concurrent classes as pattern
+    was also in resulting string. Weaving a class twice was creating an invalid
+    class name.
+    (Xavier Le Vourch).
+
+Changes in retroweaver-ng 1.2 pre2
+
+  - Enum can now be serialized.
+    Registration code is inefficient and should be done by byte code modification.
+    Inspired by retroweaver bug report 1234732 and patch 1165131
+    (Xavier Le Vourch).
+    (from Vladimir Kirichenko).
+    (from Mike - greywind).
+
+  - code reorganization
+    Verifier now displays warning count
+        partially based on retroweaver patch 1152382
+    (Xavier Le Vourch).
+    (from Stefan Reich).
+
+  - retroweaver patch 1202801: Another fixed reference verifier with tests
+        (example and soft reference cache)
+    (from Guntis Ozols).
+
+  - NPE while creating parent directory for '.'
+    (Xavier Le Vourch).
+
+  - build.xml changes:
+        runtime classes weaved as 1.2 classes
+        test target: verify class path cleanup
+        test target uses retroweaver task
+        use forward slash in paths
+	dist target to build retroweaver-ng-<version>-all.jar (ant dist -Dversion=1.1pre2)
+    (Xavier Le Vourch).
+
+  - -version renamed -target, new option -version (print version and exit)
+    (Xavier Le Vourch).
+
+  - retroweaver patch 1169987: Verifyrefs parameter in Ant task show incorrect
+        RefVerifier changes
+    (from Mike - greywind).
+
+  - retroweaver patch 1170383: Added support for dirsets in anttask
+    (from Mike - greywind).
+
+  - retroweaver patch 1151301:
+        ant task changes
+        creation of output dir if needed
+    (from Paul Wagland).
+
+  - java.util.concurrent backport
+    (from Garret Wilson).
+
+  - cleanup of patch 1214519 
+    (from Garret Wilson).
+
+  - retroweaver patch 1214519: support for new java.lang.Class methods
+                                   asSubclass(Class) and cast(Object)
+    (from David Hovemeyer).
+
+  - retroweaver patch 1324042: debug info not created unless in original class
+    (from Peter Taylor).
+
+  - retroweaver patch 1118409: code cleanup in RefVerifier (unused local)
+    (from Dave Brosius).
+
+Start of retroweaver-ng project based on official retroweaver 1.1
+
+
+Changelog for official retroweaver 1.1 included below
+
+Changes in 1.1
+--------------
+New features:
+  - Support for reference verification. Retroweaver automatically warns you if your code references classes, methods, or fields that don't exist in your target JDK.
+  - An integrated Ant task: com.rc.retroweaver.ant.RetroWeaverTask.
+  - A separate runtime jar: retroweaver-rt.jar. This jar file is smaller and contains the minimum set of classes necessary to support Retroweaver at runtime.
+
+Bug fixes:
+  - 1008851 - Undocumented flags were only getting stripped on synthetic entities.
+
+
+Changes in 1.0 FCS
+------------------
+
+New features:
+  - A new developer's guide (html,pdf,OpenOffice).
+  - A new graphical user interface
+  - A new executable jar - RetroweaverEx.jar
+
+Bug fixes:
+  - 997305  - Typo in src/com/rc/retroweaver/Weaver.java
+  - 1008851 - Retroweaver should strip undocumented method flags
+  - 963245  - NosuchMethodError for String.replace(String, String);
+
+Changes in 1.0 RC5
+------------------
+
+New features:
+  None 
+
+Bug fixes:
+  -  922729 - Enum.valueOf fails.
+
+
+Changes in 1.0 RC4
+------------------
+
+New features:
+
+  - New support for enumerations. You can now use the enum language construct. The generated enum classes derive from com.rc.retroweaver.runtime.Enum.
+  - New support for java.lang.Iterable. You can now implement, extend, and use java.lang.Iterable. Look at the example ItTest class for more details.
+  - More optimized autoboxing. Additional caching has been added for chars, shorts, and ints.
+
+
+Changes in 1.0 RC3
+------------------
+
+New features:
+  - Command line usage has changed, you now have to specify -source
+  - You can now set the target virtual machine using -target, for example, -target 1.3
+  - Retroweaver now comes with a set of test unit classes
+
+Bug fixes:
+  - 981204 - java.lang.ClassFormatError: Illegal method name
+
+
+Changes in 1.0 RC2
+------------------
+
+New features:
+  None 
+
+Bug fixes:
+  -  917707 - StringBuilder isn't handled correctly.

Added: incubator/abdera/java/trunk/build/tools/retroweaver/build.properties
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/tools/retroweaver/build.properties?rev=419720&view=auto
==============================================================================
--- incubator/abdera/java/trunk/build/tools/retroweaver/build.properties (added)
+++ incubator/abdera/java/trunk/build/tools/retroweaver/build.properties Thu Jul  6 15:08:30 2006
@@ -0,0 +1,34 @@
+# Windows properties
+
+jre12.home=c:/Program Files/JavaSoft/JRE/1.2
+jre12.jvm=${jre12.home}/bin/java.exe
+jre12.runtime=${jre12.home}/lib/rt.jar
+
+jre13.home=c:/Program Files/JavaSoft/JRE/1.3.1_17
+jre13.jvm=${jre13.home}/bin/java.exe
+
+jre14.home=c:/Program Files/Java/j2re1.4.2_11
+jre14.jvm=${jre14.home}/bin/java.exe
+jre14.runtime=${jre14.home}/lib/rt.jar
+
+bea14.home=D:/Apps/Java/jrockit-j2sdk1.4.2_08/jre
+bea14.jvm=${bea14.home}/bin/java.exe
+
+jdk14.home=d:/Apps/Java/j2sdk1.4.2_11
+jdk14.rmic=${jdk14.home}/bin/rmic.exe
+
+jre15.home=c:/Program Files/Java/jre1.5.0_06
+jre15.jvm=${jre15.home}/bin/java.exe
+
+bea15.home=D:/Apps/Java/jrockit-R26.0.0-jdk1.5.0_04/jre
+bea15.jvm=${bea15.home}/bin/java.exe
+
+jre16.home=C:/Program Files/Java/jre1.6.0
+jre16.jvm=${jre16.home}/bin/java.exe
+
+emma.home=D:/Apps/Java/emma-2.0.5312
+
+pmd.home=D:/Apps/Java/pmd/pmd-3.6
+
+# end Windows properties
+

Added: incubator/abdera/java/trunk/build/tools/retroweaver/build.xml
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/tools/retroweaver/build.xml?rev=419720&view=auto
==============================================================================
--- incubator/abdera/java/trunk/build/tools/retroweaver/build.xml (added)
+++ incubator/abdera/java/trunk/build/tools/retroweaver/build.xml Thu Jul  6 15:08:30 2006
@@ -0,0 +1,403 @@
+<project name="retroweaver" default="compile" basedir=".">
+
+	<!-- set global properties for this build -->
+	<property file="build.properties" />
+
+	<property name="version" value="dev" />
+
+	<available file="${jre12.jvm}" type="file" property="jre12.present" />
+	<available file="${jre13.jvm}" type="file" property="jre13.present" />
+	<available file="${jre14.jvm}" type="file" property="jre14.present" />
+	<available file="${jre14.runtime}" type="file" property="runtime14.present" />
+	<available file="${jre15.jvm}" type="file" property="jre15.present" />
+	<available file="${jre16.jvm}" type="file" property="jre16.present" />
+	<available file="${ibm14.jvm}" type="file" property="ibm14.present" />
+	<available file="${ibm15.jvm}" type="file" property="ibm15.present" />
+	<available file="${bea14.jvm}" type="file" property="bea14.present" />
+	<available file="${bea15.jvm}" type="file" property="bea15.present" />
+
+	<available file="${jdk14.rmic}" type="file" property="rmic14.present" />
+
+	<fail unless="jre14.present" message="jre14.jvm must be defined" />
+	<fail unless="runtime14.present" message="jre14.runtime must be defined" />
+	<fail unless="rmic14.present" message="jdk14.rmic must be defined" />
+	<fail unless="jre15.present" message="jre15.jvm must be defined" />
+
+	<property name="src.dir" value="src" />
+	<property name="classes.dir" value="classes" />
+	<property name="weaved_classes.dir" value="weaved_classes" />
+	<property name="test_classes.dir" value="test_classes" />
+	<property name="weaved_test_classes.dir" value="weaved_test_classes" />
+	<property name="lib.dir" value="lib" />
+	<property name="release.dir" value="release" />
+	<property name="dist.dir" value="retroweaver-${version}" />
+
+	<property name="main.class" value="com.rc.retroweaver.gui.RetroWeaverGui" />
+	<property name="dependency.classes.dir" value="dependency-classes" />
+
+	<property name="backport.jar" value="${lib.dir}/backport-util-concurrent.jar" />
+	<property name="junit.jar" value="${lib.dir}/junit.jar" />
+	<property name="asm.jar" value="${lib.dir}/asm-2.2.jar" />
+	<property name="asm-commons.jar" value="${lib.dir}/asm-commons-2.2.jar" />
+	<property name="ant.jar" value="${ant.home}/lib/ant.jar" />
+
+	<property name="test.main.name" value="com.rc.retroweaver.tests.RetroweaverTestSuite" />
+
+	<available file="${pmd.home}" type="dir" property="pmd.present" />
+
+	<property name="coverage.dir" value="coverage" />
+
+	<available file="${emma.home}" type="dir" property="emma.present" />
+
+	<path id="emma.classpath">
+		<pathelement location="${emma.home}/lib/emma.jar" />
+		<pathelement location="${emma.home}/lib/emma_ant.jar" />
+	</path>
+
+	<path id="test.classpath">
+		<pathelement location="${release.dir}/retroweaver-tests-${version}.jar" />
+		<pathelement location="${release.dir}/retroweaver-rt-${version}.jar" />
+		<pathelement location="${backport.jar}" />
+		<pathelement location="${junit.jar}" />
+	</path>
+
+	<target name="init">
+		<tstamp />
+		<mkdir dir="${classes.dir}" />
+		<mkdir dir="${weaved_classes.dir}" />
+		<mkdir dir="${test_classes.dir}" />
+		<mkdir dir="${weaved_test_classes.dir}" />
+		<mkdir dir="${release.dir}" />
+	</target>
+
+	<target name="clean" description="Clean all temperatory files">
+		<delete quiet="yes" includeEmptyDirs="true">
+			<fileset dir="${classes.dir}" />
+			<fileset dir="${weaved_classes.dir}" />
+			<fileset dir="${test_classes.dir}" />
+			<fileset dir="${weaved_test_classes.dir}" />
+			<fileset dir="${release.dir}" />
+			<fileset dir="${dependency.classes.dir}" />
+		</delete>
+	</target>
+
+	<target name="compile" depends="init" description="Compile all source files">
+		<javac source="1.5" target="1.5" srcdir="${src.dir}" excludes="com/rc/retroweaver/tests/**" destdir="${classes.dir}" debug="on" deprecation="true">
+			<classpath>
+				<fileset dir="${lib.dir}">
+					<include name="**/*.jar" />
+				</fileset>
+			</classpath>
+		</javac>
+
+		<exec executable="svnversion" outputproperty="buildNumber">
+			<arg line="." />
+		</exec>
+
+		<propertyfile file="${classes.dir}/retroweaver.properties">
+			<entry key="retroweaver.version" value="${version}" />
+			<entry key="retroweaver.buildNumber" value="${buildNumber}" />
+		</propertyfile>
+
+		<copy todir="${weaved_classes.dir}">
+			<fileset dir="${classes.dir}" />
+		</copy>
+
+		<!-- weave runtime and weaver classes -->
+		<java classname="com.rc.retroweaver.Weaver">
+			<arg value="-target" />
+			<arg value="1.2" />
+			<arg value="-source" />
+			<arg value="${weaved_classes.dir}" />
+			<classpath>
+				<pathelement location="${classes.dir}" />
+				<fileset dir="${lib.dir}">
+					<include name="**/*" />
+				</fileset>
+			</classpath>
+		</java>
+
+		<jar destfile="${release.dir}/retroweaver-${version}.jar">
+			<manifest>
+				<attribute name="Main-Class" value="${main.class}" />
+			</manifest>
+			<fileset dir="${weaved_classes.dir}">
+				<exclude name="com/rc/retroweaver/runtime/" />
+			</fileset>
+		</jar>
+
+		<jar destfile="${release.dir}/retroweaver-rt-${version}.jar">
+			<fileset dir="${weaved_classes.dir}">
+				<include name="com/rc/retroweaver/runtime/*.class" />
+			</fileset>
+		</jar>
+
+		<unjar src="${asm.jar}" dest="${dependency.classes.dir}" />
+		<unjar src="${asm-commons.jar}" dest="${dependency.classes.dir}" />
+		<delete dir="${dependency.classes.dir}/META-INF" />
+		<jar destfile="${release.dir}/retroweaver-all-${version}.jar">
+			<manifest>
+				<attribute name="Main-Class" value="${main.class}" />
+			</manifest>
+			<fileset dir="${weaved_classes.dir}">
+			</fileset>
+			<fileset dir="${dependency.classes.dir}" />
+		</jar>
+
+		<!-- validate weaved classes: fails if verifier finds missing methods -->
+		<taskdef name="retroweaver" classname="com.rc.retroweaver.ant.RetroWeaverTask" classpath="${release.dir}/retroweaver-all-${version}.jar" />
+		<path id="retroweaverclasspath">
+			<pathelement location="${weaved_classes.dir}" />
+			<pathelement location="${jre14.runtime}" />
+			<pathelement location="${junit.jar}" />
+			<pathelement location="${backport.jar}" />
+			<pathelement location="${asm.jar}" />
+			<pathelement location="${asm-commons.jar}" />
+			<pathelement location="${ant.jar}" />
+		</path>
+		<retroweaver target="1.4" lazy="false" verbose="false" stripsignatures="true" verify="true" failonerror="true">
+			<dirset dir="${weaved_classes.dir}" />
+			<classpath refid="retroweaverclasspath" />
+		</retroweaver>
+	</target>
+
+	<target name="dist" depends="clean, compile, test" description="prepare a release">
+		<delete quiet="yes" includeEmptyDirs="true">
+			<fileset dir="${dist.dir}" />
+		</delete>
+		<mkdir dir="${dist.dir}" />
+		<copy todir="${dist.dir}/docs">
+			<fileset dir="docs">
+				<exclude name="**/.svn" />
+			</fileset>
+		</copy>
+		<copy todir="${dist.dir}">
+			<fileset dir=".">
+				<include name="build.xml" />
+				<include name="build.properties" />
+				<include name="ChangeLog.txt" />
+				<include name="${lib.dir}/*.jar" />
+				<include name="${release.dir}/*.jar" />
+				<include name="${src.dir}/**/*.java" />
+			</fileset>
+		</copy>
+		<zip destfile="${dist.dir}.zip">
+			<fileset dir=".">
+				<include name="${dist.dir}/**/*" />
+			</fileset>
+		</zip>
+		<delete quiet="yes" includeEmptyDirs="true">
+			<fileset dir="${dist.dir}" />
+		</delete>
+	</target>
+
+	<target name="test" depends="testsetup, test12, test13, test14, testibm14, testbea14, testrmic14, test15, testibm15, testbea15, test16" description="Compiles and executes retroweaver tests">
+		<echo message="Testing completed" />
+	</target>
+
+	<target name="testsetup" depends="init" description="Compiles and executes retroweaver tests">
+		<!-- compile and weave the tests classes -->
+		<javac source="1.5" target="1.5" srcdir="${src.dir}" includes="com/rc/retroweaver/tests/**" destdir="${test_classes.dir}" classpath="${junit.jar};${release.dir}/retroweaver-rt-${version}.jar" debug="on" deprecation="true">
+		</javac>
+
+		<javac source="1.5" target="1.5" srcdir="${src.dir}" includes="com/rc/retroweaver/tests/**" destdir="${weaved_test_classes.dir}" classpath="${junit.jar};${release.dir}/retroweaver-rt-${version}.jar" debug="on" deprecation="true">
+		</javac>
+
+		<echo message="" />
+		<echo message="===========================================" />
+		<echo message="Running tests..." />
+		<echo message="Warnings are expected here." />
+		<echo message="===========================================" />
+		<echo message="" />
+
+		<taskdef name="retroweaver" classname="com.rc.retroweaver.ant.RetroWeaverTask" classpath="${release.dir}/retroweaver-all-${version}.jar" />
+
+		<condition property="verify.runtime" value="${jre12.runtime}" else="${jre14.runtime}">
+			<available file="${jre12.runtime}" type="file" />
+		</condition>
+		<echo message="Using runtime: ${verify.runtime}" />
+		<path id="verifyclasspath">
+			<pathelement location="${verify.runtime}" />
+			<pathelement location="${junit.jar}" />
+			<pathelement location="${release.dir}/retroweaver-rt-${version}.jar" />
+			<pathelement location="${backport.jar}" />
+			<pathelement location="${weaved_test_classes.dir}" />
+		</path>
+
+		<retroweaver target="1.2" lazy="false" verbose="false" stripsignatures="false" verify="true" failonerror="false">
+			<dirset dir="${weaved_test_classes.dir}" />
+			<classpath refid="verifyclasspath" />
+		</retroweaver>
+
+		<jar destfile="${release.dir}/retroweaver-tests-${version}.jar">
+			<fileset dir="${weaved_test_classes.dir}">
+				<exclude name="com/rc/retroweaver/tests/MissingClass.class"/>
+			</fileset>
+			<fileset dir="${src.dir}">
+				<include name="com/rc/retroweaver/tests/data/*.ser"/>
+			</fileset>
+		</jar>
+	</target>
+
+	<target name="test12" if="jre12.present">
+		<junit fork="yes" haltonfailure="yes" jvm="${jre12.jvm}">
+			<jvmarg value="-Djava.compiler=NONE" />
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="test13" if="jre13.present">
+		<junit fork="yes" haltonfailure="yes" jvm="${jre13.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="test14">
+		<junit fork="yes" haltonfailure="yes" jvm="${jre14.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="testibm14" if="ibm14.present">
+		<junit fork="yes" haltonfailure="yes" jvm="${ibm14.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="testbea14" if="bea14.present">
+		<junit fork="yes" haltonfailure="no" jvm="${bea14.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="testrmic14">
+		<pathconvert property="rmic.path" refid="test.classpath" />
+		<exec executable="${jdk14.rmic}" failonerror="true">
+			<arg value="-classpath" />
+			<arg value="${rmic.path}" />
+			<arg value="com.rc.retroweaver.tests.RmicEnumTest" />
+			<arg value="-d" />
+			<arg value="${weaved_test_classes.dir}" />
+		</exec>
+		<echo message="Rmic test completed" />
+	</target>
+
+	<target name="test15">
+		<junit fork="yes" haltonfailure="yes" jvm="${jre15.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="testibm15" if="ibm15.present">
+		<junit fork="yes" haltonfailure="yes" jvm="${ibm15.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="testbea15" if="bea15.present">
+		<junit fork="yes" haltonfailure="no" jvm="${bea15.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="test16" if="jre16.present">
+		<junit fork="yes" haltonfailure="yes" jvm="${jre16.jvm}">
+			<test name="${test.main.name}" />
+			<formatter type="brief" usefile="false" />
+			<classpath refid="test.classpath" />
+		</junit>
+	</target>
+
+	<target name="coverage" depends="dist" description="Run coverage test of runtime classes">
+		<fail unless="emma.present" message="EMMA location is not defined properly" />
+
+		<echo message="" />
+		<echo message="===========================================" />
+		<echo message="Coverage report" />
+		<echo message="===========================================" />
+		<echo message="" />
+
+		<mkdir dir="${coverage.dir}" />
+		<delete quiet="yes" includeEmptyDirs="no">
+			<fileset dir="${coverage.dir}" >
+				<include name="coverage*.emma" />
+			</fileset>
+		</delete>
+
+		<taskdef resource="emma_ant.properties" classpathref="emma.classpath" />
+
+		<emmajava enabled="${jre13.present}" fork="yes" jvm="${jre13.jvm}" libclasspathref="emma.classpath" classname="junit.textui.TestRunner" classpathref="test.classpath" sourcepath="${src.dir}" fullmetadata="true" dumpsessiondata="true" outfile="${coverage.dir}/coverage13.emma" verbosity="quiet" >
+			<arg line="${test.main.name}" />
+			<filter includes="com.rc.retroweaver.runtime.*" />
+			<txt outfile="${coverage.dir}/coverage13.txt" />
+		</emmajava>
+		<emmajava fork="yes" jvm="${jre14.jvm}" libclasspathref="emma.classpath" classname="junit.textui.TestRunner" classpathref="test.classpath" sourcepath="${src.dir}" fullmetadata="true" dumpsessiondata="true" outfile="${coverage.dir}/coverage14.emma" verbosity="quiet" >
+			<arg line="${test.main.name}" />
+			<filter includes="com.rc.retroweaver.runtime.*" />
+			<txt outfile="${coverage.dir}/coverage14.txt" />
+		</emmajava>
+		<emma>
+			<report sourcepath="${src.dir}">
+				<fileset dir="${coverage.dir}" >
+					<include name="*.emma" />
+				</fileset>
+				<html outfile="${coverage.dir}/index.html" />
+			</report>
+		</emma>
+	</target>
+
+	<target name="docs">
+		<javadoc
+			destdir="docs/api"
+			author="true"
+			version="true"
+			use="true"
+			source="1.5"
+			linksource="yes"
+			windowtitle="Test API">
+
+			<packageset dir="${src.dir}" defaultexcludes="yes">
+				<include name="com/**"/>
+			</packageset>
+		</javadoc>
+	</target>
+
+	<target name="pmd">
+		<fail unless="pmd.present" message="PMD location is not defined properly" />
+		<path id="pmd.classpath">
+			<fileset dir="${pmd.home}/lib">
+				<include name="*.jar"/>
+			</fileset>
+		</path>
+
+		<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath"/>
+
+		<pmd shortFilenames="true" targetjdk="1.5">
+			<ruleset>rulesets/junit.xml</ruleset>
+			<ruleset>rulesets/favorites.xml</ruleset>
+			<formatter type="html" toFile="pmd_report.html" linkPrefix="docs/api/src-html/"/>
+			<fileset dir="${src.dir}">
+				<include name="**/*.java" />
+				<exclude name="com/rc/retroweaver/optimizer/*.java" />
+			</fileset>
+		</pmd>
+	</target>
+
+</project>
+

Added: incubator/abdera/java/trunk/build/tools/retroweaver/docs/asm-license.txt
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/tools/retroweaver/docs/asm-license.txt?rev=419720&view=auto
==============================================================================
--- incubator/abdera/java/trunk/build/tools/retroweaver/docs/asm-license.txt (added)
+++ incubator/abdera/java/trunk/build/tools/retroweaver/docs/asm-license.txt Thu Jul  6 15:08:30 2006
@@ -0,0 +1,28 @@
+
+ ASM: a very small and fast Java bytecode manipulation framework
+ Copyright (c) 2000-2005 INRIA, France Telecom
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holders nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.

Added: incubator/abdera/java/trunk/build/tools/retroweaver/docs/documentation.html
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/tools/retroweaver/docs/documentation.html?rev=419720&view=auto
==============================================================================
--- incubator/abdera/java/trunk/build/tools/retroweaver/docs/documentation.html (added)
+++ incubator/abdera/java/trunk/build/tools/retroweaver/docs/documentation.html Thu Jul  6 15:08:30 2006
@@ -0,0 +1,95 @@
+<html>
+
+<head>
+  <title>Retroweaver</title>
+  <style type="text/css">
+    <!--body         { margin: 0; padding: 0 } -->
+  </style>
+</head>
+
+<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0">
+
+<div align="center">
+<center>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td width="100%" background="images/sliver.jpg"><font face="Arial">
+        <map name="FPMap0">
+          <area href="index.html" coords="300, 75, 357, 94" shape="rect">
+          <area href="news.html" coords="352, 75, 425, 94" shape="rect">
+          <area href="overview.html" coords="425, 75, 520, 94" shape="rect">
+          <area href="documentation.html" coords="520, 75, 630, 93" shape="rect">
+        </map>
+        <img border="0" src="images/seascape.gif" usemap="#FPMap0" width="756" height="133"></font>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+
+<div align="center">
+<center>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+
+    <td width="175" valign="top" background="images/menubg.gif">
+      <font size="2" face="Arial"><img border="0" src="images/headerbitty.gif" width="175" height="64"></font>
+    </td>
+
+    <td>
+      <font size="2" face="Arial"><br><b>Documentation</b></font>
+      <font size="2" face="Arial">
+      <p><b>Supported 1.5 Language Features</b>
+      <ul>
+        <li>generics</li>
+        <li>extended for loops</li>
+        <li>static imports</li>
+        <li>autoboxing/unboxing</li>
+        <li>varargs</li>
+        <li>enumerations</li>
+        <li>annotations</li>
+      </ul>
+      </p>
+
+      <p><b>Developer's Guide</b>
+      <blockquote>The Retroweaver Developer's Guide is available in the following formats:</blockquote>
+      <ol>
+        <li><a href="guide/retroweaver-guide.pdf">PDF</a></li>
+        <li><a href="guide/retroweaver-guide.html">HTML</a></li>
+        <li><a href="guide/retroweaver-guide.odt">OpenOffice</a></li>
+      </ol>
+      </p>
+
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p>&nbsp;</p>
+      <p align="right"><A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=104240&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"/></A>&nbsp;&nbsp;</p>
+      <p>&nbsp;</p>
+      </font>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+
+<div align="center">
+<center>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td width="100%" bgcolor="#3999E7">
+<p align="center"><font face="Arial"><font size="2">&nbsp;</font><font size="1">Site design by <a href="http://www.pegaweb.com"><b><font color="#000000">Pegasus Web Design Resources</font></b></a></font></font></td>
+</tr>
+</table>
+</center>
+</div>
+
+<p>&nbsp;</p>
+
+</body>
+
+</html>