[jboss-cvs] JBossAS SVN: r106767 - in projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark: test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 15 15:43:41 EDT 2010


Author: kabir.khan at jboss.com
Date: 2010-07-15 15:43:40 -0400 (Thu, 15 Jul 2010)
New Revision: 106767

Added:
   projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherAlreadyLoadedBenchmarkTestCase.java
   projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherNotAlreadyLoadedBenchmarkTestCase.java
Modified:
   projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/AbstractClassLoaderBenchmark.java
   projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/BenchmarkScenario.java
   projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/ClassLoaderInfo.java
   projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOwnLoaderBenchmarkTestCase.java
Log:
More Import/Export All tests

Modified: projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/AbstractClassLoaderBenchmark.java
===================================================================
--- projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/AbstractClassLoaderBenchmark.java	2010-07-15 19:31:19 UTC (rev 106766)
+++ projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/AbstractClassLoaderBenchmark.java	2010-07-15 19:43:40 UTC (rev 106767)
@@ -92,7 +92,12 @@
       System.out.println("Load classes...");
       
       start = System.currentTimeMillis();
-      scenario.loadClasses(classLoaderInfos);
+      for (ClassLoaderInfo info : classLoaderInfos)
+      {
+         loadClasses(info, info.getOwnClassesToLoad());
+         loadClasses(info, info.getOtherClassesToLoad());
+      }
+
       time = System.currentTimeMillis() - start;
       System.out.println("Loading classes  took." + time + "ms");
       System.out.println("\n");
@@ -102,7 +107,13 @@
       System.out.println("Successful classes:    " + result.getSuccess());
       System.out.println("Failed classes:        " + result.getFailed());
       System.out.println("Wrong loader (filter): " + result.getBadFilter());
-      
-      
    }
+   
+   private void loadClasses(ClassLoaderInfo info, String[] names)
+   {
+      for (int i = 0 ; i < names.length ; i++)
+      {
+         info.loadClass(names[i]);
+      }
+   }
 }

Modified: projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/BenchmarkScenario.java
===================================================================
--- projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/BenchmarkScenario.java	2010-07-15 19:31:19 UTC (rev 106766)
+++ projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/BenchmarkScenario.java	2010-07-15 19:43:40 UTC (rev 106767)
@@ -31,6 +31,4 @@
 public interface BenchmarkScenario
 {
    List<ClassLoaderInfo> createFactories(List<ClassPathElementInfo> infos);
-   
-   void loadClasses(List<ClassLoaderInfo> infos);
 }

Modified: projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/ClassLoaderInfo.java
===================================================================
--- projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/ClassLoaderInfo.java	2010-07-15 19:31:19 UTC (rev 106766)
+++ projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/ClassLoaderInfo.java	2010-07-15 19:43:40 UTC (rev 106767)
@@ -40,6 +40,7 @@
    private ClassLoader loader;
    private LoadingResult result;
    private String[] classesToLoad;
+   private ClassLoaderInfo loaderWhoseClassesToLoad;
    
    public ClassLoaderInfo(ClassPathElementInfo info, VFSClassLoaderFactory factory)
    {
@@ -119,9 +120,21 @@
       return elementInfo.getUrl();
    }
    
-   public String[] getClassesToLoad()
+   public void setLoaderWhoseClassesToLoad(ClassLoaderInfo other)
    {
+      loaderWhoseClassesToLoad = other;
+   }
+
+   public String[] getOwnClassesToLoad()
+   {
       return classesToLoad;
    }
+
+   public String[] getOtherClassesToLoad()
+   {
+      if (loaderWhoseClassesToLoad != null)
+         return loaderWhoseClassesToLoad.classesToLoad;
+      return classesToLoad;
+   }
    
 }

Copied: projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherAlreadyLoadedBenchmarkTestCase.java (from rev 106765, projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOwnLoaderBenchmarkTestCase.java)
===================================================================
--- projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherAlreadyLoadedBenchmarkTestCase.java	                        (rev 0)
+++ projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherAlreadyLoadedBenchmarkTestCase.java	2010-07-15 19:43:40 UTC (rev 106767)
@@ -0,0 +1,78 @@
+/*
+* 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.cl.benchmark.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
+import org.jboss.test.cl.benchmark.AbstractClassLoaderBenchmark;
+import org.jboss.test.cl.benchmark.BenchmarkScenario;
+import org.jboss.test.cl.benchmark.ClassPathElementInfo;
+import org.jboss.test.cl.benchmark.ClassLoaderInfo;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ImportExportAllOtherAlreadyLoadedBenchmarkTestCase extends AbstractClassLoaderBenchmark
+{
+   public ImportExportAllOtherAlreadyLoadedBenchmarkTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testLoadClassesFromOtherLoaderAlreadyLoader() throws Exception
+   {
+      runBenchmark(new BenchmarkScenario()
+      {
+         
+         public List<ClassLoaderInfo> createFactories(List<ClassPathElementInfo> infos)
+         {
+            List<ClassLoaderInfo> classLoaderInfos = new ArrayList<ClassLoaderInfo>();
+            
+            ClassLoaderInfo last = null;
+            for (ClassPathElementInfo info : infos)
+            {
+               VFSClassLoaderFactory factory = new VFSClassLoaderFactory(info.getName());
+               factory.setExportAll(ExportAll.NON_EMPTY);
+               factory.setImportAll(true);
+               factory.getRoots().add(info.getUrl().toString());
+               //Needed???
+               //factory.setIncludedPackages()
+               
+               ClassLoaderInfo classLoaderInfo = new ClassLoaderInfo(info, factory);
+               classLoaderInfos.add(classLoaderInfo);
+               
+               if (last != null)
+                  classLoaderInfo.setLoaderWhoseClassesToLoad(last);
+            }      
+            
+            
+            classLoaderInfos.get(0).setLoaderWhoseClassesToLoad(classLoaderInfos.get(classLoaderInfos.size() - 1));
+            return classLoaderInfos;
+         }
+      });
+   }
+}

Copied: projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherNotAlreadyLoadedBenchmarkTestCase.java (from rev 106765, projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOwnLoaderBenchmarkTestCase.java)
===================================================================
--- projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherNotAlreadyLoadedBenchmarkTestCase.java	                        (rev 0)
+++ projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOtherNotAlreadyLoadedBenchmarkTestCase.java	2010-07-15 19:43:40 UTC (rev 106767)
@@ -0,0 +1,77 @@
+/*
+* 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.cl.benchmark.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
+import org.jboss.test.cl.benchmark.AbstractClassLoaderBenchmark;
+import org.jboss.test.cl.benchmark.BenchmarkScenario;
+import org.jboss.test.cl.benchmark.ClassPathElementInfo;
+import org.jboss.test.cl.benchmark.ClassLoaderInfo;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ImportExportAllOtherNotAlreadyLoadedBenchmarkTestCase extends AbstractClassLoaderBenchmark
+{
+   public ImportExportAllOtherNotAlreadyLoadedBenchmarkTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void testLoadClassesFromOtherLoaderAlreadyLoader() throws Exception
+   {
+      runBenchmark(new BenchmarkScenario()
+      {
+         
+         public List<ClassLoaderInfo> createFactories(List<ClassPathElementInfo> infos)
+         {
+            List<ClassLoaderInfo> classLoaderInfos = new ArrayList<ClassLoaderInfo>();
+            
+            ClassLoaderInfo last = null;
+            for (ClassPathElementInfo info : infos)
+            {
+               VFSClassLoaderFactory factory = new VFSClassLoaderFactory(info.getName());
+               factory.setExportAll(ExportAll.NON_EMPTY);
+               factory.setImportAll(true);
+               factory.getRoots().add(info.getUrl().toString());
+               //Needed???
+               //factory.setIncludedPackages()
+               
+               ClassLoaderInfo classLoaderInfo = new ClassLoaderInfo(info, factory);
+               classLoaderInfos.add(classLoaderInfo);
+               
+               if (last != null)
+                  last.setLoaderWhoseClassesToLoad(classLoaderInfo);
+            }      
+            
+            classLoaderInfos.get(classLoaderInfos.size() - 1).setLoaderWhoseClassesToLoad(classLoaderInfos.get(0));
+            return classLoaderInfos;
+         }
+      });
+   }
+}

Modified: projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOwnLoaderBenchmarkTestCase.java
===================================================================
--- projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOwnLoaderBenchmarkTestCase.java	2010-07-15 19:31:19 UTC (rev 106766)
+++ projects/cl-benchmark/trunk/src/test/java/org/jboss/test/cl/benchmark/test/ImportExportAllOwnLoaderBenchmarkTestCase.java	2010-07-15 19:43:40 UTC (rev 106767)
@@ -43,7 +43,7 @@
       super(name);
    }
    
-   public void testSanity() throws Exception
+   public void testLoadClassesFromOwnLoader() throws Exception
    {
       runBenchmark(new BenchmarkScenario()
       {
@@ -66,20 +66,6 @@
             
             return deploymentInfos;
          }
-
-         public void loadClasses(List<ClassLoaderInfo> infos)
-         {
-            for (ClassLoaderInfo info : infos)
-            {
-               String[] names = info.getClassesToLoad();
-               
-               for (int i = 0 ; i < names.length ; i++)
-               {
-                  info.loadClass(names[i]);
-               }
-            }
-         }
-         
       });
    }
 }



More information about the jboss-cvs-commits mailing list