[jboss-cvs] JBossAS SVN: r67177 - projects/aop/trunk/aop/src/main/org/jboss/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 16 11:27:00 EST 2007


Author: kabir.khan at jboss.com
Date: 2007-11-16 11:27:00 -0500 (Fri, 16 Nov 2007)
New Revision: 67177

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
Log:
[JBAOP-486] Get rid of SuperClassesWeavingStrategy$CtClassTransformationInfo

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java	2007-11-16 16:16:39 UTC (rev 67176)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java	2007-11-16 16:27:00 UTC (rev 67177)
@@ -916,22 +916,19 @@
          }
          if (weavingStrategy == null)
          {
-//           synchronized (this)
-//            {
-               if (TransformerCommon.isCompileTime() || classicOrder)
-               {
-                  weavingStrategy = new ClassicWeavingStrategy();
-               }
-               else if(InstrumentorFactory.getInstrumentor(this,dynamicStrategy.getJoinpointClassifier())
-                     instanceof GeneratedAdvisorInstrumentor)
-               {
-                  weavingStrategy = new SuperClassesFirstWeavingStrategy();
-               }
-               else
-               {
-                  weavingStrategy = new ClassicWeavingStrategy();
-               }
-//            }
+            if (TransformerCommon.isCompileTime() || classicOrder)
+            {
+               weavingStrategy = new ClassicWeavingStrategy();
+            }
+            else if(InstrumentorFactory.getInstrumentor(this,dynamicStrategy.getJoinpointClassifier())
+                  instanceof GeneratedAdvisorInstrumentor)
+            {
+               weavingStrategy = new SuperClassesFirstWeavingStrategy();
+            }
+            else
+            {
+               weavingStrategy = new ClassicWeavingStrategy();
+            }
          }
 
          return weavingStrategy.translate(this, className, loader, classfileBuffer);

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2007-11-16 16:16:39 UTC (rev 67176)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2007-11-16 16:27:00 UTC (rev 67177)
@@ -50,10 +50,8 @@
 
    public byte[] translate(AspectManager manager, String className, ClassLoader loader, byte[] classfileBuffer) throws Exception
 	{
-//      System.out.println("-- Loading class " + className);
 		if (isReEntry())
 		{
-//		   System.out.println("XXXX REENTRY!!!!!!!!!!!!!");
 			return null;
 		}
 		setReEntry();
@@ -67,25 +65,23 @@
 
 			AOPClassPool pool = (AOPClassPool) manager.registerClassLoader(loader);
 
-			CtClassTransformationInfo info = obtainCtClassInfo(pool, className, classfileBuffer);
+			CtClass clazz = obtainCtClassInfo(pool, className, classfileBuffer);
 			
-//			if (className.startsWith("org.jboss.test.aop.scopedextender.")) System.out.println("********** Weaving " + className + " " + loader);
-			
-			CtClass clazz = instrumentClass(manager, pool, info, true);
-			if (clazz != null)
+			CtClass woven = instrumentClass(manager, pool, clazz, true);
+			if (woven != null)
 			{
-				pool.lockInCache(info.getClazz());
+				pool.lockInCache(woven);
             if (AspectManager.debugClasses)
             {
-               SecurityActions.debugWriteFile(info.getClazz());
+               SecurityActions.debugWriteFile(clazz);
             }
-				byte[] rtn = info.getClazz().toBytecode();
-				if (AspectManager.getPrune()) info.getClazz().prune();
+				byte[] rtn = woven.toBytecode();
+				if (AspectManager.getPrune()) woven.prune();
 				return rtn;
 			}
 			else
 			{
-				pool.soften(info.getClazz());
+				pool.soften(clazz);
 			}
 			return null;
 		}
@@ -107,11 +103,11 @@
 		}
 	}
 
-	private CtClassTransformationInfo obtainCtClassInfo(AOPClassPool pool, String className, byte[] classfileBuffer) throws NotFoundException
+	private CtClass obtainCtClassInfo(AOPClassPool pool, String className, byte[] classfileBuffer) throws NotFoundException
 	{
 		try
 		{
-			return new CtClassTransformationInfo(pool.getLocally(className), className);
+			return pool.getLocally(className);
 		}
 		catch (NotFoundException e)
 		{
@@ -119,7 +115,7 @@
 			// I think it will screw up hotdeployment at some time.  Then again, maybe not ;)
 			ByteArrayClassPath cp = new ByteArrayClassPath(className, classfileBuffer);
 			pool.insertClassPath(cp);
-			return new CtClassTransformationInfo(pool.getLocally(className), className);
+			return pool.getLocally(className);
 		}
       catch(Error e)
       {
@@ -127,18 +123,13 @@
       }
 	}
 
-	private CtClass instrumentClass(AspectManager manager, AOPClassPool pool, CtClassTransformationInfo info, boolean isLoadedClass) throws NotFoundException, Exception
+	private CtClass instrumentClass(AspectManager manager, AOPClassPool pool, CtClass clazz, boolean isLoadedClass) throws NotFoundException, Exception
 	{
 		try
 		{
-			CtClass superClass = info.getClazz().getSuperclass();
-			if (superClass != null && !Instrumentor.implementsAdvised(info.getClazz()))
+			CtClass superClass = clazz.getSuperclass();
+			if (superClass != null && !Instrumentor.implementsAdvised(clazz))
 			{
-//			   String DEBUGNAME = info.getClazz().getName();
-//	         if (DEBUGNAME.startsWith("org.jboss.test.aop.scopedextender.")) System.out.println("---- Instrument " + DEBUGNAME + " " + pool);
-//
-				CtClassTransformationInfo superInfo = new CtClassTransformationInfo(superClass, superClass.getName());
-
             ClassPool superPool = superClass.getClassPool();
             if (superPool instanceof AOPClassPool)
             {
@@ -148,79 +139,74 @@
                   //We are in a scoped classloader and the superclass is not
                   aspectManager = AspectManager.instance(superPool.getClassLoader());
                }
-               instrumentClass(aspectManager, (AOPClassPool)superPool, superInfo, false);
+               instrumentClass(aspectManager, (AOPClassPool)superPool, superClass, false);
             }
 			}
 
-			if (manager.isNonAdvisableClassName(info.getClassName()))
+			if (manager.isNonAdvisableClassName(clazz.getName()))
 			{
 				return null;
 			}
 
-			if (info.getClass().isArray())
+			if (clazz.isArray())
 			{
-				if (verbose && logger.isDebugEnabled()) logger.debug("cannot compile, isArray: " + info.getClassName());
-				pool.flushClass(info.getClassName());
+				if (verbose && logger.isDebugEnabled()) logger.debug("cannot compile, isArray: " + clazz.getName());
+				pool.flushClass(clazz.getName());
 				return null;
 			}
-			if (info.getClazz().isInterface())
+			if (clazz.isInterface())
 			{
-				if (verbose && logger.isDebugEnabled()) logger.debug("cannot compile, isInterface: " + info.getClassName());
+				if (verbose && logger.isDebugEnabled()) logger.debug("cannot compile, isInterface: " + clazz.getName());
 				//pool.flushClass(info.getClassName());
-				info.getClazz().prune();
+				clazz.prune();
 				return null;
 			}
-			if (info.getClazz().isFrozen())
+			if (clazz.isFrozen())
 			{
-				if(isAdvised(pool, info.getClazz()))
+				if(isAdvised(pool, clazz))
 					return null;
-				if (verbose && logger.isDebugEnabled()) logger.debug("warning, isFrozen: " + info.getClassName() + " " + info.getClazz().getClassPool());
+				if (verbose && logger.isDebugEnabled()) logger.debug("warning, isFrozen: " + clazz.getName() + " " + clazz.getClassPool());
 				if (!isLoadedClass)
 				{
-					info = obtainCtClassInfo(pool, info.getClassName(), null);
+				   //What's the point of this?
+					clazz = obtainCtClassInfo(pool, clazz.getName(), null);
 				}
 				else
 					return null;
 				//info.getClazz().defrost();
 			}
 
-         boolean transformed = info.getClazz().isModified();
+         boolean transformed = clazz.isModified();
          if (!transformed)
          {
             ClassAdvisor advisor =
-                   AdvisorFactory.getClassAdvisor(info.getClazz(), manager);
+                   AdvisorFactory.getClassAdvisor(clazz, manager);
 				Instrumentor instrumentor = InstrumentorFactory.getInstrumentor(
 				      pool,
                   manager,
                   manager.dynamicStrategy.getJoinpointClassifier(),
-                  manager.dynamicStrategy.getDynamicTransformationObserver(info.getClazz()));
+                  manager.dynamicStrategy.getDynamicTransformationObserver(clazz));
 
-				if (!Instrumentor.isTransformable(info.getClazz()))
+				if (!Instrumentor.isTransformable(clazz))
 				{
-					if (verbose && logger.isDebugEnabled()) logger.debug("cannot compile, implements Untransformable: " + info.getClassName());
+					if (verbose && logger.isDebugEnabled()) logger.debug("cannot compile, implements Untransformable: " + clazz.getName());
 					//Flushing the generated invocation classes breaks things further down the line
 					//pool.flushClass(info.getClassName());
 					return null;
 				}
 
-            manager.attachMetaData(advisor, info.getClazz(), true);
-            manager.applyInterfaceIntroductions(advisor, info.getClazz());
-				transformed = instrumentor.transform(info.getClazz(), advisor);
-//				System.out.println("-- woven " + info.getClazz().getName() + " " + transformed);
+            manager.attachMetaData(advisor, clazz, true);
+            manager.applyInterfaceIntroductions(advisor, clazz);
+				transformed = instrumentor.transform(clazz, advisor);
          }
 			if (transformed)
 			{
-				if (!isLoadedClass )
-				{
-					info.setTransformed(transformed);
-				}
-				return info.getClazz();
+				return clazz;
 			}
 			
 			if (isLoadedClass)
 			{
-			   pool.setClassLoadedButNotWoven(info.getClassName());
-//			   System.out.println("NOT WOVEN " + info.getClassName());
+			   pool.setClassLoadedButNotWoven(clazz.getName());
 			}
 			
 			return null;
@@ -245,46 +231,4 @@
 	   }
 	   return false;
 	}
-
-
-	private class CtClassTransformationInfo
-	{
-		boolean transformed;
-		CtClass clazz;
-		String className;
-		private CtClassTransformationInfo(CtClass clazz, String className)
-		{
-			this.clazz = clazz;
-			this.className = className;
-		}
-
-		private CtClassTransformationInfo(CtClass clazz, String className, boolean transformed)
-		{
-			this.clazz = clazz;
-			this.className = className;
-			this.transformed = transformed;
-		}
-
-		private CtClass getClazz()
-		{
-			return clazz;
-		}
-
-		private boolean isTransformed()
-		{
-			return transformed;
-		}
-
-		private void setTransformed(boolean transformed)
-		{
-			this.transformed = transformed;
-		}
-
-		private String getClassName()
-		{
-			return className;
-		}
-	}
-
-
 }




More information about the jboss-cvs-commits mailing list