Class SpringDataMongoBundle.Builder<T extends io.dropwizard.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.Configuration>
public static class SpringDataMongoBundle.Builder<T extends io.dropwizard.Configuration> extends java.lang.Object implements SpringDataMongoBundle.InitialBuilder, SpringDataMongoBundle.ScanPackageBuilder<T>, SpringDataMongoBundle.MorphiaCompatibilityBuilder<T>, SpringDataMongoBundle.CustomConverterBuilder<T>, SpringDataMongoBundle.CaCertificateConfigProviderBuilder<T>, SpringDataMongoBundle.FinalBuilder<T>
-
-
Constructor Summary
Constructors Constructor Description Builder()
Builder(MongoConfigurationProvider<T> configurationProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SpringDataMongoBundle.CustomConverterBuilder<T>
addCustomConverters(java.lang.Iterable<org.springframework.core.convert.converter.Converter<?,?>> converters)
Adds a customConverter
sSpringDataMongoBundle<T>
build()
Builds the mongo bundleSpringDataMongoBundle.FinalBuilder<T>
disableAutoIndexCreation()
SpringDataMongoBundle.FinalBuilder<T>
withCaCertificateConfigProvider(org.sdase.commons.shared.certificates.ca.CaCertificateConfigurationProvider<T> configProvider)
* Add the ability to use SSl for connection with the database.<C extends io.dropwizard.Configuration>
SpringDataMongoBundle.MorphiaCompatibilityBuilder<C>withConfigurationProvider(MongoConfigurationProvider<C> configurationProvider)
SpringDataMongoBundle.CustomConverterBuilder<T>
withEntities(java.lang.Class<?>... entityClasses)
SpringDataMongoBundle.ScanPackageBuilder<T>
withMorphiaCompatibility()
Enables compatibility of the data mapping with the defaults provided by the oldMorphiaBundle
.SpringDataMongoBundle.FinalBuilder<T>
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 Detail
-
Builder
public Builder(MongoConfigurationProvider<T> configurationProvider)
-
Builder
public Builder()
-
-
Method Detail
-
withConfigurationProvider
public <C extends io.dropwizard.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
public SpringDataMongoBundle.ScanPackageBuilder<T> 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.Configuration>
- Returns:
- a builder instance for further configuration
- See Also:
defaults without Morphia compatibility
-
withEntities
public SpringDataMongoBundle.CustomConverterBuilder<T> withEntities(java.lang.Class<?>... entityClasses)
- Specified by:
withEntities
in interfaceSpringDataMongoBundle.ScanPackageBuilder<T extends io.dropwizard.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(java.lang.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.Configuration>
- Parameters:
converters
- the converters to add- Returns:
- a builder instance for further configuration
-
disableAutoIndexCreation
public SpringDataMongoBundle.FinalBuilder<T> disableAutoIndexCreation()
- Specified by:
disableAutoIndexCreation
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.Configuration>
-
withCaCertificateConfigProvider
public SpringDataMongoBundle.FinalBuilder<T> withCaCertificateConfigProvider(org.sdase.commons.shared.certificates.ca.CaCertificateConfigurationProvider<T> configProvider)
Description copied from interface:SpringDataMongoBundle.CaCertificateConfigProviderBuilder
* Add the ability to use SSl for connection with the database. If no specific configuration is provided it will try to look for the pem files in the default directory "/var/trust/certificates"- Specified by:
withCaCertificateConfigProvider
in interfaceSpringDataMongoBundle.CaCertificateConfigProviderBuilder<T extends io.dropwizard.Configuration>
- Specified by:
withCaCertificateConfigProvider
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.Configuration>
- Parameters:
configProvider
- the configuration provider to get SSL Context- Returns:
- a builder instance for further configuration
-
withTelemetryInstance
public SpringDataMongoBundle.FinalBuilder<T> withTelemetryInstance(io.opentelemetry.api.OpenTelemetry openTelemetry)
- Specified by:
withTelemetryInstance
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.Configuration>
-
build
public SpringDataMongoBundle<T> build()
Description copied from interface:SpringDataMongoBundle.FinalBuilder
Builds the mongo bundle- Specified by:
build
in interfaceSpringDataMongoBundle.FinalBuilder<T extends io.dropwizard.Configuration>
- Returns:
- mongo bundle
-
-