[jboss-cvs] JBossAS SVN: r107559 - projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 12 10:36:21 EDT 2010


Author: alesj
Date: 2010-08-12 10:36:21 -0400 (Thu, 12 Aug 2010)
New Revision: 107559

Modified:
   projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/test/SmokeAnnotationsScanningTestCase.java
Log:
[JBCTS-1039]; configurable JDK requesting class.

Modified: projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/test/SmokeAnnotationsScanningTestCase.java
===================================================================
--- projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/test/SmokeAnnotationsScanningTestCase.java	2010-08-12 14:21:36 UTC (rev 107558)
+++ projects/scanning/trunk/testsuite/src/test/java/org/jboss/test/scanning/annotations/test/SmokeAnnotationsScanningTestCase.java	2010-08-12 14:36:21 UTC (rev 107559)
@@ -21,6 +21,7 @@
 */
 package org.jboss.test.scanning.annotations.test;
 
+import java.util.Arrays;
 import java.util.Set;
 
 import org.jboss.classloader.plugins.jdk.AbstractJDKChecker;
@@ -39,10 +40,38 @@
  */
 public class SmokeAnnotationsScanningTestCase extends ScanningDeployersTest
 {
-   // TODO -- configurable system class
-   private String sysClassName = "sun.reflect.generics.factory.CoreReflectionFactory";
-   private String sysJavassist = "javassist.bytecode.annotation.MemberValue";
+   // add possible other JDK requesting classes; e.g. OpenJDK, IBM, Oracle/BEA Rockit, ...
+   private static String[] JDK_CLASSES = {"sun.reflect.generics.factory.CoreReflectionFactory"};
 
+   private static Class<?> sysClass;
+   private static Class<?> sysJavassist;
+
+   static
+   {
+      ClassLoader cl = SmokeAnnotationsScanningTestCase.class.getClassLoader();
+      try
+      {
+         sysJavassist = cl.loadClass("javassist.bytecode.annotation.MemberValue");
+      }
+      catch (ClassNotFoundException e)
+      {
+         throw new RuntimeException("Cannot load Javassist sys class.", e);
+      }
+      for (String className : JDK_CLASSES)
+      {
+         try
+         {
+            sysClass = cl.loadClass(className);
+            break;
+         }
+         catch (Throwable ignored)
+         {
+         }
+      }
+      if (sysClass == null) // hack
+         throw new RuntimeException("No such sys class available: " + Arrays.asList(JDK_CLASSES));
+   }
+
    public SmokeAnnotationsScanningTestCase(String name)
    {
       super(name);
@@ -59,24 +88,16 @@
       super.setUp();
 
       Set<Class<?>> classes = AbstractJDKChecker.getExcluded();
-      ClassLoader cl = getClass().getClassLoader();
-      // jdk system
-      Class<?> sysClass = cl.loadClass(sysClassName);
       classes.add(sysClass);
-      // javassist
-      Class<?> javassistClass = cl.loadClass(sysJavassist);
-      classes.add(javassistClass);
+      classes.add(sysJavassist);
    }
 
    @Override
    protected void tearDown() throws Exception
    {
       Set<Class<?>> classes = AbstractJDKChecker.getExcluded();
-      ClassLoader cl = getClass().getClassLoader();
-      Class<?> sysClass = cl.loadClass(sysClassName);
       classes.remove(sysClass);
-      Class<?> javassistClass = cl.loadClass(sysJavassist);
-      classes.remove(javassistClass);
+      classes.remove(sysJavassist);
 
       super.tearDown();
    }
@@ -90,15 +111,15 @@
       try
       {
          DeploymentUnit unit = assertDeploy(jar);
-//      AnnotationIndex ai = unit.getAttachment(AnnotationIndex.class);
-//      assertNotNull(ai);
-//      Set<Element<Annotation, Class<?>>> elementSet = ai.classIsAnnotatedWith(Classes.class.getName());
-//      Element<Annotation, Class<?>> elt = elementSet.iterator().next();
-//      Annotation ann = elt.getAnnotation();
-//      Object value = ann.getClass().getMethod("value").invoke(ann);
-//      Class[] classes = Class[].class.cast(value);
-//      ClassLoader cl = classes[0].getClassLoader();
-//      getLog().fatal("cl=" + cl);
+//         AnnotationIndex ai = unit.getAttachment(AnnotationIndex.class);
+//         assertNotNull(ai);
+//         Set<Element<Annotation, Class<?>>> elementSet = ai.classIsAnnotatedWith(Classes.class.getName());
+//         Element<Annotation, Class<?>> elt = elementSet.iterator().next();
+//         Annotation ann = elt.getAnnotation();
+//         Object value = ann.getClass().getMethod("value").invoke(ann);
+//         Class[] classes = Class[].class.cast(value);
+//         ClassLoader cl = classes[0].getClassLoader();
+//         getLog().fatal("cl=" + cl);
          fail("Should not be here.");
       }
       catch (Exception e)



More information about the jboss-cvs-commits mailing list