Interface ReloadableService<T>

Type Parameters:
T - The sort of service that this implements
All Superinterfaces:
Component, InitializableComponent
All Known Implementing Classes:
AbstractReloadableService

public interface ReloadableService<T>
extends InitializableComponent
A service that supports reloading its configuration.
  • Method Details

    • getLastSuccessfulReloadInstant

      @Nullable Instant getLastSuccessfulReloadInstant()
      Gets the time when the service was last successfully reloaded. Returns null if the service has never reloaded.
      Returns:
      time when the service was last successfully reloaded
    • getLastReloadAttemptInstant

      @Nullable Instant getLastReloadAttemptInstant()
      Gets the time when the service last attempted to reload. If the reload was successful this time should match the time given by getLastSuccessfulReloadInstant().
      Returns:
      time when the service last attempted to reload
    • getReloadFailureCause

      @Nullable Throwable getReloadFailureCause()
      Gets the reason the last reload failed.
      Returns:
      reason the last reload failed or null if the last reload was successful
    • reload

      void reload()
      Reloads the configuration of the service. Whether internal state is maintained between reloads is implementation dependent.
      Throws:
      ServiceException - thrown if there is a problem reloading the service
    • getServiceableComponent

      @Nullable ServiceableComponent<T> getServiceableComponent()
      Get the serviceable component that this service supports. If the component hasn't been successfully loaded yet or if this service does not support a ServiceableComponent, null is returned. On a non-null value, the returned component will be pinned and MUST be unpinned by a call to ServiceableComponent.unpinComponent().
      Returns:
      the component, if appropriate.