You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by dr...@apache.org on 2010/05/28 22:10:27 UTC

svn commit: r949275 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/internal/services/ test/java/org/apache/tapestry5/integration/app1/pages/

Author: drobiazko
Date: Fri May 28 20:10:27 2010
New Revision: 949275

URL: http://svn.apache.org/viewvc?rev=949275&view=rev
Log:
Rename ObjectName of PagePool's ObjectName and use OneShotLock inside MBeanSupportImpl

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MBeanSupportImpl.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/RemotePoolManagement.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java?rev=949275&r1=949274&r2=949275&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalModule.java Fri May 28 20:10:27 2010
@@ -192,7 +192,7 @@ public class InternalModule
 
         updateListenerHub.addUpdateListener(service);
 
-        final ObjectName objectName = buildObjectName("org.apache.tapestry5:type=PagePool");
+        final ObjectName objectName = buildObjectName("org.apache.tapestry5:service=PagePool");
         
         managedBeanSupport.register(service, objectName);
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MBeanSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MBeanSupportImpl.java?rev=949275&r1=949274&r2=949275&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MBeanSupportImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MBeanSupportImpl.java Fri May 28 20:10:27 2010
@@ -22,10 +22,10 @@ import java.util.Set;
 
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
-import javax.management.ObjectInstance;
 import javax.management.ObjectName;
 
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
+import org.apache.tapestry5.ioc.internal.util.OneShotLock;
 import org.apache.tapestry5.ioc.services.RegistryShutdownListener;
 import org.slf4j.Logger;
 
@@ -34,6 +34,8 @@ public class MBeanSupportImpl implements
     private Logger logger;
 
     private MBeanServer server;
+    
+    private final OneShotLock lock = new OneShotLock();
 
     private final Set<ObjectName> registeredBeans = CollectionFactory.newSet();
 
@@ -57,6 +59,8 @@ public class MBeanSupportImpl implements
 
     public void register(final Object object, final ObjectName objectName)
     {
+        lock.check();
+        
         try
         {
             this.server.registerMBean(object, objectName);
@@ -73,6 +77,8 @@ public class MBeanSupportImpl implements
 
     public void unregister(final ObjectName objectName)
     {
+        lock.check();
+        
         if (this.server.isRegistered(objectName))
         {
             try
@@ -80,6 +86,9 @@ public class MBeanSupportImpl implements
                 this.server.unregisterMBean(objectName);
 
                 this.logger.info(format("Unegistered MBean '%s' from server", objectName));
+                
+                if(registeredBeans.contains(objectName))
+                    registeredBeans.remove(objectName);
             }
             catch (final Exception e)
             {
@@ -90,6 +99,8 @@ public class MBeanSupportImpl implements
 
     public void registryDidShutdown()
     {
+        lock.lock();
+        
         for (final ObjectName name : this.registeredBeans)
         {
             unregister(name);

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/RemotePoolManagement.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/RemotePoolManagement.java?rev=949275&r1=949274&r2=949275&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/RemotePoolManagement.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/RemotePoolManagement.java Fri May 28 20:10:27 2010
@@ -25,7 +25,7 @@ public class RemotePoolManagement
     {
         MBeanServer server = ManagementFactory.getPlatformMBeanServer();
         
-        return server.getAttribute(new ObjectName("org.apache.tapestry5:type=PagePool"), "SoftWait");
+        return server.getAttribute(new ObjectName("org.apache.tapestry5:service=PagePool"), "SoftWait");
     }
 
 }