@Internal public final class NonClusterManager extends Object implements ClusterManager, com.atlassian.beehive.ClusterLockService
ClusterManager
for use when no clustering is configured. It provides sensible default
implementation of some methods where appropriate, emulating a "single node cluster".Constructor and Description |
---|
NonClusterManager() |
Modifier and Type | Method and Description |
---|---|
void |
configure(ClusterConfig config)
Set a new cluster configuration.
|
Collection<ClusterNodeInformation> |
getAllNodesInformation() |
ClusteredLock |
getClusteredLock(String key)
Get a distributed lock -- getting the lock does *not* imply that it has been acquired.
|
ClusterInformation |
getClusterInformation()
Get information about the running cluster.
|
ClusterInvariants |
getClusterInvariants()
Get all attributes of the server that must be consistent between cluster nodes.
|
<T> com.atlassian.core.task.FifoBuffer<T> |
getFifoBuffer(String name)
Get a distributed FIFO buffer
|
Lock |
getLock(String name)
Get a lock -- getting the lock does *not* imply that it has been acquired.
|
com.atlassian.confluence.cluster.JvmDualLock |
getLockForName(String key) |
Map<Integer,NodeStatus> |
getNodeStatuses()
Gets status information from all members of the cluster.
|
Map<ClusterNodeInformation,NodeStatus> |
getNodeStatusMap()
Gets status information from all members of the cluster.
|
int |
getPermittedClusterNodes() |
Serializable |
getPublishedObject(String key)
Retrieve an object which another node in the cluster has shared, return null if no such object exists
|
ClusterNodeInformation |
getThisNodeInformation()
Get the identity of this node in the cluster.
|
void |
init() |
boolean |
isClustered() |
boolean |
isClusterSupported()
Check whether this Confluence distribution is capable of running in a cluster.
|
boolean |
isConfigured() |
void |
publishEvent(ConfluenceEvent event)
Publish an event as a ClusterEventWrapper to other nodes
|
void |
publishEventImmediately(ConfluenceEvent event)
Publish immediately, an event as a ClusterEventWrapper to other nodes
|
void |
publishObject(String key,
Serializable object)
Publish the supplied object to the local Map maintained by this manager.
|
void |
reconfigure(ClusterConfig config)
Set a new cluster configuration and cycle the service
|
InetAddress |
resolveName(String name) |
void |
shutdown() |
void |
startCluster()
Start the clustering service
|
void |
stopCluster()
Stop the clustering service
|
public void init()
public void shutdown()
public void configure(ClusterConfig config)
ClusterManager
configure
in interface ClusterManager
public ClusterInformation getClusterInformation()
ClusterManager
getClusterInformation
in interface ClusterManager
public <T> com.atlassian.core.task.FifoBuffer<T> getFifoBuffer(String name)
ClusterManager
getFifoBuffer
in interface ClusterManager
public int getPermittedClusterNodes()
getPermittedClusterNodes
in interface ClusterManager
Integer.MAX_VALUE
, otherwise
returns 0.public Serializable getPublishedObject(String key)
ClusterManager
getPublishedObject
in interface ClusterManager
public ClusterNodeInformation getThisNodeInformation()
ClusterManager
Get the identity of this node in the cluster. ClusterNodeInformation implements equals().
getThisNodeInformation
in interface ClusterManager
public Collection<ClusterNodeInformation> getAllNodesInformation()
getAllNodesInformation
in interface ClusterManager
public boolean isClustered()
isClustered
in interface ClusterManager
public boolean isConfigured()
isConfigured
in interface ClusterManager
ClusterManager.configure(ClusterConfig)
has been called with a
valid configuration, otherwise false.public void publishEvent(ConfluenceEvent event)
ClusterManager
This waits for any current transaction to be committed successfully before scheduling the event for publishing.
publishEvent
in interface ClusterManager
public void publishEventImmediately(ConfluenceEvent event)
ClusterManager
This is done immediately regardless of the state of any current transactions.
publishEventImmediately
in interface ClusterManager
public boolean isClusterSupported()
ClusterManager
ClusterManager.isClustered()
in that it will return true if the code to support clustering is present,
even if this instance does not have a clustered license or a current clustering configuration.isClusterSupported
in interface ClusterManager
public void publishObject(String key, Serializable object)
publishObject
in interface ClusterManager
public void reconfigure(ClusterConfig config)
ClusterManager
reconfigure
in interface ClusterManager
public void startCluster()
ClusterManager
startCluster
in interface ClusterManager
public void stopCluster()
ClusterManager
stopCluster
in interface ClusterManager
public InetAddress resolveName(String name)
resolveName
in interface NameResolver
public Map<Integer,NodeStatus> getNodeStatuses()
ClusterManager
getNodeStatuses
in interface ClusterManager
public Map<ClusterNodeInformation,NodeStatus> getNodeStatusMap()
ClusterManager
getNodeStatusMap
in interface ClusterManager
public ClusterInvariants getClusterInvariants()
ClusterManager
getClusterInvariants
in interface ClusterManager
public com.atlassian.confluence.cluster.JvmDualLock getLockForName(@Nonnull String key)
getLockForName
in interface com.atlassian.beehive.ClusterLockService
public ClusteredLock getClusteredLock(String key)
ClusterManager
Lock.tryLock()
or Lock.lock()
on the returned object to
acquire the lock.getClusteredLock
in interface ClusterManager
public Lock getLock(String name)
LockFactory
Lock.tryLock()
or Lock.lock()
on the returned object to
acquire the lock.getLock
in interface LockFactory
Copyright © 2003–2016 Atlassian. All rights reserved.