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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enumAn internal enumeration representing the different states of a circuit breaker. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe name of the open property as it is passed to registered change listeners.protected final AtomicReference<AbstractCircuitBreaker.State>The current state of this circuit breaker. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChangeListener(PropertyChangeListener listener) Adds a change listener to this circuit breaker.protected voidchangeState(AbstractCircuitBreaker.State newState) Changes the internal state of 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.protected static booleanConverts the given state value to a boolean open property.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:
-
state
The current state of this circuit breaker.
-
-
Constructor Details
-
AbstractCircuitBreaker
public AbstractCircuitBreaker()Creates anAbstractCircuitBreaker. It also creates an internalPropertyChangeSupport.
-
-
Method Details
-
isOpen
Converts the given state value to a boolean open property.- Parameters:
state- the state to be converted- Returns:
- the boolean open flag
-
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
-
changeState
Changes the internal state of this circuit breaker. If there is actually a change of the state value, all registered change listeners are notified.- Parameters:
newState- the new state to be set
-
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
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
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
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
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
-