Issue 990: MBean for Cluster improvement
This commit is contained in:
parent
2e8232f748
commit
d14f2f6e50
1 changed files with 67 additions and 13 deletions
|
|
@ -13,12 +13,11 @@ import org.I0Itec.zkclient.serialize._
|
|||
import org.I0Itec.zkclient.exception._
|
||||
|
||||
import java.util.{ List ⇒ JList }
|
||||
import java.util.concurrent.atomic.{ AtomicBoolean, AtomicReference, AtomicInteger }
|
||||
import java.util.concurrent.{ ConcurrentSkipListSet, CopyOnWriteArrayList, Callable, ConcurrentHashMap }
|
||||
import java.util.concurrent.atomic.{ AtomicBoolean, AtomicReference }
|
||||
import java.util.concurrent.{ CopyOnWriteArrayList, Callable, ConcurrentHashMap }
|
||||
import java.net.InetSocketAddress
|
||||
import javax.management.StandardMBean
|
||||
|
||||
import scala.collection.immutable.{ HashMap, HashSet }
|
||||
import scala.collection.mutable.ConcurrentMap
|
||||
import scala.collection.JavaConversions._
|
||||
|
||||
|
|
@ -48,8 +47,6 @@ import ChangeListener._
|
|||
import ClusterProtocol._
|
||||
import RemoteDaemonMessageType._
|
||||
|
||||
import akka.AkkaException
|
||||
|
||||
import com.eaio.uuid.UUID
|
||||
|
||||
import com.google.protobuf.ByteString
|
||||
|
|
@ -59,11 +56,10 @@ import com.google.protobuf.ByteString
|
|||
/**
|
||||
* JMX MBean for the cluster service.
|
||||
*
|
||||
* FIXME revisit the methods in this MBean interface, they are not up to date with new cluster API
|
||||
*
|
||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
*/
|
||||
trait ClusterNodeMBean {
|
||||
|
||||
def start()
|
||||
|
||||
def stop()
|
||||
|
|
@ -88,8 +84,12 @@ trait ClusterNodeMBean {
|
|||
|
||||
def getMemberNodes: Array[String]
|
||||
|
||||
def getNodeAddres():NodeAddress
|
||||
|
||||
def getLeader: String
|
||||
|
||||
def isLeader: Boolean
|
||||
|
||||
def getUuidsForClusteredActors: Array[String]
|
||||
|
||||
def getAddressesForClusteredActors: Array[String]
|
||||
|
|
@ -111,6 +111,32 @@ trait ClusterNodeMBean {
|
|||
def removeConfigElement(key: String)
|
||||
|
||||
def getConfigElementKeys: Array[String]
|
||||
|
||||
def getMemberShipPathFor(node:String):String
|
||||
|
||||
def getConfigurationPathFor(key:String):String
|
||||
|
||||
def getActorAddresstoNodesPathFor(actorAddress:String):String
|
||||
|
||||
def getActorAddressToNodesPathFor(actorAddress:String, nodeName:String):String
|
||||
|
||||
def getNodeToUuidsPathFor(node:String):String
|
||||
|
||||
def getNodeToUuidsPathFor(node:String, uuid:UUID):String
|
||||
|
||||
def getActorAddressRegistryPathFor(actorAddress:String):String
|
||||
|
||||
def getActorAddressRegistrySerializerPathFor(actorAddress:String):String
|
||||
|
||||
def getActorAddressRegistryUuidPathFor(actorAddress:String):String
|
||||
|
||||
def getActorUuidRegistryNodePathFor(uuid: UUID):String
|
||||
|
||||
def getActorUuidRegistryRemoteAddressPathFor(uuid: UUID):String
|
||||
|
||||
def getActorAddressToUuidsPathFor(actorAddress: String):String
|
||||
|
||||
def getActorAddressToUuidsPathFor(actorAddress: String, uuid: UUID):String
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1542,20 +1568,20 @@ class DefaultClusterNode private[akka] (
|
|||
private def createMBean = {
|
||||
val clusterMBean = new StandardMBean(classOf[ClusterNodeMBean]) with ClusterNodeMBean {
|
||||
|
||||
import Cluster._
|
||||
override def start() = self.start()
|
||||
|
||||
override def start(): Unit = self.start()
|
||||
|
||||
override def stop(): Unit = self.shutdown()
|
||||
override def stop() = self.shutdown()
|
||||
|
||||
override def disconnect() = self.disconnect()
|
||||
|
||||
override def reconnect(): Unit = self.reconnect()
|
||||
override def reconnect() = self.reconnect()
|
||||
|
||||
override def resign(): Unit = self.resign()
|
||||
override def resign() = self.resign()
|
||||
|
||||
override def isConnected = self.isConnected.get
|
||||
|
||||
override def getNodeAddres = self.nodeAddress
|
||||
|
||||
override def getRemoteServerHostname = self.hostname
|
||||
|
||||
override def getRemoteServerPort = self.port
|
||||
|
|
@ -1570,6 +1596,8 @@ class DefaultClusterNode private[akka] (
|
|||
|
||||
override def getLeader = self.leader.toString
|
||||
|
||||
override def isLeader = self.isLeader
|
||||
|
||||
override def getUuidsForActorsInUse = self.uuidsForActorsInUse.map(_.toString).toArray
|
||||
|
||||
override def getAddressesForActorsInUse = self.addressesForActorsInUse.map(_.toString).toArray
|
||||
|
|
@ -1591,6 +1619,32 @@ class DefaultClusterNode private[akka] (
|
|||
override def removeConfigElement(key: String): Unit = self.removeConfigElement(key)
|
||||
|
||||
override def getConfigElementKeys = self.getConfigElementKeys.toArray
|
||||
|
||||
override def getMemberShipPathFor(node:String) = self.membershipPathFor(node)
|
||||
|
||||
override def getConfigurationPathFor(key:String) = self.configurationPathFor(key)
|
||||
|
||||
override def getActorAddresstoNodesPathFor(actorAddress:String) = self.actorAddressToNodesPathFor(actorAddress)
|
||||
|
||||
override def getActorAddressToNodesPathFor(actorAddress:String, nodeName:String) = self.actorAddressToNodesPathFor(actorAddress, nodeName)
|
||||
|
||||
override def getNodeToUuidsPathFor(node:String) = self.nodeToUuidsPathFor(node)
|
||||
|
||||
override def getNodeToUuidsPathFor(node:String, uuid:UUID) = self.nodeToUuidsPathFor(node, uuid)
|
||||
|
||||
override def getActorAddressRegistryPathFor(actorAddress:String) = self.actorAddressRegistryPathFor(actorAddress)
|
||||
|
||||
override def getActorAddressRegistrySerializerPathFor(actorAddress:String) = self.actorAddressRegistrySerializerPathFor(actorAddress)
|
||||
|
||||
override def getActorAddressRegistryUuidPathFor(actorAddress:String) = self.actorAddressRegistryUuidPathFor(actorAddress)
|
||||
|
||||
override def getActorUuidRegistryNodePathFor(uuid: UUID) = self.actorUuidRegistryNodePathFor(uuid)
|
||||
|
||||
override def getActorUuidRegistryRemoteAddressPathFor(uuid: UUID)= self.actorUuidRegistryNodePathFor(uuid)
|
||||
|
||||
override def getActorAddressToUuidsPathFor(actorAddress: String) = self.actorAddressToUuidsPathFor(actorAddress)
|
||||
|
||||
override def getActorAddressToUuidsPathFor(actorAddress: String, uuid: UUID) = self.actorAddressToUuidsPathFor(actorAddress, uuid)
|
||||
}
|
||||
|
||||
JMX.register(clusterJmxObjectName, clusterMBean)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue