diff options
author | Andrew Haley <aph@redhat.com> | 2007-05-03 18:30:33 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2007-05-03 18:30:33 +0000 |
commit | 6696d6529911329d89aac3ab1f3b0ce7d29532a6 (patch) | |
tree | 73a6a38c44f1baa52463630c1bfc9bf2dd832e44 /libjava | |
parent | a45bce6e9fd1182122b2f8243eb066f56d80760f (diff) | |
download | gcc-6696d6529911329d89aac3ab1f3b0ce7d29532a6.zip gcc-6696d6529911329d89aac3ab1f3b0ce7d29532a6.tar.gz gcc-6696d6529911329d89aac3ab1f3b0ce7d29532a6.tar.bz2 |
Server.java (Server): Record the delegate.
2007-05-03 Andrew Haley <aph@redhat.com>
* gnu/javax/management/Server.java (Server): Record the delegate.
(registerMBean): Notify the delegate.
(unregisterMBean): Likewise.
(notify): New method.
From-SVN: r124383
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/classpath/ChangeLog | 7 | ||||
-rw-r--r-- | libjava/classpath/gnu/javax/management/Server.java | 21 |
2 files changed, 28 insertions, 0 deletions
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index ad9f908..158e90f 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -1,3 +1,10 @@ +2007-05-03 Andrew Haley <aph@redhat.com> + + * gnu/javax/management/Server.java (Server): Record the delegate. + (registerMBean): Notify the delegate. + (unregisterMBean): Likewise. + (notify): New method. + 2007-04-04 Francis Kung <fkung@redhat.com> * gnu/java/awt/peer/gtk/ComponentGraphics.java diff --git a/libjava/classpath/gnu/javax/management/Server.java b/libjava/classpath/gnu/javax/management/Server.java index aa39c75..616854e 100644 --- a/libjava/classpath/gnu/javax/management/Server.java +++ b/libjava/classpath/gnu/javax/management/Server.java @@ -53,6 +53,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicLong; import javax.management.Attribute; import javax.management.AttributeList; @@ -75,6 +76,7 @@ import javax.management.MBeanRegistration; import javax.management.MBeanRegistrationException; import javax.management.MBeanServer; import javax.management.MBeanServerDelegate; +import javax.management.MBeanServerNotification; import javax.management.MBeanTrustPermission; import javax.management.NotCompliantMBeanException; import javax.management.Notification; @@ -137,6 +139,15 @@ public class Server private Map listeners; /** + * An MBean that emits notifications when an MBean is registered and + * unregistered with this server. + * + */ + private final MBeanServerDelegate delegate; + + static private final AtomicLong sequenceNumber = new AtomicLong(1); + + /** * Initialise the delegate name. */ static @@ -171,6 +182,7 @@ public class Server { this.defaultDomain = defaultDomain; this.outer = outer; + this.delegate = delegate; try { registerMBean(delegate, DELEGATE_NAME); @@ -1703,6 +1715,7 @@ public class Server beans.put(name, new ServerInfo(obji, obj)); if (register != null) register.postRegister(Boolean.TRUE); + notify(name, MBeanServerNotification.REGISTRATION_NOTIFICATION); return obji; } @@ -2088,10 +2101,18 @@ public class Server } } beans.remove(name); + notify(name, MBeanServerNotification.UNREGISTRATION_NOTIFICATION); if (register != null) register.postDeregister(); } + private void notify(ObjectName name, String type) + { + delegate.sendNotification + (new MBeanServerNotification + (type, DELEGATE_NAME, sequenceNumber.getAndIncrement(), name)); + } + /** * Input stream which deserializes using the given classloader. */ |