You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by tc...@apache.org on 2005/04/20 19:39:18 UTC
svn commit: r162029 -
/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ContinuationClassLoader.java
Author: tcurdt
Date: Wed Apr 20 10:39:17 2005
New Revision: 162029
URL: http://svn.apache.org/viewcvs?rev=162029&view=rev
Log:
prepare for configuration
Modified:
jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ContinuationClassLoader.java
Modified: jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ContinuationClassLoader.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ContinuationClassLoader.java?rev=162029&r1=162028&r2=162029&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ContinuationClassLoader.java (original)
+++ jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/ContinuationClassLoader.java Wed Apr 20 10:39:17 2005
@@ -34,30 +34,46 @@
private ClassTransformer transformer = new BcelClassTransformer();
+ private String[] excludeFromLoading = {
+ "java.",
+ "javax.",
+ "sun.",
+ "org.xml.",
+ "org.w3c.",
+ "org.apache.commons.logging"
+ };
+
+ private String[] includeInRewriting = {
+ "org.apache.commons.javaflow.testcode"
+ };
+
public ContinuationClassLoader(ClassLoader parent) {
super(parent);
//Repository.setRepository(new ClassLoaderRepository(parent));
}
+ private boolean startsWithOneOf(final String[] prefixes, final String s) {
+ for (int i = 0; i < prefixes.length; i++) {
+ if (s.startsWith(prefixes[i])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
protected synchronized Class loadClass(String name, boolean resolve)
throws ClassNotFoundException {
Class c = findLoadedClass(name);
if (c == null) {
- if (!name.startsWith("java.") &&
- !name.startsWith("javax.") &&
- !name.startsWith("sun.") &&
- !name.startsWith("org.xml.") &&
- !name.startsWith("org.w3c.") &&
- !name.startsWith("org.apache.commons.logging.")
- ) {
+ if (!startsWithOneOf(excludeFromLoading, name)) {
final InputStream is = super.getResourceAsStream(name.replace('.','/') + ".class");
if (is != null) {
- if (name.startsWith("org.apache.commons.javaflow.testcode")) {
+ if (startsWithOneOf(includeInRewriting, name)) {
//log.debug("transforming " + name);
final byte data[] = transformer.transform(is);
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org