[jboss-cvs] JBossAS SVN: r57942 - in trunk/aspects/src/main/org/jboss/aop: deployers deployment

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 31 07:02:20 EST 2006


Author: kabir.khan at jboss.com
Date: 2006-10-31 07:02:13 -0500 (Tue, 31 Oct 2006)
New Revision: 57942

Modified:
   trunk/aspects/src/main/org/jboss/aop/deployers/AspectManager.java
   trunk/aspects/src/main/org/jboss/aop/deployment/AspectManagerService.java
Log:
[JBAOP-299] Preload some classes that are needed the first time AspectManager.translate() are called. JRockit gets confused about these when using the integration with the RepositoryClassLoaders (EnableTransformer)

Modified: trunk/aspects/src/main/org/jboss/aop/deployers/AspectManager.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/deployers/AspectManager.java	2006-10-31 06:49:59 UTC (rev 57941)
+++ trunk/aspects/src/main/org/jboss/aop/deployers/AspectManager.java	2006-10-31 12:02:13 UTC (rev 57942)
@@ -23,14 +23,10 @@
 
 import java.io.File;
 
-import javax.management.InstanceAlreadyExistsException;
 import javax.management.JMException;
 import javax.management.ListenerNotFoundException;
 import javax.management.MBeanNotificationInfo;
-import javax.management.MBeanRegistrationException;
 import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.NotCompliantMBeanException;
 import javax.management.Notification;
 import javax.management.NotificationFilter;
 import javax.management.NotificationListener;
@@ -49,36 +45,9 @@
 {
    AspectManagerServiceJDK5 delegate = new AspectManagerServiceJDK5("base-aspects.xml");
    MBeanServer server;
-
+   
    public void setMbeanServer(MBeanServer server)
    {
-      if (server != null)
-      {
-         try
-         {
-            server.registerMBean(delegate, new ObjectName("jboss.aop:service=AspectManager"));
-         }
-         catch (Exception e)
-         {
-            // AutoGenerated
-            throw new RuntimeException("Problem registering jboss.aop:service=AspectManager with JMXServer", e);
-         }
-      }
-      else
-      {
-         if (this.server == null)
-         {
-            try
-            {
-               server.unregisterMBean(new ObjectName("jboss.aop:service=AspectManager"));
-            }
-            catch (Exception e)
-            {
-               // AutoGenerated
-               throw new RuntimeException("Problem unregistering jboss.aop:service=AspectManager with JMXServer", e);
-            }
-         }
-      }
       this.server = server;
    }
 
@@ -593,6 +562,14 @@
     */
    public void start() throws Exception
    {
+      try
+      {
+         server.registerMBean(delegate, new ObjectName("jboss.aop:service=AspectManager"));
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException("Problem registering jboss.aop:service=AspectManager with JMXServer", e);
+      }
       delegate.start();
    }
 
@@ -602,6 +579,18 @@
     */
    public void stop()
    {
+      if (this.server == null)
+      {
+         try
+         {
+            server.unregisterMBean(new ObjectName("jboss.aop:service=AspectManager"));
+         }
+         catch (Exception e)
+         {
+            // AutoGenerated
+            throw new RuntimeException("Problem unregistering jboss.aop:service=AspectManager with JMXServer", e);
+         }
+      }
       delegate.stop();
    }
 

Modified: trunk/aspects/src/main/org/jboss/aop/deployment/AspectManagerService.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/deployment/AspectManagerService.java	2006-10-31 06:49:59 UTC (rev 57941)
+++ trunk/aspects/src/main/org/jboss/aop/deployment/AspectManagerService.java	2006-10-31 12:02:13 UTC (rev 57942)
@@ -43,10 +43,13 @@
 import org.jboss.aop.AspectNotificationHandler;
 import org.jboss.aop.AspectXmlLoader;
 import org.jboss.aop.ClassLoaderValidation;
+import org.jboss.aop.ClassicWeavingStrategy;
 import org.jboss.aop.Deployment;
+import org.jboss.aop.SuperClassesFirstWeavingStrategy;
 import org.jboss.aop.hook.JDK14Transformer;
 import org.jboss.aop.hook.JDK14TransformerManager;
 import org.jboss.aop.instrument.InstrumentorFactory;
+import org.jboss.aop.instrument.TransformerCommon;
 import org.jboss.mx.server.ServerConstants;
 import org.jboss.mx.util.ObjectNameFactory;
 import org.jboss.system.ServiceMBeanSupport;
@@ -61,6 +64,17 @@
         extends ServiceMBeanSupport
         implements AspectManagerServiceMBean, AspectNotificationHandler
 {
+   
+   static {
+      //pre-load necessary classes so that we avoid NoClassDefFoundErrors on JRockit when using the RepositoryClassloader hook
+      //When AspectManager.translate() is called the first time, these classes have not been loaded yet, and this is what causes 
+      //JRockit to get confused
+      TransformerCommon common = new TransformerCommon();
+      SuperClassesFirstWeavingStrategy strategy1 = new SuperClassesFirstWeavingStrategy();
+      ClassicWeavingStrategy strategy2 = new ClassicWeavingStrategy();
+      
+   }
+   
    public static final ObjectName DEFAULT_LOADER_REPOSITORY = ObjectNameFactory.create(ServerConstants.DEFAULT_LOADER_NAME);
 
    // Attributes ---------------------------------------------------




More information about the jboss-cvs-commits mailing list