register RemoteRpcRegistryMXBean 49/67649/1
authorwusandi <wusandi@163.com>
Wed, 20 Dec 2017 07:09:12 +0000 (15:09 +0800)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 29 Jan 2018 09:04:12 +0000 (10:04 +0100)
The RemoteRpcRegistryMXBean had not registered because of code refactoring.
I'm sure that it had been removed from one of history commits,
But I think it should be added back to support jmx for query rpcs
when one of rpcs breaks down.

Change-Id: I506ed5c25c7615b8bb7ac9c0102bf671ff40bb78
Signed-off-by: wusandi <wusandi@163.com>
(cherry picked from commit 105587c7c4068aa8a0721669cff6aae7f28f6492)

opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistry.java

index 40600d091e16345a61c9dbb9ecfe9096d89b6040..fe43a691d2d685ee0c9fa16f0251c3e925d1c5be 100644 (file)
@@ -29,6 +29,7 @@ import org.opendaylight.controller.remote.rpc.registry.RpcRegistry.Messages.Remo
 import org.opendaylight.controller.remote.rpc.registry.RpcRegistry.Messages.UpdateRemoteEndpoints;
 import org.opendaylight.controller.remote.rpc.registry.gossip.Bucket;
 import org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreActor;
+import org.opendaylight.controller.remote.rpc.registry.mbeans.RemoteRpcRegistryMXBeanImpl;
 
 /**
  * Registry to look up cluster nodes that have registered for a given RPC.
@@ -39,10 +40,12 @@ import org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreActor;
  */
 public class RpcRegistry extends BucketStoreActor<RoutingTable> {
     private final ActorRef rpcRegistrar;
+    private final RemoteRpcRegistryMXBeanImpl mxBean;
 
     public RpcRegistry(final RemoteRpcProviderConfig config, final ActorRef rpcInvoker, final ActorRef rpcRegistrar) {
         super(config, config.getRpcRegistryPersistenceId(), new RoutingTable(rpcInvoker, ImmutableSet.of()));
         this.rpcRegistrar = Preconditions.checkNotNull(rpcRegistrar);
+        this.mxBean = new RemoteRpcRegistryMXBeanImpl(this);
     }
 
     /**
@@ -58,6 +61,12 @@ public class RpcRegistry extends BucketStoreActor<RoutingTable> {
         return Props.create(RpcRegistry.class, config, rpcInvoker, rpcRegistrar);
     }
 
+    @Override
+    public void postStop() {
+        super.postStop();
+        this.mxBean.unregister();
+    }
+
     @Override
     protected void handleCommand(final Object message) throws Exception {
         if (message instanceof AddOrUpdateRoutes) {