[jboss-cvs] JBossAS SVN: r96046 - projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 5 04:09:12 EST 2009


Author: alesj
Date: 2009-11-05 04:09:12 -0500 (Thu, 05 Nov 2009)
New Revision: 96046

Modified:
   projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java
Log:
Simplify regexp fix.

Modified: projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java
===================================================================
--- projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java	2009-11-05 08:27:40 UTC (rev 96045)
+++ projects/demos/microcontainer/trunk/classloader/src/main/java/org/jboss/demos/classloader/policy/RegexpClassLoaderPolicy.java	2009-11-05 09:09:12 UTC (rev 96046)
@@ -66,34 +66,31 @@
 
    protected Pattern createPattern(String regexp)
    {
-      boolean done;
-      boolean paren = false;
+      boolean outside = true;
       StringBuilder builder = new StringBuilder();
       for (int i = 0; i < regexp.length(); i++)
       {
-         done = false;
-
          char ch = regexp.charAt(i);
-         if (ch == '[')
-            paren = true;
-         else if (ch == ']')
-            paren = false;
-
-         if (ch == '.' && i > 0)
+         if ((ch == '[' || ch == ']' || ch == '.') && escaped(regexp, i) == false)
          {
-            if (paren == false && regexp.charAt(i - 1) != '\\')
+            switch (ch)
             {
-               builder.append("\\.");
-               done = true;
+               case '[' : outside = false; break;
+               case ']' : outside = true; break;
+               case '.' : if (outside) builder.append("\\"); break;
             }
          }
 
-         if (done == false)
-            builder.append(ch);
+         builder.append(ch);
       }
       return Pattern.compile(builder.toString());
    }
 
+   protected boolean escaped(String regexp, int i)
+   {
+      return i > 0 && regexp.charAt(i - 1) == '\\';
+   }
+
    public URL getResource(String path)
    {
       Pattern pattern = createPattern(path);




More information about the jboss-cvs-commits mailing list