[jboss-cvs] JBossAS SVN: r58250 - projects/aop/trunk/aop/src/main/org/jboss/aop/instrument

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 10 13:01:04 EST 2006


Author: kabir.khan at jboss.com
Date: 2006-11-10 13:00:56 -0500 (Fri, 10 Nov 2006)
New Revision: 58250

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructionTransformer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructorExecutionTransformer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorFieldAccessTransformer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
Log:
Pass in classloader to JoinPointGenerator.generateJoinPointClass()

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java	2006-11-10 17:49:55 UTC (rev 58249)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorCallerTransformer.java	2006-11-10 18:00:56 UTC (rev 58250)
@@ -137,7 +137,7 @@
                "{" +
                "   if (" + infoName + " == null && " + generatorName + " != null)" +
                "   {" +
-               "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+               "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
                "   }" +
                "   if (" + infoName + " == null)" +
                "   { " +
@@ -239,7 +239,7 @@
                "{" +
                "   if (" + infoName + " == null && " + generatorName + " != null)" +
                "   {" +
-               "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+               "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
                "   }" +
                "   if (" + infoName + " == null)" +
                "   { " +
@@ -331,7 +331,7 @@
          code.append("{");
          code.append("   if (" + infoName + " == null && " + generatorName + " != null)");
          code.append("   {");
-         code.append("   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();");
+         code.append("   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());");
          code.append("   }");
          code.append("   if (" + infoName + " == null)");
          code.append("   { ");
@@ -406,7 +406,7 @@
                "{" +
                "   if (" + infoName + " == null && " + generatorName + " != null)" +
                "   {" +
-               "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+               "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
                "   }" +
                "   if (" + infoName + " == null)" +
                "   { " +

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructionTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructionTransformer.java	2006-11-10 17:49:55 UTC (rev 58249)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructionTransformer.java	2006-11-10 18:00:56 UTC (rev 58250)
@@ -147,7 +147,7 @@
          "{" +
          "   if (" + infoName + " == null && " + generatorName + " != null)" +
          "   {" +
-         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
          "   }" +
          "   if (" + infoName + " != null)" +
          "   { " +

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructorExecutionTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructorExecutionTransformer.java	2006-11-10 17:49:55 UTC (rev 58249)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorConstructorExecutionTransformer.java	2006-11-10 18:00:56 UTC (rev 58250)
@@ -220,7 +220,7 @@
          "{" +
          "   if (" + infoName + " == null && " + generatorName + " != null)" +
          "   {" +
-         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
          "   }" +
          "   if (" + infoName + " == null)" +
          "   { " +

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorFieldAccessTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorFieldAccessTransformer.java	2006-11-10 17:49:55 UTC (rev 58249)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorFieldAccessTransformer.java	2006-11-10 18:00:56 UTC (rev 58250)
@@ -264,7 +264,7 @@
             "{" +
             "   if (" + infoName + " == null && " + generatorName + " != null)" +
             "   {" +
-            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
             "   }" +
             "   if (" + infoName + " == null)" +
             "   { " +
@@ -282,7 +282,7 @@
             "{" +
             "   if (" + infoName + " == null && " + generatorName + " != null)" +
             "   {" +
-            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
             "   }" +
             "   if (" + infoName + " == null)" +
             "   { " +
@@ -311,7 +311,7 @@
             "{" +
             "   if (" + infoName + " == null && " + generatorName + " != null)" +
             "   {" +
-            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
             "   }" +
             "   if (" + infoName + " == null)" +
             "   { " +
@@ -329,7 +329,7 @@
             "{" +
             "   if (" + infoName + " == null && " + generatorName + " != null)" +
             "   {" +
-            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+            "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
             "   }" +
             "   if (" + infoName + " == null)" +
             "   { " +

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java	2006-11-10 17:49:55 UTC (rev 58249)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/GeneratedAdvisorMethodExecutionTransformer.java	2006-11-10 18:00:56 UTC (rev 58250)
@@ -307,7 +307,7 @@
          "{" +
          "   if (" + infoName + " == null && " + generatorName + " != null)" +
          "   {" +
-         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
          "   }" +
          "   if (" + infoName + " == null)" +
          "   { " +
@@ -330,7 +330,7 @@
          "{" +
          "   if (" + infoName + " == null && " + generatorName + " != null)" +
          "   {" +
-         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "();" +
+         "   " + generatorName + "." + JoinPointGenerator.GENERATE_JOINPOINT_CLASS + "(this.getClass().getClassLoader());" +
          "   }" +
          "   if (" + infoName + " == null)" +
          "   { " +

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2006-11-10 17:49:55 UTC (rev 58249)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/JoinPointGenerator.java	2006-11-10 18:00:56 UTC (rev 58250)
@@ -145,15 +145,15 @@
    /**
     * Called by the joinpoint if a interceptors were regenereated
     */
-   public synchronized void generateJoinPointClass()
+   public synchronized void generateJoinPointClass(ClassLoader classloader)
    {
       if (System.getSecurityManager() == null)
       {
-         GenerateJoinPointClassAction.NON_PRIVILEGED.generateJoinPointClass(this);
+         GenerateJoinPointClassAction.NON_PRIVILEGED.generateJoinPointClass(classloader, this);
       }
       else
       {
-         GenerateJoinPointClassAction.PRIVILEGED.generateJoinPointClass(this);
+         GenerateJoinPointClassAction.PRIVILEGED.generateJoinPointClass(classloader, this);
       }
    }
     
@@ -161,7 +161,7 @@
     * Does the work for generateJoinPointClass()
     * @see JoinPointGenerator#generateJoinPointClass()
     */
-   private void doGenerateJoinPointClass()
+   private void doGenerateJoinPointClass(ClassLoader classloader)
    {
       try
       {
@@ -171,7 +171,8 @@
             return;
          }
          AspectManager manager = AspectManager.instance();
-         ClassPool pool = manager.findClassPool(Thread.currentThread().getContextClassLoader());
+         //ClassPool pool = manager.findClassPool(Thread.currentThread().getContextClassLoader());
+         ClassPool pool = manager.findClassPool(classloader);
          GeneratedClassInfo generatedClass = generateJoinpointClass(pool, info);
          
          Class clazz = toClass(pool, generatedClass.getGenerated());
@@ -199,19 +200,15 @@
       try
       {
          obj = ctor.newInstance(new Object[] {info});
+         
+         System.out.println("============================");
+         System.out.println(debugClass(new StringBuffer(), clazz));
+         System.out.println("============================");
       }
       catch (Exception e)
       {
          StringBuffer sb = new StringBuffer();
-         sb.append("\n\t\t" + Modifier.toString(clazz.getModifiers()) + " " + clazz.getName() + " " + clazz.getClassLoader() + "\n\t\t\textends\n");
-         clazz = clazz.getSuperclass();
-         sb.append("\t\t" + Modifier.toString(clazz.getModifiers()) + " " + clazz.getName() + " " + clazz.getClassLoader() + "\n");
-         Field[] fields = clazz.getDeclaredFields();
-         for (int i = 0 ; i < fields.length ; i++)
-         {
-            sb.append("\n\t\t\t" + Modifier.toString(fields[i].getModifiers()) + " " + fields[i].getType().getName() + " " + fields[i].getName() + " " + fields[i].getType().getClassLoader());
-         }
-         throw new RuntimeException(sb.toString(), e);
+         throw new RuntimeException(debugClass(sb, clazz).toString());
       }
       
       for (int i = 0 ; i < aroundSetups.length ; i++)
@@ -226,6 +223,25 @@
       return obj;
    }
     
+   private StringBuffer debugClass(StringBuffer sb, Class clazz)
+   {
+      sb.append("\n\t\t" + Modifier.toString(clazz.getModifiers()) + " " + clazz.getName() + " " + clazz.getClassLoader()); 
+      Field[] fields = clazz.getDeclaredFields();
+      for (int i = 0 ; i < fields.length ; i++)
+      {
+         sb.append("\n\t\t\t" + Modifier.toString(fields[i].getModifiers()) + " " + fields[i].getType().getName() + " " + fields[i].getName() + " " + fields[i].getType().getClassLoader());
+      }
+     
+     Class superClass = clazz.getSuperclass();
+     if (superClass != null && superClass != Object.class)
+     {
+        sb.append("\n\t\t\textends\n");
+        debugClass(sb, superClass);
+     }
+     return sb;
+   }
+   
+   
    private static synchronized int getIncrement()
    {
       return ++increment;
@@ -1483,11 +1499,11 @@
 
    private interface GenerateJoinPointClassAction
    {
-      void generateJoinPointClass(JoinPointGenerator joinPointGenerator);
+      void generateJoinPointClass(ClassLoader classloader, JoinPointGenerator joinPointGenerator);
       
       GenerateJoinPointClassAction PRIVILEGED = new GenerateJoinPointClassAction()
       {
-         public void generateJoinPointClass(final JoinPointGenerator joinPointGenerator) 
+         public void generateJoinPointClass(final ClassLoader classloader, final JoinPointGenerator joinPointGenerator) 
          {
             try
             {
@@ -1495,7 +1511,7 @@
                {
                   public Object run() throws Exception
                   {
-                     joinPointGenerator.doGenerateJoinPointClass();
+                     joinPointGenerator.doGenerateJoinPointClass(classloader);
                      return null;
                   }
                });
@@ -1514,9 +1530,9 @@
 
       GenerateJoinPointClassAction NON_PRIVILEGED = new GenerateJoinPointClassAction()
       {
-         public void generateJoinPointClass(JoinPointGenerator joinPointGenerator)
+         public void generateJoinPointClass(ClassLoader classloader, JoinPointGenerator joinPointGenerator)
          {
-            joinPointGenerator.doGenerateJoinPointClass();
+            joinPointGenerator.doGenerateJoinPointClass(classloader);
          }
       };
    }




More information about the jboss-cvs-commits mailing list