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