You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2013/07/30 17:57:10 UTC

svn commit: r1508503 - in /commons/sandbox/weaver/trunk: ./ example/ example/src/main/java/org/apache/commons/weaver/privilizer/example/ example/src/test/java/org/apache/commons/weaver/privilizer/example/ modules/privilizer/weaver/ modules/privilizer/w...

Author: mbenson
Date: Tue Jul 30 15:57:10 2013
New Revision: 1508503

URL: http://svn.apache.org/r1508503
Log:
reintegrate privilizer asm branch

Added:
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/ActionGenerator.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/ActionGenerator.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Field.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Field.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FieldAccess.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/FieldAccess.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/InlineNestedPrivilegedCalls.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/InlineNestedPrivilegedCalls.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Policy.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Policy.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilized.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilized.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerWeaver.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizingVisitor.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizingVisitor.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/asm/
      - copied from r1508502, commons/sandbox/weaver/branches/priv-asm/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/asm/
    commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/Inflater.java
      - copied unchanged from r1508502, commons/sandbox/weaver/branches/priv-asm/processor/src/main/java/org/apache/commons/weaver/Inflater.java
Modified:
    commons/sandbox/weaver/trunk/   (props changed)
    commons/sandbox/weaver/trunk/example/pom.xml
    commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/UsingBlueprints.java
    commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/Utils.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/NoArgsTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/OverloadingTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/PrivateMethodsTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticNoArgsTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticOverloadingTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticPrivateMethodsTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticUsingArgsTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingArgsTest.java
    commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingBlueprintsTest.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/pom.xml
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/   (props changed)
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/AccessLevel.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java
    commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/resources/META-INF/services/org.apache.commons.weaver.spi.Cleaner
    commons/sandbox/weaver/trunk/pom.xml
    commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/Finder.java
    commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/Weavable.java

Propchange: commons/sandbox/weaver/trunk/
------------------------------------------------------------------------------
  Merged /commons/sandbox/weaver/branches/priv-asm:r1476710-1508502

Modified: commons/sandbox/weaver/trunk/example/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/pom.xml?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/pom.xml (original)
+++ commons/sandbox/weaver/trunk/example/pom.xml Tue Jul 30 15:57:10 2013
@@ -28,6 +28,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <privilizer.policy>ON_INIT</privilizer.policy>
+    <privilizer.verify>true</privilizer.verify>
   </properties>
   <dependencies>
     <dependency>
@@ -56,6 +57,7 @@
           <weaverConfig>
             <privilizer.accessLevel>PACKAGE</privilizer.accessLevel>
             <privilizer.policy>${privilizer.policy}</privilizer.policy>
+            <privilizer.verify>${privilizer.verify}</privilizer.verify>
           </weaverConfig>
         </configuration>
         <executions>
@@ -76,6 +78,25 @@
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-weaver-privilizer</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+              <exclusion>
+                <groupId>org.ow2.asm</groupId>
+                <artifactId>asm</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.ow2.asm</groupId>
+                <artifactId>asm-commons</artifactId>
+              </exclusion>
+              <exclusion>
+                <groupId>org.ow2.asm</groupId>
+                <artifactId>asm-tree</artifactId>
+              </exclusion>
+            </exclusions>
+          </dependency>
+          <dependency>
+            <groupId>org.ow2.asm</groupId>
+            <artifactId>asm-debug-all</artifactId>
+            <version>${asm.version}</version>
           </dependency>
         </dependencies>
       </plugin>

Modified: commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/UsingBlueprints.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/UsingBlueprints.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/UsingBlueprints.java (original)
+++ commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/UsingBlueprints.java Tue Jul 30 15:57:10 2013
@@ -25,6 +25,10 @@ public class UsingBlueprints {
         return Utils.readPublicConstant();
     }
 
+    public int utilsReadPrivateField() {
+        return Utils.readPrivateField();
+    }
+
     public String utilsGetProperty() {
         return Utils.getProperty();
     }

Modified: commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/Utils.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/Utils.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/Utils.java (original)
+++ commons/sandbox/weaver/trunk/example/src/main/java/org/apache/commons/weaver/privilizer/example/Utils.java Tue Jul 30 15:57:10 2013
@@ -52,4 +52,13 @@ public class Utils {
     public static String getProperty(String key) {
         return System.getProperty(key);
     }
+
+    private static Integer n;
+    static {
+        n = Integer.valueOf(999);
+    }
+
+    public static int readPrivateField() {
+        return n;
+    }
 }

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/NoArgsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/NoArgsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/NoArgsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/NoArgsTest.java Tue Jul 30 15:57:10 2013
@@ -25,10 +25,13 @@ import java.security.PrivilegedAction;
 
 import org.apache.commons.weaver.privilizer.example.NoArgs.CheckedException1;
 import org.apache.commons.weaver.privilizer.example.NoArgs.CheckedException2;
+import org.junit.Before;
+import org.junit.Test;
 
 public class NoArgsTest {
     private NoArgs noArgs;
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
 
@@ -41,22 +44,27 @@ public class NoArgsTest {
         noArgs = new NoArgs();
     }
 
+    @Test
     public void testThrowAwayFoo() {
         noArgs.throwAwayFoo();
     }
 
+    @Test
     public void testGetFoo() {
         assertEquals("foo-value", noArgs.getFoo());
     }
 
+    @Test
     public void testGetTrue() {
         assertSame(Boolean.TRUE, noArgs.getTrue());
     }
 
+    @Test
     public void testGetFalse() {
         assertFalse(noArgs.getFalse());
     }
 
+    @Test
     public void testThrowingCheckedException1() {
         try {
             noArgs.throwingCheckedException1();
@@ -65,6 +73,7 @@ public class NoArgsTest {
         }
     }
 
+    @Test
     public void testThrowingCheckedException2() {
         try {
             noArgs.throwingCheckedException2();

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/OverloadingTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/OverloadingTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/OverloadingTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/OverloadingTest.java Tue Jul 30 15:57:10 2013
@@ -20,9 +20,13 @@ import static org.junit.Assert.assertEqu
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
+import org.junit.Before;
+import org.junit.Test;
+
 public class OverloadingTest {
     private Overloading overloading;
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             @Override
@@ -36,14 +40,17 @@ public class OverloadingTest {
         overloading = new Overloading();
     }
 
+    @Test
     public void testNoArgs() {
         assertEquals("foo-value", overloading.get());
     }
 
+    @Test
     public void testStringArg() {
         assertEquals("bar-value", overloading.get("bar"));
     }
 
+    @Test
     public void testCharishArgs() {
         assertEquals("baz-value", overloading.get('b', 'a', (short) 'z'));
     }

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/PrivateMethodsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/PrivateMethodsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/PrivateMethodsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/PrivateMethodsTest.java Tue Jul 30 15:57:10 2013
@@ -20,9 +20,13 @@ import static org.junit.Assert.assertEqu
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
+import org.junit.Before;
+import org.junit.Test;
+
 public class PrivateMethodsTest {
     private PrivateMethods privateMethods;
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             @Override
@@ -36,6 +40,7 @@ public class PrivateMethodsTest {
         privateMethods = new PrivateMethods();
     }
 
+    @Test
     public void testGet() {
         assertEquals("foo-value", privateMethods.get("foo"));
         assertEquals("bar-value", privateMethods.get("bar"));

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticNoArgsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticNoArgsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticNoArgsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticNoArgsTest.java Tue Jul 30 15:57:10 2013
@@ -25,8 +25,11 @@ import java.security.PrivilegedAction;
 
 import org.apache.commons.weaver.privilizer.example.StaticNoArgs.CheckedException1;
 import org.apache.commons.weaver.privilizer.example.StaticNoArgs.CheckedException2;
+import org.junit.Before;
+import org.junit.Test;
 
 public class StaticNoArgsTest {
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
 
@@ -38,22 +41,27 @@ public class StaticNoArgsTest {
         });
     }
 
+    @Test
     public void testThrowAwayFoo() {
         StaticNoArgs.throwAwayFoo();
     }
 
+    @Test
     public void testGetFoo() {
         assertEquals("foo-value", StaticNoArgs.getFoo());
     }
 
+    @Test
     public void testGetTrue() {
         assertSame(Boolean.TRUE, StaticNoArgs.getTrue());
     }
 
+    @Test
     public void testGetFalse() {
         assertFalse(StaticNoArgs.getFalse());
     }
 
+    @Test
     public void testThrowingCheckedException1() {
         try {
             StaticNoArgs.throwingCheckedException1();
@@ -62,6 +70,7 @@ public class StaticNoArgsTest {
         }
     }
 
+    @Test
     public void testThrowingCheckedException2() {
         try {
             StaticNoArgs.throwingCheckedException2();

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticOverloadingTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticOverloadingTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticOverloadingTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticOverloadingTest.java Tue Jul 30 15:57:10 2013
@@ -20,8 +20,12 @@ import static org.junit.Assert.assertEqu
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
+import org.junit.Before;
+import org.junit.Test;
+
 public class StaticOverloadingTest {
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             @Override
@@ -34,14 +38,17 @@ public class StaticOverloadingTest {
         });
     }
 
+    @Test
     public void testNoArgs() {
         assertEquals("foo-value", StaticOverloading.get());
     }
 
+    @Test
     public void testStringArg() {
         assertEquals("bar-value", StaticOverloading.get("bar"));
     }
 
+    @Test
     public void testCharishArgs() {
         assertEquals("baz-value", StaticOverloading.get('b', 'a', (short) 'z'));
     }

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticPrivateMethodsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticPrivateMethodsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticPrivateMethodsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticPrivateMethodsTest.java Tue Jul 30 15:57:10 2013
@@ -20,8 +20,12 @@ import static org.junit.Assert.assertEqu
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
+import org.junit.Before;
+import org.junit.Test;
+
 public class StaticPrivateMethodsTest {
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             @Override
@@ -34,6 +38,7 @@ public class StaticPrivateMethodsTest {
         });
     }
 
+    @Test
     public void testGet() {
         assertEquals("foo-value", StaticPrivateMethods.get("foo"));
         assertEquals("bar-value", StaticPrivateMethods.get("bar"));

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticUsingArgsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticUsingArgsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticUsingArgsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/StaticUsingArgsTest.java Tue Jul 30 15:57:10 2013
@@ -25,9 +25,12 @@ import java.util.Arrays;
 
 import org.apache.commons.weaver.privilizer.example.StaticUsingArgs.CheckedException1;
 import org.apache.commons.weaver.privilizer.example.StaticUsingArgs.CheckedException2;
+import org.junit.Before;
+import org.junit.Test;
 
 public class StaticUsingArgsTest {
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             @Override
@@ -40,12 +43,14 @@ public class StaticUsingArgsTest {
         });
     }
 
+    @Test
     public void testGetProperty() {
         assertEquals("foo-value", StaticUsingArgs.getProperty("foo"));
         assertEquals("bar-value", StaticUsingArgs.getProperty("bar"));
         assertEquals("baz-value", StaticUsingArgs.getProperty("baz"));
     }
 
+    @Test
     public void testGetProperties() {
         assertTrue(Arrays.equals(new String[] { "foo-value", "bar-value", "baz-value" },
             StaticUsingArgs.getProperties("foo", "bar", "baz")));
@@ -53,16 +58,19 @@ public class StaticUsingArgsTest {
         assertNull(StaticUsingArgs.getProperties((String[]) null));
     }
 
+    @Test
     public void testThrowAwayProperty() {
         StaticUsingArgs.throwAwayProperty('f', "o", 'o');
     }
 
+    @Test
     public void testAssembleAndGetProperty() {
         assertEquals("foo-value", StaticUsingArgs.assembleAndGetProperty('f', new StringBuilder().append('o'), 'o'));
         assertEquals("bar-value", StaticUsingArgs.assembleAndGetProperty('b', new StringBuilder().append('a'), 'r'));
         assertEquals("baz-value", StaticUsingArgs.assembleAndGetProperty('b', new StringBuilder().append('a'), 'z'));
     }
 
+    @Test
     public void testThrowingCheckedException() throws CheckedException1, CheckedException2 {
         assertEquals(0, StaticUsingArgs.throwingCheckedException(0, "foo"));
         try {

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingArgsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingArgsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingArgsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingArgsTest.java Tue Jul 30 15:57:10 2013
@@ -25,10 +25,13 @@ import java.util.Arrays;
 
 import org.apache.commons.weaver.privilizer.example.UsingArgs.CheckedException1;
 import org.apache.commons.weaver.privilizer.example.UsingArgs.CheckedException2;
+import org.junit.Before;
+import org.junit.Test;
 
 public class UsingArgsTest {
     private UsingArgs usingArgs;
 
+    @Before
     public void setUp() throws Exception {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
             @Override
@@ -42,12 +45,14 @@ public class UsingArgsTest {
         usingArgs = new UsingArgs();
     }
 
+    @Test
     public void testGetProperty() {
         assertEquals("foo-value", usingArgs.getProperty("foo"));
         assertEquals("bar-value", usingArgs.getProperty("bar"));
         assertEquals("baz-value", usingArgs.getProperty("baz"));
     }
 
+    @Test
     public void testGetProperties() {
         assertTrue(Arrays.equals(new String[] { "foo-value", "bar-value", "baz-value" },
             usingArgs.getProperties("foo", "bar", "baz")));
@@ -55,16 +60,19 @@ public class UsingArgsTest {
         assertNull(usingArgs.getProperties((String[]) null));
     }
 
+    @Test
     public void testThrowAwayProperty() {
         usingArgs.throwAwayProperty('f', "o", 'o');
     }
 
+    @Test
     public void testAssembleAndGetProperty() {
         assertEquals("foo-value", usingArgs.assembleAndGetProperty('f', new StringBuilder().append('o'), 'o'));
         assertEquals("bar-value", usingArgs.assembleAndGetProperty('b', new StringBuilder().append('a'), 'r'));
         assertEquals("baz-value", usingArgs.assembleAndGetProperty('b', new StringBuilder().append('a'), 'z'));
     }
 
+    @Test
     public void testThrowingCheckedException() throws CheckedException1, CheckedException2 {
         assertEquals(0, usingArgs.throwingCheckedException(0, "foo"));
         try {

Modified: commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingBlueprintsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingBlueprintsTest.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingBlueprintsTest.java (original)
+++ commons/sandbox/weaver/trunk/example/src/test/java/org/apache/commons/weaver/privilizer/example/UsingBlueprintsTest.java Tue Jul 30 15:57:10 2013
@@ -47,6 +47,11 @@ public class UsingBlueprintsTest {
     }
 
     @Test
+    public void testUtilsReadPrivateField() {
+        assertEquals(999, usingBlueprints.utilsReadPrivateField());
+    }
+
+    @Test
     public void testUtilsGetProperty() {
         assertEquals("foo-value", usingBlueprints.utilsGetProperty());
     }

Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/pom.xml?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/pom.xml (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/pom.xml Tue Jul 30 15:57:10 2013
@@ -45,18 +45,17 @@
       <artifactId>commons-lang3</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.javassist</groupId>
-      <artifactId>javassist</artifactId>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm</artifactId>
+      <groupId>org.javassist</groupId>
+      <artifactId>javassist</artifactId>
     </dependency>
   </dependencies>
-
   <build>
     <plugins>
-      <plugin>
+      <!--plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-invoker-plugin</artifactId>
         <configuration>
@@ -79,7 +78,42 @@
             </goals>
           </execution>
         </executions>
-      </plugin>
+      </plugin-->
     </plugins>
   </build>
+  <profiles>
+    <profile>
+      <id>basic</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <dependencies>
+        <dependency>
+          <groupId>org.ow2.asm</groupId>
+          <artifactId>asm</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.ow2.asm</groupId>
+          <artifactId>asm-commons</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.ow2.asm</groupId>
+          <artifactId>asm-tree</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.ow2.asm</groupId>
+          <artifactId>asm-util</artifactId>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>dev</id>
+      <dependencies>
+        <dependency>
+          <groupId>org.ow2.asm</groupId>
+          <artifactId>asm-debug-all</artifactId>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
 </project>

Propchange: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 30 15:57:10 2013
@@ -0,0 +1 @@
+bytecode

Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/AccessLevel.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/AccessLevel.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/AccessLevel.java (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/AccessLevel.java Tue Jul 30 15:57:10 2013
@@ -18,6 +18,10 @@ package org.apache.commons.weaver.privil
 import java.lang.reflect.Modifier;
 import java.util.EnumSet;
 import java.util.Locale;
+import java.util.Set;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
 
 public enum AccessLevel {
     PUBLIC(Modifier.PUBLIC), PROTECTED(Modifier.PROTECTED), PACKAGE(0), PRIVATE(Modifier.PRIVATE);
@@ -29,16 +33,21 @@ public enum AccessLevel {
     }
 
     public static AccessLevel of(int mod) {
+        final Set<AccessLevel> matched = EnumSet.noneOf(AccessLevel.class);
         if (Modifier.isPublic(mod)) {
-            return PUBLIC;
+            matched.add(PUBLIC);
         }
         if (Modifier.isProtected(mod)) {
-            return PROTECTED;
+            matched.add(PROTECTED);
         }
         if (Modifier.isPrivate(mod)) {
-            return PRIVATE;
+            matched.add(PRIVATE);
+        }
+        if (matched.isEmpty()) {
+            return PACKAGE;
         }
-        return PACKAGE;
+        Validate.isTrue(matched.size() == 1, "%s seems to declare multiple access modifiers: %s", mod, matched);
+        return matched.iterator().next();
     }
 
     public int merge(int mod) {
@@ -62,4 +71,17 @@ public enum AccessLevel {
     public static AccessLevel defaultValue() {
         return AccessLevel.PRIVATE;
     }
+
+    /**
+     * Parse from a {@link String} returning {@link #defaultValue()} for blank/null input.
+     * 
+     * @param s
+     * @return {@link AccessLevel}
+     */
+    public static AccessLevel parse(String s) {
+        if (StringUtils.isBlank(s)) {
+            return defaultValue();
+        }
+        return valueOf(s.trim().toUpperCase(Locale.US));
+    }
 }

Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/PrivilizerCleaner.java Tue Jul 30 15:57:10 2013
@@ -17,23 +17,18 @@ package org.apache.commons.weaver.privil
 
 import java.io.File;
 import java.lang.annotation.ElementType;
-import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.weaver.model.ScanRequest;
 import org.apache.commons.weaver.model.Scanner;
 import org.apache.commons.weaver.model.WeavableClass;
 import org.apache.commons.weaver.model.WeaveEnvironment;
 import org.apache.commons.weaver.model.WeaveInterest;
-import org.apache.commons.weaver.privilizer.Privilizer.Policy;
-import org.apache.commons.weaver.privilizer.Privilizer.Privilized;
+import org.apache.commons.weaver.privilizer.Privilizer;
 import org.apache.commons.weaver.spi.Cleaner;
-import org.apache.commons.weaver.utils.URLArray;
-import org.apache.xbean.finder.archive.FileArchive;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.Opcodes;
@@ -41,30 +36,22 @@ import org.objectweb.asm.Opcodes;
 /**
  * Removes classes privilized with a different policy.
  */
-/*
- * Implemented with ASM in anticipation of the rest of the privilizer being rewritten :P
- */
 public class PrivilizerCleaner implements Cleaner {
     private static final int ASM_FLAGS = ClassReader.SKIP_CODE + ClassReader.SKIP_DEBUG + ClassReader.SKIP_FRAMES;
     private static final Logger LOG = Logger.getLogger(PrivilizerCleaner.class.getName());
 
     @Override
     public boolean clean(WeaveEnvironment environment, Scanner scanner) {
-        final ClassLoader classLoader = new URLClassLoader(URLArray.fromPaths(environment.classpath));
-        final FileArchive fileArchive = new FileArchive(classLoader, environment.target);
+        final Privilizer privilizer = new Privilizer(environment);
 
-        final String policyConfig = environment.config.getProperty(PrivilizerWeaver.CONFIG_POLICY);
-        final Privilizer.Policy policy =
-            StringUtils.isEmpty(policyConfig) ? Privilizer.Policy.defaultValue() : Privilizer.Policy
-                .valueOf(policyConfig);
         final List<String> toDelete = new ArrayList<String>();
 
         final ScanRequest scanRequest = new ScanRequest().add(WeaveInterest.of(Privilized.class, ElementType.TYPE));
 
-        LOG.log(Level.FINE, "Cleaning classes privilized with policy other than {0}", policy);
+        LOG.log(Level.FINE, "Cleaning classes privilized with policy other than {0}", privilizer.policy);
         for (WeavableClass<?> weavableClass : scanner.scan(scanRequest).getClasses().with(Privilized.class)) {
             final Policy privilizedPolicy = weavableClass.getAnnotation(Privilized.class).value();
-            if (privilizedPolicy == policy) {
+            if (privilizedPolicy == privilizer.policy) {
                 continue;
             }
             final String className = weavableClass.getTarget().getName();
@@ -72,7 +59,7 @@ public class PrivilizerCleaner implement
                 new Object[] { className, privilizedPolicy });
 
             try {
-                final ClassReader classReader = new ClassReader(fileArchive.getBytecode(className));
+                final ClassReader classReader = new ClassReader(privilizer.fileArchive.getBytecode(className));
                 classReader.accept(new ClassVisitor(Opcodes.ASM4) {
                     @Override
                     public void visit(int version, int access, String name, String signature, String superName,

Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/resources/META-INF/services/org.apache.commons.weaver.spi.Cleaner
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/resources/META-INF/services/org.apache.commons.weaver.spi.Cleaner?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/resources/META-INF/services/org.apache.commons.weaver.spi.Cleaner (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/resources/META-INF/services/org.apache.commons.weaver.spi.Cleaner Tue Jul 30 15:57:10 2013
@@ -15,5 +15,5 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# this class gets picked up by the WeaveProcessor
+# this class gets picked up by the CleanProcessor
 org.apache.commons.weaver.privilizer.PrivilizerCleaner

Modified: commons/sandbox/weaver/trunk/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/pom.xml?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/pom.xml (original)
+++ commons/sandbox/weaver/trunk/pom.xml Tue Jul 30 15:57:10 2013
@@ -45,6 +45,7 @@
     <commons.rc.version>RC1</commons.rc.version>
     <!--commons.jira.id>WEAVER</commons.jira.id>
     <commons.jira.pid>666</commons.jira.pid-->
+    <asm.version>4.1</asm.version>
   </properties>
 
   <developers>
@@ -94,6 +95,11 @@
         <version>3.1</version>
       </dependency>
       <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>2.4</version>
+      </dependency>
+      <dependency>
         <groupId>org.javassist</groupId>
         <artifactId>javassist</artifactId>
         <version>3.17.1-GA</version>
@@ -101,7 +107,27 @@
       <dependency>
         <groupId>org.ow2.asm</groupId>
         <artifactId>asm</artifactId>
-        <version>4.1</version>
+        <version>${asm.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ow2.asm</groupId>
+        <artifactId>asm-commons</artifactId>
+        <version>${asm.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ow2.asm</groupId>
+        <artifactId>asm-tree</artifactId>
+        <version>${asm.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ow2.asm</groupId>
+        <artifactId>asm-util</artifactId>
+        <version>${asm.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ow2.asm</groupId>
+        <artifactId>asm-debug-all</artifactId>
+        <version>${asm.version}</version>
       </dependency>
       <dependency>
         <groupId>junit</groupId>

Modified: commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/Finder.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/Finder.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/Finder.java (original)
+++ commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/Finder.java Tue Jul 30 15:57:10 2013
@@ -336,8 +336,7 @@ class Finder extends AnnotationFinder im
                 final ClassInfo classInfo = classInfos.get(((Class<?>) object).getName());
                 final IncludesClassfile<Class<?>> annotated;
                 try {
-                    annotated =
-                        new IncludesClassfile<Class<?>>(classInfo.get(), classfileAnnotationsFor(classInfo));
+                    annotated = new IncludesClassfile<Class<?>>(classInfo.get(), classfileAnnotationsFor(classInfo));
                 } catch (ClassNotFoundException e) {
                     continue;
                 }
@@ -501,8 +500,9 @@ class Finder extends AnnotationFinder im
             }
         };
 
-    private final Map<Info, List<Annotation>> classfileAnnotations;
     private final WithAnnotations withAnnotations = new WithAnnotations();
+    private final Map<Info, List<Annotation>> classfileAnnotations;
+    private final Inflater inflater;
 
     /**
      * Create a new {@link Finder} instance.
@@ -513,6 +513,7 @@ class Finder extends AnnotationFinder im
         super(archive, false);
         classfileAnnotations = CLASSFILE_ANNOTATIONS.get();
         CLASSFILE_ANNOTATIONS.remove();
+        inflater = new Inflater(classfileAnnotations);
         enableFindImplementations();
         enableFindSubclasses();
     }
@@ -602,7 +603,7 @@ class Finder extends AnnotationFinder im
                 }
             }
         }
-        return result;
+        return inflater.inflate(result);
     }
 
     private Class<?> toClass(Type type) {

Modified: commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/Weavable.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/Weavable.java?rev=1508503&r1=1508502&r2=1508503&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/Weavable.java (original)
+++ commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/Weavable.java Tue Jul 30 15:57:10 2013
@@ -20,10 +20,12 @@ package org.apache.commons.weaver.model;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
-import java.util.Collections;
+import java.util.Arrays;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
+import org.apache.commons.lang3.Validate;
+
 public abstract class Weavable<SELF extends Weavable<SELF, TARGET>, TARGET> implements Comparable<SELF>,
     AnnotatedElement {
     private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
@@ -33,15 +35,30 @@ public abstract class Weavable<SELF exte
 
     protected Weavable(TARGET target) {
         this.target = target;
+        if (target instanceof AnnotatedElement) {
+            addAnnotations(((AnnotatedElement) target).getAnnotations());
+        }
     }
 
     public boolean addAnnotations(Annotation... toAdd) {
+        Validate.noNullElements(toAdd);
+        return addAnnotations(Arrays.asList(toAdd));
+    }
+
+    public boolean addAnnotations(Iterable<Annotation> toAdd) {
+        if (toAdd == null) {
+            return false;
+        }
         synchronized (this) {
             if (annotations == null) {
                 annotations = new LinkedHashSet<Annotation>();
             }
         }
-        return Collections.addAll(annotations, toAdd);
+        boolean result = false;
+        for (Annotation a : toAdd) {
+            result = a != null && annotations.add(a) || result;
+        }
+        return result;
     }
 
     public TARGET getTarget() {