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");
}
}