Package org.eclipse.emf.cdo.server.net4j

# Class FailoverMonitor

java.lang.Object
org.eclipse.net4j.util.event.Notifier
org.eclipse.net4j.util.lifecycle.Lifecycle
org.eclipse.net4j.util.lifecycle.ShareableLifecycle
org.eclipse.net4j.util.container.Container<FailoverMonitor.AgentProtocol>
org.eclipse.emf.cdo.server.net4j.FailoverMonitor

All Implemented Interfaces:
  `org.eclipse.net4j.util.container.IContainer<FailoverMonitor.AgentProtocol>`, `org.eclipse.net4j.util.event.INotifier`, `org.eclipse.net4j.util.event.INotifier.INotifier2`, `org.eclipse.net4j.util.lifecycle.IDeactivateable`, `org.eclipse.net4j.util.lifecycle.ILifecycle`, `org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation`

public class FailoverMonitor extends org.eclipse.net4j.util.container.Container<FailoverMonitor.AgentProtocol>
A facility for monitoring a variable set of `fail-over participant` repositories and electing, as well as promoting, a `master` repository among them.

Since:
  4.0
Author:
  Eike Stepper

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`FailoverMonitor.AbstractServerProtocolFactory`
An abstract base class for the `server-side protocol factories` required by a `fail-over monitor`.
`static class`
`FailoverMonitor.AgentProtocol`
The monitor-side implementation of the `fail-over monitor` agent protocol.
`static class`
`FailoverMonitor.ClientProtocol`
The monitor-side implementation of the `fail-over monitor` client protocol.
`static class`
`FailoverMonitor.Factory`
Creates `fail-over monitor` instances.
`static interface`
`FailoverMonitor.Provider`
Provides a `fail-over monitor` for a given named fail-over group.

## Nested classes/interfaces inherited from class org.eclipse.net4j.util.event.Notifier

`org.eclipse.net4j.util.event.Notifier.Cancelation`

## Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IContainer

`org.eclipse.net4j.util.container.IContainer.Modifiable<E>, org.eclipse.net4j.util.container.IContainer.Persistable<E>, org.eclipse.net4j.util.container.IContainer.Persistence<E>`

## Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

`org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation`

## Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

`org.eclipse.net4j.util.event.INotifier.INotifier2`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`PRODUCT_GROUP`
`static final String`
`PROTOCOL_NAME`
`static final short`
`SIGNAL_PUBLISH_MASTER`

### Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

`USE_LABEL`

## Constructor Summary

Constructors
Constructor
Description
`FailoverMonitor()`

## Method Summary

Modifier and Type
Method
Description
`void`
`deregisterAgent(FailoverMonitor.AgentProtocol agent)`
`protected void`
`doBeforeActivate()`
`protected FailoverMonitor.AgentProtocol`
`electNewMaster(List<FailoverMonitor.AgentProtocol> agents)`
`FailoverMonitor.AgentProtocol[]`
`getElements()`
`String`
`getGroup()`
`FailoverMonitor.AgentProtocol`
`getMasterAgent()`
`boolean`
`isEmpty()`
`void`
`registerAgent(FailoverMonitor.AgentProtocol agent)`
`void`
`setGroup(String group)`

### Methods inherited from class org.eclipse.net4j.util.container.Container

`fireContainerEvent, fireContainerEvent, fireContainerEvent, fireElementAddedEvent, fireElementRemovedEvent, fireElementsAddedEvent, fireElementsRemovedEvent, fireEvent, newContainerEvent, newContainerEvent`

### Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

`activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString`

### Methods inherited from class org.eclipse.net4j.util.event.Notifier

`addListener, addUniqueListener, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

`addListener, getListeners, hasListeners, removeListener`

## Field Details

### PRODUCT_GROUP

public static final String PRODUCT_GROUP

See Also:
  - Constant Field Values

### PROTOCOL_NAME

public static final String PROTOCOL_NAME

See Also:
  - Constant Field Values

### SIGNAL_PUBLISH_MASTER

public static final short SIGNAL_PUBLISH_MASTER

See Also:
  - Constant Field Values

## Constructor Details

### FailoverMonitor

public FailoverMonitor()

## Method Details

### getGroup

public String getGroup()

### setGroup

public void setGroup(String group)

### isEmpty

public boolean isEmpty()

Specified by:
  `isEmpty` in interface `org.eclipse.net4j.util.container.IContainer<FailoverMonitor.AgentProtocol>`
Overrides:
  `isEmpty` in class `org.eclipse.net4j.util.container.Container<FailoverMonitor.AgentProtocol>`

### getElements

public FailoverMonitor.AgentProtocol[] getElements()

### getMasterAgent

public FailoverMonitor.AgentProtocol getMasterAgent()

### registerAgent

public void registerAgent(FailoverMonitor.AgentProtocol agent)

### deregisterAgent

public void deregisterAgent(FailoverMonitor.AgentProtocol agent)

### doBeforeActivate

protected void doBeforeActivate() throws Exception

Overrides:
  `doBeforeActivate` in class `org.eclipse.net4j.util.lifecycle.Lifecycle`
Throws:
  `Exception`

### electNewMaster

protected FailoverMonitor.AgentProtocol electNewMaster(List<FailoverMonitor.AgentProtocol> agents)