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/08/11 20:34:56 UTC
svn commit: r1512985 - in /commons/sandbox/weaver/trunk:
modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/
processor/src/main/java/org/apache/commons/weaver/
processor/src/main/java/org/apache/commons/weaver/model/
Author: mbenson
Date: Sun Aug 11 18:34:56 2013
New Revision: 1512985
URL: http://svn.apache.org/r1512985
Log:
use env classLoader, remove classpath
Modified:
commons/sandbox/weaver/trunk/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/Privilizer.java
commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/CleanProcessor.java
commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java
commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java
Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java?rev=1512985&r1=1512984&r2=1512985&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/BlueprintingVisitor.java Sun Aug 11 18:34:56 2013
@@ -297,7 +297,7 @@ class BlueprintingVisitor extends Privil
}
private Class<?> load(Type t) throws ClassNotFoundException {
- return privilizer().classLoader.loadClass(t.getClassName());
+ return privilizer().env.classLoader.loadClass(t.getClassName());
}
}
Modified: commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java?rev=1512985&r1=1512984&r2=1512985&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java (original)
+++ commons/sandbox/weaver/trunk/modules/privilizer/weaver/src/main/java/org/apache/commons/weaver/privilizer/Privilizer.java Sun Aug 11 18:34:56 2013
@@ -23,9 +23,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.net.URLClassLoader;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import org.apache.commons.io.FileUtils;
@@ -34,10 +32,6 @@ import org.apache.commons.lang3.BooleanU
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.commons.weaver.model.WeaveEnvironment;
-import org.apache.commons.weaver.privilizer.AccessLevel;
-import org.apache.commons.weaver.privilizer.Policy;
-import org.apache.commons.weaver.privilizer.Privilizing;
-import org.apache.commons.weaver.utils.URLArray;
import org.apache.xbean.finder.archive.FileArchive;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
@@ -110,21 +104,16 @@ public class Privilizer {
final WeaveEnvironment env;
final AccessLevel accessLevel;
- final ClassLoader classLoader;
final FileArchive fileArchive;
final Policy policy;
final boolean verify;
- private final List<String> classpath;
-
public Privilizer(WeaveEnvironment env) {
super();
this.env = env;
this.policy = Policy.parse(env.config.getProperty(CONFIG_POLICY));
this.accessLevel = AccessLevel.parse(env.config.getProperty(CONFIG_ACCESS_LEVEL));
- this.classpath = env.classpath;
- classLoader = new URLClassLoader(URLArray.fromPaths(env.classpath));
- fileArchive = new FileArchive(classLoader, env.target);
+ fileArchive = new FileArchive(env.classLoader, env.target);
verify = BooleanUtils.toBoolean(env.config.getProperty(CONFIG_VERIFY));
}
@@ -200,22 +189,9 @@ public class Privilizer {
void verify(final String className, final byte[] bytecode) {
final ClassReader reader = new ClassReader(bytecode);
- // use a new classloader that is always up to date:
- final ClassLoader verifyClassLoader = new URLClassLoader(URLArray.fromPaths(classpath)) {
- @Override
- protected Class<?> findClass(String name) throws ClassNotFoundException {
- if (className.equals(name)) {
- final Class<?> result = defineClass(className, bytecode, 0, bytecode.length);
- resolveClass(result);
- return result;
- }
- return super.findClass(name);
- }
- };
-
env.debug("Verifying bytecode for class %s", className);
final StringWriter w = new StringWriter();
- CheckClassAdapter.verify(reader, verifyClassLoader, false, new PrintWriter(w));
+ CheckClassAdapter.verify(reader, env.classLoader, false, new PrintWriter(w));
final String error = w.toString();
if (!error.isEmpty()) {
env.error(error);
Modified: commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/CleanProcessor.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/CleanProcessor.java?rev=1512985&r1=1512984&r2=1512985&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/CleanProcessor.java (original)
+++ commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/CleanProcessor.java Sun Aug 11 18:34:56 2013
@@ -85,8 +85,7 @@ public class CleanProcessor {
final Finder finder = new Finder(new FileArchive(classLoader, target));
for (Cleaner cleaner : CLEANERS) {
final WeaveEnvironment env =
- new WeaveEnvironment(classpath, target, classLoader, configuration, Logger.getLogger(cleaner.getClass()
- .getName()));
+ new WeaveEnvironment(target, classLoader, configuration, Logger.getLogger(cleaner.getClass().getName()));
cleaner.clean(env, finder);
}
}
Modified: commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java?rev=1512985&r1=1512984&r2=1512985&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java (original)
+++ commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/WeaveProcessor.java Sun Aug 11 18:34:56 2013
@@ -86,8 +86,7 @@ public class WeaveProcessor {
final Finder finder = new Finder(new FileArchive(classLoader, target));
for (Weaver weaver : WEAVERS) {
final WeaveEnvironment env =
- new WeaveEnvironment(classpath, target, classLoader, configuration, Logger.getLogger(weaver.getClass()
- .getName()));
+ new WeaveEnvironment(target, classLoader, configuration, Logger.getLogger(weaver.getClass().getName()));
weaver.process(env, finder);
}
}
Modified: commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java
URL: http://svn.apache.org/viewvc/commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java?rev=1512985&r1=1512984&r2=1512985&view=diff
==============================================================================
--- commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java (original)
+++ commons/sandbox/weaver/trunk/processor/src/main/java/org/apache/commons/weaver/model/WeaveEnvironment.java Sun Aug 11 18:34:56 2013
@@ -19,8 +19,6 @@
package org.apache.commons.weaver.model;
import java.io.File;
-import java.util.Collections;
-import java.util.List;
import java.util.Properties;
import java.util.logging.Logger;
@@ -32,10 +30,6 @@ import org.apache.commons.weaver.spi.Wea
* Encapsulates the environment in which a {@link Weaver} or {@link Cleaner} must operate.
*/
public class WeaveEnvironment {
- /**
- * Classpath.
- */
- public final List<String> classpath;
/**
* Target where weavable classes reside.
@@ -57,16 +51,13 @@ public class WeaveEnvironment {
/**
* Create a new {@link WeaveEnvironment}.
- *
- * @param classpath
* @param target
* @param classLoader
* @param config
* @param log
*/
- public WeaveEnvironment(List<String> classpath, File target, ClassLoader classLoader, Properties config, Logger log) {
+ public WeaveEnvironment(File target, ClassLoader classLoader, Properties config, Logger log) {
super();
- this.classpath = Collections.unmodifiableList(Validate.notNull(classpath, "classpath"));
this.target = Validate.notNull(target, "target");
this.classLoader = classLoader;
this.config = (Properties) Validate.notNull(config, "config").clone();