You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by st...@apache.org on 2012/12/20 22:56:21 UTC

svn commit: r1424730 - in /commons/sandbox/privilizer/trunk: maven-plugin/src/main/java/org/apache/commons/weaver/maven/ modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/ processor/src/main/java/org/apache/commons/weaver/ pr...

Author: struberg
Date: Thu Dec 20 21:56:21 2012
New Revision: 1424730

URL: http://svn.apache.org/viewvc?rev=1424730&view=rev
Log:
first step to migrate the maven plugin

Added:
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractWeaveMojo.java   (contents, props changed)
      - copied, changed from r1424629, commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractPrivilegedMojo.java
Removed:
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractPrivilegedMojo.java
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/PrivilegedMojo.java
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestPrivilegedMojo.java
Modified:
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/PrepareMojo.java
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestPrepareMojo.java
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestWeaveMojo.java
    commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/WeaveMojo.java
    commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FilesystemPrivilizer.java
    commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java
    commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java
    commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/spi/Weaver.java
    commons/sandbox/privilizer/trunk/processor/src/test/java/org/apache/commons/weaver/test/weaver/TestWeaver.java

Copied: commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractWeaveMojo.java (from r1424629, commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractPrivilegedMojo.java)
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractWeaveMojo.java?p2=commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractWeaveMojo.java&p1=commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractPrivilegedMojo.java&r1=1424629&r2=1424730&rev=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractPrivilegedMojo.java (original)
+++ commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractWeaveMojo.java Thu Dec 20 21:56:21 2012
@@ -19,11 +19,6 @@ import java.io.File;
 import java.net.URLClassLoader;
 import java.util.List;
 
-import org.apache.commons.weaver.privilizer.weaver.AccessLevel;
-import org.apache.commons.weaver.privilizer.weaver.FilesystemPrivilizer;
-import org.apache.commons.weaver.privilizer.weaver.URLArray;
-import org.apache.commons.weaver.privilizer.weaver.Privilizer.Log;
-import org.apache.commons.weaver.privilizer.weaver.Privilizer.Policy;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugins.annotations.Parameter;
 
@@ -31,7 +26,7 @@ import org.apache.maven.plugins.annotati
 /**
  * Defines common properties.
  */
-public abstract class AbstractPrivilegedMojo extends AbstractMojo {
+public abstract class AbstractWeaveMojo extends AbstractMojo {
     /**
      * Weaving policy to use.
      */

Propchange: commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/AbstractWeaveMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/PrepareMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/PrepareMojo.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/PrepareMojo.java (original)
+++ commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/PrepareMojo.java Thu Dec 20 21:56:21 2012
@@ -15,8 +15,6 @@
  */
 package org.apache.commons.weaver.maven;
 
-import javassist.NotFoundException;
-
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -29,7 +27,7 @@ import org.apache.maven.project.MavenPro
  * policy.
  */
 @Mojo(name = "prepare", defaultPhase = LifecyclePhase.INITIALIZE, requiresDependencyCollection = ResolutionScope.COMPILE)
-public class PrepareMojo extends PrivilegedMojo {
+public class PrepareMojo extends WeaveMojo {
     @Component
     private MavenProject project;
 
@@ -37,8 +35,10 @@ public class PrepareMojo extends Privile
     public void execute() throws MojoExecutionException {
         if (target.exists()) {
             try {
+            /*X TODO do we need the prepare mojo at all?
                 createWeaver().prepare();
-            } catch (NotFoundException e) {
+                */
+            } catch (Exception e) {
                 throw new MojoExecutionException("error", e);
             }
         }

Modified: commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestPrepareMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestPrepareMojo.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestPrepareMojo.java (original)
+++ commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestPrepareMojo.java Thu Dec 20 21:56:21 2012
@@ -15,8 +15,6 @@
  */
 package org.apache.commons.weaver.maven;
 
-import javassist.NotFoundException;
-
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -29,18 +27,20 @@ import org.apache.maven.project.MavenPro
  * policy.
  */
 @Mojo(name = "test-prepare", defaultPhase = LifecyclePhase.INITIALIZE, requiresDependencyCollection = ResolutionScope.TEST)
-public class TestPrepareMojo extends TestPrivilegedMojo {
+public class TestPrepareMojo extends TestWeaveMojo {
     @Component
     private MavenProject project;
 
     @Override
     public void execute() throws MojoExecutionException {
         if (target.exists()) {
+/*X TODO do we need the prepare mojo at all?
             try {
                 createWeaver().prepare();
-            } catch (NotFoundException e) {
+            } catch (Exception e) {
                 throw new MojoExecutionException("error", e);
             }
+*/
         }
     }
 

Modified: commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestWeaveMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestWeaveMojo.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestWeaveMojo.java (original)
+++ commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/TestWeaveMojo.java Thu Dec 20 21:56:21 2012
@@ -15,22 +15,50 @@
  */
 package org.apache.commons.weaver.maven;
 
-import org.apache.commons.weaver.privilizer.Privileged;
+import java.io.File;
+import java.util.List;
+
+import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 
 
 /**
- * Goal to weave test classes with {@link SecurityManager} handling code for methods marked with
- * the {@link Privileged} annotation.
+ * Goal to weave test classes.
  */
 @Mojo(name = "test-weave", defaultPhase = LifecyclePhase.PROCESS_TEST_CLASSES, requiresDependencyCollection = ResolutionScope.TEST)
-public class TestWeaveMojo extends TestPrivilegedMojo {
+public class TestWeaveMojo extends AbstractWeaveMojo {
+
+    @Parameter(readonly = true, required = true, defaultValue = "${project.testClasspathElements}")
+    protected List<String> classpath;
+
+    @Parameter(readonly = true, required = true, defaultValue = "${project.build.testOutputDirectory}")
+    protected File target;
+
+    @Parameter(readonly = false, required = true, defaultValue = "PUBLIC")
+    protected AccessLevel accessLevel;
+
+    @Override
+    protected List<String> getClasspath() {
+        return classpath;
+    }
+
+    @Override
+    protected File getTarget() {
+        return target;
+    }
+
+    @Override
+    protected AccessLevel getAccessLevel() {
+        return accessLevel;
+    }
 
     @Override
-    public void execute() throws MojoFailureException {
+    public void execute() throws MojoExecutionException
+    {
         try {
             createWeaver().weaveAll();
         } catch (Exception e) {

Modified: commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/WeaveMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/WeaveMojo.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/WeaveMojo.java (original)
+++ commons/sandbox/privilizer/trunk/maven-plugin/src/main/java/org/apache/commons/weaver/maven/WeaveMojo.java Thu Dec 20 21:56:21 2012
@@ -15,22 +15,49 @@
  */
 package org.apache.commons.weaver.maven;
 
-import org.apache.commons.weaver.privilizer.Privileged;
+import java.io.File;
+import java.util.List;
+
+import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 
 
 /**
- * Goal to weave classes with {@link SecurityManager} handling code for methods marked with
- * the {@link Privileged} annotation.
+ * Goal to weave classes.
  */
 @Mojo(name = "weave", defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyCollection = ResolutionScope.COMPILE)
-public class WeaveMojo extends PrivilegedMojo {
+public class WeaveMojo extends AbstractWeaveMojo {
+
+    @Parameter(readonly = true, required = true, defaultValue = "${project.compileClasspathElements}")
+    protected List<String> classpath;
+
+    @Parameter(readonly = true, required = true, defaultValue = "${project.build.outputDirectory}")
+    protected File target;
+
+    @Parameter(readonly = false, required = true, defaultValue = "PACKAGE")
+    protected AccessLevel accessLevel;
+
+    @Override
+    protected List<String> getClasspath() {
+        return classpath;
+    }
+
+    @Override
+    protected File getTarget() {
+        return target;
+    }
 
     @Override
-    public void execute() throws MojoFailureException {
+    protected AccessLevel getAccessLevel() {
+        return accessLevel;
+    }
+    @Override
+    public void execute() throws MojoExecutionException
+    {
         try {
             createWeaver().weaveAll();
         } catch (Exception e) {

Modified: commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FilesystemPrivilizer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FilesystemPrivilizer.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FilesystemPrivilizer.java (original)
+++ commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FilesystemPrivilizer.java Thu Dec 20 21:56:21 2012
@@ -19,9 +19,7 @@ import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
-import java.util.TreeSet;
 
 import javassist.CannotCompileException;
 import javassist.ClassPool;
@@ -29,12 +27,7 @@ import javassist.CtClass;
 import javassist.LoaderClassPath;
 import javassist.NotFoundException;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.Validate;
-import org.apache.xbean.finder.AnnotationFinder;
-import org.apache.xbean.finder.archive.FileArchive;
 
 
 /**
@@ -95,12 +88,11 @@ public class FilesystemPrivilizer extend
         this.target = target;
     }
 
-    /**
+    /*X TODO remove or fix!
      * Clear the way by deleting classfiles woven with a different
      * {@link Policy}.
      * 
      * @throws NotFoundException
-     */
     public void prepare() throws NotFoundException {
         info("preparing %s; policy = %s", target, policy);
         final Set<File> toDelete = new TreeSet<File>();
@@ -132,6 +124,7 @@ public class FilesystemPrivilizer extend
             }
         }
     }
+    */
 
     /**
      * Weave all {@link Privileged} methods found.
@@ -141,16 +134,8 @@ public class FilesystemPrivilizer extend
      * @throws CannotCompileException
      * @throws ClassNotFoundException
      */
-    public void weaveAll() throws NotFoundException, IOException, CannotCompileException, ClassNotFoundException {
-        int woven = 0;
-        for (final Class<?> type : getDeclaringClasses(findPrivilegedMethods())) {
-            if (weave(classPool.get(type.getName()))) {
-                woven++;
-            }
-        }
-        if (woven > 0) {
-            info("Wove %s classes.", woven);
-        }
+    public boolean weaveClass(Class<?> clazz) throws NotFoundException, IOException, CannotCompileException, ClassNotFoundException {
+        return weave(classPool.get(clazz.getName()));
     }
 
     @Override
@@ -158,8 +143,4 @@ public class FilesystemPrivilizer extend
         return classFileWriter;
     }
 
-    private List<Method> findPrivilegedMethods() {
-        final AnnotationFinder annotationFinder = new AnnotationFinder(new FileArchive(classpath, target), false);
-        return annotationFinder.findAnnotatedMethods(Privileged.class);
-    }
 }

Modified: commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java (original)
+++ commons/sandbox/privilizer/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java Thu Dec 20 21:56:21 2012
@@ -1,12 +1,17 @@
 package org.apache.commons.weaver.privilizer;
 
 import java.io.File;
+import java.io.IOException;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.net.URLClassLoader;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.logging.Logger;
 
+import javassist.CannotCompileException;
+import javassist.NotFoundException;
 import org.apache.commons.weaver.spi.Weaver;
 
 /**
@@ -15,6 +20,8 @@ import org.apache.commons.weaver.spi.Wea
  */
 public class PrivilizerWeaver implements Weaver
 {
+    private Logger logger = Logger.getLogger(PrivilizerWeaver.class.getName());
+
     private FilesystemPrivilizer privilizer;
 
     private Privilizer.Policy policy;
@@ -25,7 +32,11 @@ public class PrivilizerWeaver implements
 
     private File target;
 
-
+    @Override
+    public void setLogger(Logger customLogger)
+    {
+        this.logger = customLogger;
+    }
 
     @Override
     public void configure(Map<String, Object> config)
@@ -41,30 +52,54 @@ public class PrivilizerWeaver implements
     @Override
     public List<Class<? extends Annotation>> getInterest()
     {
-        return null;  //To change body of implemented methods use File | Settings | File Templates.
+        List<Class<? extends Annotation>> interest = new ArrayList<Class<? extends Annotation>>();
+        interest.add(Privileged.class);
+        return interest;
     }
 
     @Override
     public void preWeave()
     {
-        //To change body of implemented methods use File | Settings | File Templates.
+        // nothing to do
     }
 
     @Override
-    public boolean weave(Class classToWeave)
+    public boolean weave(Class classToWeave, Class<? extends Annotation> processingAnnotation)
     {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
+        // Privilizer does not weave classes
+        return false;
     }
 
     @Override
-    public boolean weave(Method methodToWeave)
+    public boolean weave(Method methodToWeave, Class<? extends Annotation> processingAnnotation)
     {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
+        try
+        {
+            privilizer.weaveClass(methodToWeave.getDeclaringClass());
+        }
+        catch (NotFoundException e)
+        {
+            throw new RuntimeException(e);
+        }
+        catch (IOException e)
+        {
+            throw new RuntimeException(e);
+        }
+        catch (CannotCompileException e)
+        {
+            throw new RuntimeException(e);
+        }
+        catch (ClassNotFoundException e)
+        {
+            throw new RuntimeException(e);
+        }
+
+        return true;
     }
 
     @Override
     public void postWeave()
     {
-        //To change body of implemented methods use File | Settings | File Templates.
+        // nothing to do
     }
 }

Modified: commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java (original)
+++ commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java Thu Dec 20 21:56:21 2012
@@ -110,12 +110,12 @@ public class WeaveProcessor {
             List<Class<?>> annotatedClasses = annotationFinder.findAnnotatedClasses(annotation);
 
             for (Class<?> annotatedClass : annotatedClasses) {
-                weaver.weave(annotatedClass);
+                weaver.weave(annotatedClass, annotation);
             }
 
             List<Method> annotateMethods = annotationFinder.findAnnotatedMethods(annotation);
             for (Method annotatedMethod : annotateMethods) {
-                weaver.weave(annotatedMethod);
+                weaver.weave(annotatedMethod, annotation);
             }
         }
     }

Modified: commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/spi/Weaver.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/spi/Weaver.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/spi/Weaver.java (original)
+++ commons/sandbox/privilizer/trunk/processor/src/main/java/org/apache/commons/weaver/spi/Weaver.java Thu Dec 20 21:56:21 2012
@@ -22,6 +22,7 @@ import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Map;
+import java.util.logging.Logger;
 
 /**
  * An implementation of a 'Weaver' takes care about
@@ -40,6 +41,12 @@ public interface Weaver
     void configure(Map<String, Object> config);
 
     /**
+     * This method can be used to set a custom logger
+     * @param customLogger
+     */
+    void setLogger(Logger customLogger);
+
+    /**
      * A Weaver must return a List of Annotations he is interested in.
      */
     List<Class<? extends Annotation>> getInterest();
@@ -55,7 +62,7 @@ public interface Weaver
      *
      * @return <code>true</code> if some bytecode has been changed
      */
-    boolean weave(Class classToWeave);
+    boolean weave(Class classToWeave, Class<? extends Annotation> processingAnnotation);
 
     /**
      * Perform weaving on the given class for any class which has one of the required annotations.
@@ -63,7 +70,7 @@ public interface Weaver
      *
      * @return <code>true</code> if some bytecode has been changed
      */
-    boolean weave(Method methodToWeave);
+    boolean weave(Method methodToWeave, Class<? extends Annotation> processingAnnotation);
 
 
     /**

Modified: commons/sandbox/privilizer/trunk/processor/src/test/java/org/apache/commons/weaver/test/weaver/TestWeaver.java
URL: http://svn.apache.org/viewvc/commons/sandbox/privilizer/trunk/processor/src/test/java/org/apache/commons/weaver/test/weaver/TestWeaver.java?rev=1424730&r1=1424729&r2=1424730&view=diff
==============================================================================
--- commons/sandbox/privilizer/trunk/processor/src/test/java/org/apache/commons/weaver/test/weaver/TestWeaver.java (original)
+++ commons/sandbox/privilizer/trunk/processor/src/test/java/org/apache/commons/weaver/test/weaver/TestWeaver.java Thu Dec 20 21:56:21 2012
@@ -23,6 +23,7 @@ import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.logging.Logger;
 
 import org.apache.commons.weaver.test.beans.TestAnnotation;
 import org.junit.Assert;
@@ -39,6 +40,11 @@ public class TestWeaver implements Weave
     public static List<Class> wovenClasses = new ArrayList<Class>();
 
     @Override
+    public void setLogger(Logger customLogger) {
+        // do nothing
+    }
+
+    @Override
     public void configure(Map<String, Object> config)
     {
         Assert.assertNotNull(config);
@@ -63,13 +69,13 @@ public class TestWeaver implements Weave
     }
 
     @Override
-    public boolean weave(Class classToWeave)
+    public boolean weave(Class classToWeave, Class<? extends Annotation> processingAnnotation)
     {
         return wovenClasses.add(classToWeave);
     }
 
     @Override
-    public boolean weave(Method methodToWeave)
+    public boolean weave(Method methodToWeave, Class<? extends Annotation> processingAnnotation)
     {
         return wovenMethods.add(methodToWeave);
     }