[jboss-cvs] JBossAS SVN: r83148 - in projects/aop/trunk/aop/src: test/java/org/jboss/test/aop/unit and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 21 07:31:53 EST 2009


Author: kabir.khan at jboss.com
Date: 2009-01-21 07:31:53 -0500 (Wed, 21 Jan 2009)
New Revision: 83148

Added:
   projects/aop/trunk/aop/src/test/java/org/jboss/test/aop/unit/classpool/
   projects/aop/trunk/aop/src/test/java/org/jboss/test/aop/unit/classpool/util/
   projects/aop/trunk/aop/src/test/java/org/jboss/test/aop/unit/classpool/util/ClassLoaderUtilsTestCase.java
Modified:
   projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/ClassLoaderUtils.java
Log:
[JBAOP-666] Update ClassLoaderUtils to take arrays into account

Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/ClassLoaderUtils.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/ClassLoaderUtils.java	2009-01-21 12:25:18 UTC (rev 83147)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/ClassLoaderUtils.java	2009-01-21 12:31:53 UTC (rev 83148)
@@ -30,14 +30,19 @@
 {
    public static String getResourceName(String classname)
    {
-      final int lastIndex = classname.lastIndexOf('$');
+      String name = classname;
+      if (name.endsWith("[]"))
+      {
+         name = classname.substring(0, name.indexOf("[]"));
+      }
+      final int lastIndex = name.lastIndexOf('$');
       if (lastIndex < 0)
       {
-         return classname.replaceAll("[\\.]", "/") + ".class";
+         return name.replaceAll("[\\.]", "/") + ".class";
       }
       else
       {
-         return classname.substring(0, lastIndex).replaceAll("[\\.]", "/") + classname.substring(lastIndex) + ".class";
+         return name.substring(0, lastIndex).replaceAll("[\\.]", "/") + name.substring(lastIndex) + ".class";
       }
    }
 

Added: projects/aop/trunk/aop/src/test/java/org/jboss/test/aop/unit/classpool/util/ClassLoaderUtilsTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/java/org/jboss/test/aop/unit/classpool/util/ClassLoaderUtilsTestCase.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/java/org/jboss/test/aop/unit/classpool/util/ClassLoaderUtilsTestCase.java	2009-01-21 12:31:53 UTC (rev 83148)
@@ -0,0 +1,94 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.aop.unit.classpool.util;
+
+import org.jboss.aop.util.ClassLoaderUtils;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ClassLoaderUtilsTestCase extends TestCase
+{
+   public static Test suite()
+   {
+      return new TestSuite(ClassLoaderUtilsTestCase.class);
+   }
+
+   public ClassLoaderUtilsTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testClassResourceName()
+   {
+      String name = ClassLoaderUtils.getResourceName("org.acme.Test");
+      assertEquals("org/acme/Test.class", name);
+   }
+   
+   public void testInnerClassResourceName()
+   {
+      String name = ClassLoaderUtils.getResourceName("org.acme.Test$Inner");
+      assertEquals("org/acme/Test$Inner.class", name);
+   }
+
+   public void testClassArrayResourceName()
+   {
+      String name = ClassLoaderUtils.getResourceName("org.acme.Test[]");
+      assertEquals("org/acme/Test.class", name);
+   }
+   
+   public void testInnerClassArrayResourceName()
+   {
+      String name = ClassLoaderUtils.getResourceName("org.acme.Test$Inner[]");
+      assertEquals("org/acme/Test$Inner.class", name);
+   }
+
+   public void testClass2DArrayResourceName()
+   {
+      String name = ClassLoaderUtils.getResourceName("org.acme.Test[][]");
+      assertEquals("org/acme/Test.class", name);
+   }
+   
+   public void testInnerClass2DArrayResourceName()
+   {
+      String name = ClassLoaderUtils.getResourceName("org.acme.Test$Inner[][]");
+      assertEquals("org/acme/Test$Inner.class", name);
+   }
+
+   public void testClassPackageName()
+   {
+      String name = ClassLoaderUtils.getPackageName("org.acme.Test");
+      assertEquals("org.acme", name);
+   }
+   
+   public void testInnerClassPackageName()
+   {
+      String name = ClassLoaderUtils.getPackageName("org.acme.Test$Inner");
+      assertEquals("org.acme", name);
+   }
+}




More information about the jboss-cvs-commits mailing list