[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