Class FileCachingHttpClientBuilder.StorageManagingHttpClient

java.lang.Object
net.shibboleth.shared.httpclient.AbstractHttpClient
net.shibboleth.shared.httpclient.FileCachingHttpClientBuilder.StorageManagingHttpClient
All Implemented Interfaces:
Closeable, AutoCloseable, Component, DestructableComponent, InitializableComponent, org.apache.hc.client5.http.classic.HttpClient, org.apache.hc.core5.io.ModalCloseable
Enclosing class:
FileCachingHttpClientBuilder

private static class FileCachingHttpClientBuilder.StorageManagingHttpClient extends AbstractHttpClient implements InitializableComponent, DestructableComponent
Class which wraps a caching instance of HttpClient and its associated ManagedHttpCacheStorage, and manages the scheduled maintenance and lifecycle of the latter.
  • Field Details

    • log

      @Nonnull private org.slf4j.Logger log
      Logger.
    • httpClient

      @NonnullAfterInit private org.apache.hc.client5.http.classic.HttpClient httpClient
      The wrapped HttpClient instance.
    • storage

      @NonnullAfterInit private org.apache.hc.client5.http.impl.cache.ManagedHttpCacheStorage storage
      The cache storage instance to manage.
    • maintenanceTaskInterval

      private long maintenanceTaskInterval
      Interval of the scheduled maintenance task.
    • initialized

      private boolean initialized
      Initialized flag.
    • destroyed

      private boolean destroyed
      Destroyed flag.
    • timer

      @NonnullAfterInit private Timer timer
      Scheduled task timer.
    • maintenanceTask

      @NonnullAfterInit private TimerTask maintenanceTask
      The scheduled storage maintenance task.
  • Constructor Details

    • StorageManagingHttpClient

      public StorageManagingHttpClient(@Nonnull org.apache.hc.client5.http.classic.HttpClient wrappedClient, @Nonnull org.apache.hc.client5.http.impl.cache.ManagedHttpCacheStorage managedStorage, long taskInterval)
      Constructor.
      Parameters:
      wrappedClient - the wrapped HttpClient instance
      managedStorage - the managed cache storage instance
      taskInterval - the interval at which storage maintenance should run
  • Method Details

    • throwComponentStateExceptions

      protected final void throwComponentStateExceptions()
      Common code (exbedded from AbstractInitializableComponent to check component state.
    • doExecute

      protected org.apache.hc.core5.http.ClassicHttpResponse doExecute(@Nullable org.apache.hc.core5.http.HttpHost target, @Nonnull org.apache.hc.core5.http.ClassicHttpRequest request, @Nullable org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
      Execute the HTTP request.
      Specified by:
      doExecute in class AbstractHttpClient
      Parameters:
      target - the target host for the request, may be null
      request - the request to execute
      context - the context to use for the execution, or null to use the default context
      Returns:
      the response to the request
      Throws:
      IOException - in case of a problem or the connection was aborted
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • close

      public void close(org.apache.hc.core5.io.CloseMode closeMode)
      Specified by:
      close in interface org.apache.hc.core5.io.ModalCloseable
    • isInitialized

      public boolean isInitialized()
      Gets whether this component is initialized.
      Specified by:
      isInitialized in interface InitializableComponent
      Returns:
      true iff this component is initialized
    • isDestroyed

      public boolean isDestroyed()
      Gets whether this component has been destroyed. Normally, once a component has been destroyed it cannot be used.
      Specified by:
      isDestroyed in interface DestructableComponent
      Returns:
      true iff the component has been destroyed
    • initialize

      public void initialize() throws ComponentInitializationException
      Initializes the component.
      Specified by:
      initialize in interface InitializableComponent
      Throws:
      ComponentInitializationException - thrown if there is a problem initializing the component
    • destroy

      public void destroy()
      Destroys the component.
      Specified by:
      destroy in interface DestructableComponent
    • teardownStorageManagingHttpClient

      @OnTeardown public void teardownStorageManagingHttpClient()
      Method to tear down the object.