Class FileWatcherCertificateProvider

  • All Implemented Interfaces:
    Closeable, java.io.Closeable, java.lang.AutoCloseable, java.lang.Runnable

    final class FileWatcherCertificateProvider
    extends CertificateProvider
    implements java.lang.Runnable
    Implementation of CertificateProvider for file watching cert provider.
    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • scheduledExecutorService

        private final java.util.concurrent.ScheduledExecutorService scheduledExecutorService
      • timeProvider

        private final io.grpc.internal.TimeProvider timeProvider
      • certFile

        private final java.nio.file.Path certFile
      • keyFile

        private final java.nio.file.Path keyFile
      • trustFile

        private final java.nio.file.Path trustFile
      • refreshIntervalInSeconds

        private final long refreshIntervalInSeconds
      • scheduledFuture

        java.util.concurrent.ScheduledFuture<?> scheduledFuture
      • lastModifiedTimeCert

        private java.nio.file.attribute.FileTime lastModifiedTimeCert
      • lastModifiedTimeKey

        private java.nio.file.attribute.FileTime lastModifiedTimeKey
      • lastModifiedTimeRoot

        private java.nio.file.attribute.FileTime lastModifiedTimeRoot
      • shutdown

        private boolean shutdown
    • Constructor Detail

      • FileWatcherCertificateProvider

        FileWatcherCertificateProvider​(CertificateProvider.DistributorWatcher watcher,
                                       boolean notifyCertUpdates,
                                       java.lang.String certFile,
                                       java.lang.String keyFile,
                                       java.lang.String trustFile,
                                       long refreshIntervalInSeconds,
                                       java.util.concurrent.ScheduledExecutorService scheduledExecutorService,
                                       io.grpc.internal.TimeProvider timeProvider)
    • Method Detail

      • close

        public void close()
        Description copied from class: CertificateProvider
        Releases all resources and stop cert refreshes and watcher updates.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface Closeable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class CertificateProvider
      • scheduleNextRefreshCertificate

        private void scheduleNextRefreshCertificate​(long delayInSeconds)
      • checkAndReloadCertificates

        void checkAndReloadCertificates()
      • generateErrorIfCurrentCertExpired

        private void generateErrorIfCurrentCertExpired​(java.lang.Throwable t)
      • computeDelaySecondsToCertExpiry

        private long computeDelaySecondsToCertExpiry​(java.security.cert.X509Certificate lastCert)
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable