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
Base class for circuit breakers.
- Since:
- 3.5
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe name of the open property as it is passed to registered change listeners. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChangeListener(PropertyChangeListener listener) Adds a change listener to this circuit breaker.abstract booleanChecks 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(PropertyChangeListener listener) Removes the specified change listener from this circuit breaker.
-
Field Details
-
PROPERTY_NAME
The name of the open property as it is passed to registered change listeners.- See Also:
-
-
Constructor Details
-
AbstractCircuitBreaker
public AbstractCircuitBreaker()Creates anAbstractCircuitBreaker. It also creates an internalPropertyChangeSupport.
-
-
Method Details
-
addChangeListener
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
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
Removes the specified change listener from this circuit breaker.- Parameters:
listener- the listener to be removed
-