Class MainModule

    • Constructor Detail

      • MainModule

        public MainModule()
    • Method Detail

      • provideThreadId

        @Provides
        @Singleton
        public static AtomicInteger provideThreadId()
      • provideScriptHost

        @Provides
        @Singleton
        public static org.projectnessie.cel.tools.ScriptHost provideScriptHost()
      • provideWebServer

        @Provides
        @Singleton
        public static io.cryostat.agent.WebServer provideWebServer​(dagger.Lazy<Set<RemoteContext>> remoteContexts,
                                                                   dagger.Lazy<CryostatClient> cryostat,
                                                                   HttpServer http,
                                                                   @Named("cryostat.agent.webserver.credentials.pass.hash-function")
                                                                   MessageDigest digest,
                                                                   @Named("cryostat.agent.webserver.credentials.user")
                                                                   String user,
                                                                   @Named("cryostat.agent.webserver.credentials.pass.length")
                                                                   int passLength,
                                                                   dagger.Lazy<Registration> registration)
      • provideClientSslContext

        @Provides
        @Singleton
        @Named("HTTP_CLIENT_SSL_CTX")
        public static SSLContext provideClientSslContext​(@Named("cryostat.agent.webclient.tls.version")
                                                         String clientTlsVersion,
                                                         @Named("cryostat.agent.webclient.tls.trust-all")
                                                         boolean trustAll,
                                                         @Named("cryostat.agent.webclient.tls.truststore.path")
                                                         Optional<String> truststorePath,
                                                         @Named("cryostat.agent.webclient.tls.truststore.pass")
                                                         Optional<ConfigModule.BytePass> truststorePass,
                                                         @Named("cryostat.agent.webclient.tls.truststore.pass-charset")
                                                         String passCharset,
                                                         @Named("cryostat.agent.webclient.tls.truststore.type")
                                                         String truststoreType,
                                                         @Named("cryostat.agent.webclient.tls.truststore.cert")
                                                         List<TruststoreConfig> truststoreCerts,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.cert.path")
                                                         Optional<String> clientAuthCertPath,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.cert.type")
                                                         String clientAuthCertType,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.cert.alias")
                                                         String clientAuthCertAlias,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.path")
                                                         Optional<String> clientAuthKeyPath,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.type")
                                                         String clientAuthKeyType,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.charset")
                                                         String clientAuthKeyCharset,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.encoding")
                                                         String clientAuthKeyEncoding,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.keystore.type")
                                                         String clientAuthKeystoreType,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.keystore.pass")
                                                         Optional<String> clientAuthKeystorePass,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.keystore.pass.file")
                                                         Optional<String> clientAuthKeystorePassFile,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.keystore.pass-charset")
                                                         String clientAuthKeystorePassFileCharset,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.pass")
                                                         Optional<String> clientAuthKeyPass,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.pass.file")
                                                         Optional<String> clientAuthKeyPassFile,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key.pass-charset")
                                                         String clientAuthKeyPassFileCharset,
                                                         @Named("cryostat.agent.webclient.tls.client-auth.key-manager.type")
                                                         String clientAuthKeyManagerType,
                                                         @Named("cryostat.agent.baseuri")
                                                         URI baseUri,
                                                         @Named("cryostat.agent.webclient.tls.required")
                                                         boolean tlsRequired)
      • provideServerSslContext

        @Provides
        @Singleton
        @Named("HTTP_SERVER_SSL_CTX")
        public static Optional<SSLContext> provideServerSslContext​(@Named("cryostat.agent.webserver.tls.version")
                                                                   String serverTlsVersion,
                                                                   @Named("cryostat.agent.webserver.tls.keystore.pass")
                                                                   Optional<String> keyStorePassFile,
                                                                   @Named("cryostat.agent.webserver.tls.keystore.pass-charset")
                                                                   String passFileCharset,
                                                                   @Named("cryostat.agent.webserver.tls.keystore.file")
                                                                   Optional<String> keyStoreFilePath,
                                                                   @Named("cryostat.agent.webserver.tls.key.alias")
                                                                   String keyAlias,
                                                                   @Named("cryostat.agent.webserver.tls.key.path")
                                                                   Optional<String> keyFilePath,
                                                                   @Named("cryostat.agent.webserver.tls.key.pass")
                                                                   Optional<String> keyPass,
                                                                   @Named("cryostat.agent.webserver.tls.key.pass.file")
                                                                   Optional<String> keyPassFile,
                                                                   @Named("cryostat.agent.webserver.tls.key.pass-charset")
                                                                   String keyPassCharset,
                                                                   @Named("cryostat.agent.webserver.tls.key.path")
                                                                   Optional<String> keyPath,
                                                                   @Named("cryostat.agent.webserver.tls.key.encoding")
                                                                   String keyEncoding,
                                                                   @Named("cryostat.agent.webserver.tls.key.charset")
                                                                   String keyCharset,
                                                                   @Named("cryostat.agent.webserver.tls.key.type")
                                                                   String keyType,
                                                                   @Named("cryostat.agent.webserver.tls.keystore.type")
                                                                   String keyStoreType,
                                                                   @Named("cryostat.agent.webserver.tls.cert.alias")
                                                                   String certAlias,
                                                                   @Named("cryostat.agent.webserver.tls.cert.file")
                                                                   Optional<String> certFilePath,
                                                                   @Named("cryostat.agent.webserver.tls.cert.type")
                                                                   String certType)
      • provideHttpClient

        @Provides
        @Singleton
        public static org.apache.http.client.HttpClient provideHttpClient​(AuthorizationType authorizationType,
                                                                          @Named("HTTP_CLIENT_SSL_CTX")
                                                                          SSLContext sslContext,
                                                                          @Named("cryostat.agent.webclient.tls.verify-hostname")
                                                                          boolean verifyHostname,
                                                                          @Named("cryostat.agent.webclient.connect.timeout-ms")
                                                                          int connectTimeout,
                                                                          @Named("cryostat.agent.webclient.response.timeout-ms")
                                                                          int responseTimeout,
                                                                          @Named("cryostat.agent.webclient.response.retry-count")
                                                                          int retryCount,
                                                                          @Named("cryostat.agent.webclient.tls.required")
                                                                          boolean tlsRequired)
      • provideHttpServer

        @Provides
        @Singleton
        public static HttpServer provideHttpServer​(ScheduledExecutorService executor,
                                                   @Named("cryostat.agent.webserver.host")
                                                   String host,
                                                   @Named("cryostat.agent.webserver.port")
                                                   int port,
                                                   @Named("HTTP_SERVER_SSL_CTX")
                                                   Optional<SSLContext> sslContext)
      • provideObjectMapper

        @Provides
        public static com.fasterxml.jackson.databind.ObjectMapper provideObjectMapper()
      • provideCryostatClient

        @Provides
        @Singleton
        public static CryostatClient provideCryostatClient​(ScheduledExecutorService executor,
                                                           com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                                                           org.apache.http.client.HttpClient http,
                                                           @Named("cryostat.agent.authorization")
                                                           Supplier<Optional<String>> authorizationSupplier,
                                                           @Named("cryostat.agent.instance-id")
                                                           String instanceId,
                                                           @Named("JVM_ID")
                                                           String jvmId,
                                                           @Named("cryostat.agent.app.name")
                                                           String appName,
                                                           @Named("cryostat.agent.baseuri")
                                                           URI baseUri,
                                                           @Named("cryostat.agent.realm")
                                                           String realm)
      • provideCallbackResolver

        @Provides
        @Singleton
        public static CallbackResolver provideCallbackResolver​(org.projectnessie.cel.tools.ScriptHost scriptHost,
                                                               @Named("cryostat-agent-callback-candidates")
                                                               List<ConfigModule.CallbackCandidate> candidates)
      • provideRegistration

        @Provides
        @Singleton
        public static Registration provideRegistration​(ScheduledExecutorService executor,
                                                       CryostatClient cryostat,
                                                       CallbackResolver callbackResolver,
                                                       io.cryostat.agent.WebServer webServer,
                                                       @Named("cryostat.agent.instance-id")
                                                       String instanceId,
                                                       @Named("JVM_ID")
                                                       String jvmId,
                                                       @Named("cryostat.agent.app.name")
                                                       String appName,
                                                       @Named("cryostat.agent.realm")
                                                       String realm,
                                                       @Named("cryostat.agent.hostname")
                                                       String hostname,
                                                       @Named("cryostat.agent.app.jmx.port")
                                                       int jmxPort,
                                                       @Named("cryostat.agent.registration.retry-ms")
                                                       int registrationRetryMs,
                                                       @Named("cryostat.agent.registration.check-ms")
                                                       int registrationCheckMs,
                                                       @Named("cryostat.agent.registration.jmx.ignore")
                                                       boolean registrationJmxIgnore,
                                                       @Named("cryostat.agent.registration.jmx.use-callback-host")
                                                       boolean registrationJmxUseCallbackHost)
      • provideFlightRecorderHelper

        @Provides
        @Singleton
        public static FlightRecorderHelper provideFlightRecorderHelper()
      • provideJvmId

        @Provides
        @Singleton
        @Named("JVM_ID")
        public static String provideJvmId()