public interface DriverConfigLoader extends AutoCloseable
Modifier and Type | Method and Description |
---|---|
void |
close()
Called when the cluster closes.
|
static DriverConfigLoader |
fromClasspath(String resourceBaseName)
Builds an instance using the driver's default implementation (based on Typesafe config), except
that application-specific options are loaded from a classpath resource with a custom name.
|
static DriverConfigLoader |
fromFile(File file)
Builds an instance using the driver's default implementation (based on Typesafe config), except
that application-specific options are loaded from the given file.
|
static DriverConfigLoader |
fromUrl(URL url)
Builds an instance using the driver's default implementation (based on Typesafe config), except
that application-specific options are loaded from the given URL.
|
DriverConfig |
getInitialConfig()
Loads the first configuration that will be used to initialize the driver.
|
void |
onDriverInit(DriverContext context)
Called when the driver initializes.
|
static ProgrammaticDriverConfigLoaderBuilder |
programmaticBuilder()
Starts a builder that allows configuration options to be overridden programmatically.
|
CompletionStage<Boolean> |
reload()
Triggers an immediate reload attempt.
|
boolean |
supportsReloading()
Whether this implementation supports programmatic reloading with the
reload() method. |
@NonNull static DriverConfigLoader fromClasspath(@NonNull String resourceBaseName)
More precisely, configuration properties are loaded and merged from the following (first-listed are higher priority):
<resourceBaseName>.conf
(all resources on classpath with this name)
<resourceBaseName>.json
(all resources on classpath with this name)
<resourceBaseName>.properties
(all resources on classpath with this name)
reference.conf
(all resources on classpath with this name). In particular, this
will load the reference.conf
included in the core driver JAR, that defines
default options for all mandatory options.
datastax-java-driver
section.
The returned loader will honor the reload interval defined by the option basic.config-reload-interval
.
@NonNull static DriverConfigLoader fromFile(@NonNull File file)
More precisely, configuration properties are loaded and merged from the following (first-listed are higher priority):
file
reference.conf
(all resources on classpath with this name). In particular, this
will load the reference.conf
included in the core driver JAR, that defines
default options for all mandatory options.
datastax-java-driver
section.
The returned loader will honor the reload interval defined by the option basic.config-reload-interval
.
@NonNull static DriverConfigLoader fromUrl(@NonNull URL url)
More precisely, configuration properties are loaded and merged from the following (first-listed are higher priority):
url
reference.conf
(all resources on classpath with this name). In particular, this
will load the reference.conf
included in the core driver JAR, that defines
default options for all mandatory options.
datastax-java-driver
section.
The returned loader will honor the reload interval defined by the option basic.config-reload-interval
.
@NonNull static ProgrammaticDriverConfigLoaderBuilder programmaticBuilder()
For example:
DriverConfigLoader loader =
DriverConfigLoader.programmaticBuilder()
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(5))
.startProfile("slow")
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(30))
.endProfile()
.build();
produces the same overrides as:
datastax-java-driver { basic.request.timeout = 5 seconds profiles { slow { basic.request.timeout = 30 seconds } } }The resulting loader still uses the driver's default implementation (based on Typesafe config), except that the programmatic configuration takes precedence. More precisely, configuration properties are loaded and merged from the following (first-listed are higher priority):
application.conf
(all resources on classpath with this name)
application.json
(all resources on classpath with this name)
application.properties
(all resources on classpath with this name)
reference.conf
(all resources on classpath with this name). In particular, this
will load the reference.conf
included in the core driver JAR, that defines
default options for all mandatory options.
application.*
is entirely optional, you may choose to only rely on the
driver's built-in reference.conf
and programmatic overrides.
The resulting configuration is expected to contain a datastax-java-driver
section.
The loader will honor the reload interval defined by the option basic.config-reload-interval
.
Note that the returned builder is not thread-safe.
@NonNull DriverConfig getInitialConfig()
If this loader supports reloading, this object should be mutable and reflect later changes when the configuration gets reloaded.
void onDriverInit(@NonNull DriverContext context)
@NonNull CompletionStage<Boolean> reload()
supportsReloading()
before this method — the returned
object will fail immediately with an UnsupportedOperationException
.boolean supportsReloading()
reload()
method.void close()
close
in interface AutoCloseable
Copyright © 2017–2019. All rights reserved.