You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ko...@apache.org on 2005/12/31 17:01:16 UTC

svn commit: r360307 - /jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ant/AntRewriteTask.java

Author: kohsuke
Date: Sat Dec 31 08:01:13 2005
New Revision: 360307

URL: http://svn.apache.org/viewcvs?rev=360307&view=rev
Log:
added a new unpublished switch to decide which transformer to use.

Modified:
    jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ant/AntRewriteTask.java

Modified: jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ant/AntRewriteTask.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ant/AntRewriteTask.java?rev=360307&r1=360306&r2=360307&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ant/AntRewriteTask.java (original)
+++ jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ant/AntRewriteTask.java Sat Dec 31 08:01:13 2005
@@ -22,11 +22,13 @@
 import java.util.jar.JarInputStream;
 import java.util.jar.JarOutputStream;
 import org.apache.commons.javaflow.bytecode.transformation.ResourceTransformer;
+import org.apache.commons.javaflow.bytecode.transformation.asm.AsmClassTransformer;
 import org.apache.commons.javaflow.bytecode.transformation.bcel.BcelClassTransformer;
 import org.apache.commons.javaflow.utils.RewritingUtils;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.DirectoryScanner;
 import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.taskdefs.MatchingTask;
 
 /**
@@ -37,19 +39,50 @@
  */
 public class AntRewriteTask extends MatchingTask {
 
-    private ResourceTransformer transformer = new BcelClassTransformer();
+    private ResourceTransformer transformer;
 
     private File dstDir;
     private File srcDir;
 
+    /**
+     * Directory to which the transformed files will be written.
+     * This can be the same as the source directory.
+     */
     public void setDstDir(final File pFile) {
         dstDir = pFile;
     }
 
+    /**
+     * Directory from which the input files are read.
+     * This and the inherited {@link MatchingTask} forms an implicit
+     * {@link FileSet}.
+     */
     public void setSrcDir(final File pFile) {
         srcDir = pFile;
         fileset.setDir(srcDir);
     }
+
+    /**
+     * Sets the transformer to use.
+     *
+     * <p>
+     * This option is unpublished, because in a long run we'll
+     * likely to just focus on one transformer and get rid
+     * of the other (and this option will be removed then.)
+     *
+     * @param name
+     *      either "BCEL" or "ASM". Case insensitive.
+     */
+    public void setMode(String name) {
+        name = name.toLowerCase();
+        if(name.equals("bcel"))
+            transformer = new BcelClassTransformer();
+        else
+        if(name.equals("asm"))
+            transformer = new AsmClassTransformer();
+        else
+            throw new BuildException("Unrecognized mode: "+name);
+    }
     
     /**
      * Check that all required attributes have been set and nothing
@@ -77,9 +110,11 @@
     public void execute() throws BuildException {
         
         final DirectoryScanner ds = fileset.getDirectoryScanner(getProject());
-//        final DirectoryScanner ds = getDirectoryScanner(srcDir);
         final String[] fileNames = ds.getIncludedFiles();
 
+        // default to BCEL, since the BCEL version is more stable
+        if(transformer==null)
+            transformer = new BcelClassTransformer();
         
         try {
             for (int i = 0; i < fileNames.length; i++) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org