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 Object implements CircuitBreaker<T>
Base class for circuit breakers.
Since:
3.5
  • Field Details Link icon

  • Constructor Details Link icon

  • Method Details Link icon

    • isOpen Link icon

      protected static boolean isOpen(AbstractCircuitBreaker.State state)
      Converts the given state value to a boolean open property.
      Parameters:
      state - the state to be converted
      Returns:
      the boolean open flag
    • addChangeListener Link icon

      public void addChangeListener(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
    • changeState Link icon

      protected void changeState(AbstractCircuitBreaker.State newState)
      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 Link icon

      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:
      checkState in interface CircuitBreaker<T>
      Returns:
      true if the circuit breaker is now closed; false otherwise.
    • close Link icon

      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:
      close in interface CircuitBreaker<T>
    • incrementAndCheckState Link icon

      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 like CircuitBreaker.checkState(), but the monitored value is incremented before the state check is performed.
      Specified by:
      incrementAndCheckState in interface CircuitBreaker<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 Link icon

      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:
      isClosed in interface CircuitBreaker<T>
      Returns:
      the current closed state of this circuit breaker.
    • isOpen Link icon

      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:
      isOpen in interface CircuitBreaker<T>
      Returns:
      the current open state of this circuit breaker.
    • open Link icon

      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:
      open in interface CircuitBreaker<T>
    • removeChangeListener Link icon

      Removes the specified change listener from this circuit breaker.
      Parameters:
      listener - the listener to be removed