Class SpringDataMongoBundle.Builder<T extends io.dropwizard.core.Configuration>
java.lang.Object
org.sdase.commons.server.spring.data.mongo.SpringDataMongoBundle.Builder<T>
- All Implemented Interfaces:
SpringDataMongoBundle.CaCertificateConfigProviderBuilder<T>
,SpringDataMongoBundle.CustomConverterBuilder<T>
,SpringDataMongoBundle.FinalBuilder<T>
,SpringDataMongoBundle.InitialBuilder
,SpringDataMongoBundle.MorphiaCompatibilityBuilder<T>
,SpringDataMongoBundle.ScanPackageBuilder<T>
- Enclosing class:
- SpringDataMongoBundle<C extends io.dropwizard.core.Configuration>
public static class SpringDataMongoBundle.Builder<T extends io.dropwizard.core.Configuration>
extends Object
implements SpringDataMongoBundle.InitialBuilder, SpringDataMongoBundle.ScanPackageBuilder<T>, SpringDataMongoBundle.MorphiaCompatibilityBuilder<T>, SpringDataMongoBundle.CustomConverterBuilder<T>, SpringDataMongoBundle.CaCertificateConfigProviderBuilder<T>, SpringDataMongoBundle.FinalBuilder<T>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddCustomConverters
(Iterable<org.springframework.core.convert.converter.Converter<?, ?>> converters) Adds a customConverter
sbuild()
Builds the mongo bundlewithCaCertificateConfigProvider
(org.sdase.commons.shared.certificates.ca.CaCertificateConfigurationProvider<T> configProvider) * Add the ability to use SSl for connection with the database.<C extends io.dropwizard.core.Configuration>
SpringDataMongoBundle.MorphiaCompatibilityBuilder<C>withConfigurationProvider
(MongoConfigurationProvider<C> configurationProvider) withEntities
(Class<?>... entityClasses) Enables compatibility of the data mapping with the defaults provided by the oldMorphiaBundle
.withTelemetryInstance
(io.opentelemetry.api.OpenTelemetry openTelemetry) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.sdase.commons.server.spring.data.mongo.SpringDataMongoBundle.CustomConverterBuilder
addCustomConverters
-
Constructor Details
-
Builder
-
Builder
public Builder()
-
-
Method Details
-
withConfigurationProvider
public <C extends io.dropwizard.core.Configuration> SpringDataMongoBundle.MorphiaCompatibilityBuilder<C> withConfigurationProvider(MongoConfigurationProvider<C> configurationProvider) - Specified by:
withConfigurationProvider
in interfaceSpringDataMongoBundle.InitialBuilder
- Type Parameters:
C
- the type of the applications configuration class- Parameters:
configurationProvider
- the method reference that provides the @MongoConfiguration
from the applications configurations class- Returns:
- a builder instance for further configuration
-
withMorphiaCompatibility
Description copied from interface:SpringDataMongoBundle.MorphiaCompatibilityBuilder
Enables compatibility of the data mapping with the defaults provided by the oldMorphiaBundle
. This configuration should ONLY be used when upgrading a Service from sda-dropwizard-commons v2.x.x to avoid data migration.It is strongly suggested to use test data reflecting the real structure and formats in the collections for unit tests of the repositories before upgrading from v2.x.x to v3.x.x to test for compatibility when migrating to
sda-commons-spring-data-mongo
.Some data types that where supported in Morphia 1.6.x, are not supported with sda-commons-server-spring-data-mongo in compatibility mode:
Timestamp
(stored as `date` by Morphia, not mappable)LocalTime
(stored as `long` representing nano of day by Morphia, not mappable)LocalDateTime
(technically works, but gaps are possible due to time zone settings)DBRef
(compatibility not tested)dev.morphia.geo.Geometry
and all its implementations
- Specified by:
withMorphiaCompatibility
in interfaceSpringDataMongoBundle.MorphiaCompatibilityBuilder<T extends io.dropwizard.core.Configuration>
- Returns:
- a builder instance for further configuration
- See Also:
-
withEntities
- Specified by:
withEntities
in interfaceSpringDataMongoBundle.ScanPackageBuilder<T extends io.dropwizard.core.Configuration>
- Parameters:
entityClasses
- Model classes that represent entities. Using explicit classes instead of scanning packages boosts application startup.- Returns:
- a builder instance for further configuration
-
addCustomConverters
public SpringDataMongoBundle.CustomConverterBuilder<T> addCustomConverters(Iterable<org.springframework.core.convert.converter.Converter<?, ?>> converters) Description copied from interface:SpringDataMongoBundle.CustomConverterBuilder
Adds a customConverter
sBy default the bundle provides
Jsr310Converters
and custom converters to writeZoneDateTime
asDate
and readZoneDateTime
fromDate
unless Morphia compatibility is enabled.- Specified by:
addCustomConverters
in interfaceSpringDataMongoBundle.CustomConverterBuilder<T extends io.dropwizard.core.Configuration>
- Parameters:
converters
- the converters to add- Returns:
- a builder instance for further configuration
-
disableAutoIndexCreation
- Specified by:
disableAutoIndexCreation
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.core.Configuration>
-
withTelemetryInstance
public SpringDataMongoBundle.FinalBuilder<T> withTelemetryInstance(io.opentelemetry.api.OpenTelemetry openTelemetry) - Specified by:
withTelemetryInstance
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.core.Configuration>
-
build
Description copied from interface:SpringDataMongoBundle.FinalBuilder
Builds the mongo bundle- Specified by:
build
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.core.Configuration>
- Returns:
- mongo bundle
-