Class AbstractCircuitBreaker<T>
- java.lang.Object
-
- org.apache.commons.lang3.concurrent.AbstractCircuitBreaker<T>
-
- Type Parameters:
T- the type of the value monitored by this circuit breaker
- All Implemented Interfaces:
CircuitBreaker<T>
- Direct Known Subclasses:
EventCountCircuitBreaker,ThresholdCircuitBreaker
public abstract class AbstractCircuitBreaker<T> extends java.lang.Object implements CircuitBreaker<T>
Base class for circuit breakers.- Since:
- 3.5
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringPROPERTY_NAMEThe name of the open property as it is passed to registered change listeners.
-
Constructor Summary
Constructors Constructor Description AbstractCircuitBreaker()Creates anAbstractCircuitBreaker.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddChangeListener(java.beans.PropertyChangeListener listener)Adds a change listener to this circuit breaker.abstract booleancheckState()Checks the state of this circuit breaker and changes it if necessary.voidclose()Closes this circuit breaker.abstract booleanincrementAndCheckState(T increment)Increments the monitored value and performs a check of the current state of this circuit breaker.booleanisClosed()Tests the current closed state of this circuit breaker.booleanisOpen()Tests the current open state of this circuit breaker.voidopen()Opens this circuit breaker.voidremoveChangeListener(java.beans.PropertyChangeListener listener)Removes the specified change listener from this circuit breaker.
-
-
-
Field Detail
-
PROPERTY_NAME
public static final java.lang.String PROPERTY_NAME
The name of the open property as it is passed to registered change listeners.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractCircuitBreaker
public AbstractCircuitBreaker()
Creates anAbstractCircuitBreaker. It also creates an internalPropertyChangeSupport.
-
-
Method Detail
-
addChangeListener
public void addChangeListener(java.beans.PropertyChangeListener listener)
Adds a change listener to this circuit breaker. This listener is notified whenever the state of this circuit breaker changes. If the listener is null, it is silently ignored.- Parameters:
listener- the listener to be added
-
checkState
public abstract boolean checkState()
Checks the state of this circuit breaker and changes it if necessary. The return value indicates whether the circuit breaker is now in state closed; a value of true typically means that the current operation can continue.- Specified by:
checkStatein interfaceCircuitBreaker<T>- Returns:
- true if the circuit breaker is now closed; false otherwise.
-
close
public void close()
Closes this circuit breaker. Its state is changed to closed. If this circuit breaker is already closed, this method has no effect.- Specified by:
closein interfaceCircuitBreaker<T>
-
incrementAndCheckState
public abstract boolean incrementAndCheckState(T increment)
Increments the monitored value and performs a check of the current state of this circuit breaker. This method works likeCircuitBreaker.checkState(), but the monitored value is incremented before the state check is performed.- Specified by:
incrementAndCheckStatein interfaceCircuitBreaker<T>- Parameters:
increment- value to increment in the monitored value of the circuit breaker- Returns:
- true if the circuit breaker is now closed; false otherwise
-
isClosed
public boolean isClosed()
Tests the current closed state of this circuit breaker. A return value of true means that the circuit breaker is currently closed. This means that everything is okay with the monitored subsystem.- Specified by:
isClosedin interfaceCircuitBreaker<T>- Returns:
- the current closed state of this circuit breaker.
-
isOpen
public boolean isOpen()
Tests the current open state of this circuit breaker. A return value of true means that the circuit breaker is currently open indicating a problem in the monitored subsystem.- Specified by:
isOpenin interfaceCircuitBreaker<T>- Returns:
- the current open state of this circuit breaker.
-
open
public void open()
Opens this circuit breaker. Its state is changed to open. Depending on a concrete implementation, it may close itself again if the monitored subsystem becomes available. If this circuit breaker is already open, this method has no effect.- Specified by:
openin interfaceCircuitBreaker<T>
-
removeChangeListener
public void removeChangeListener(java.beans.PropertyChangeListener listener)
Removes the specified change listener from this circuit breaker.- Parameters:
listener- the listener to be removed
-
-