Class DatabaseDriverFeature
- All Implemented Interfaces:
io.micronaut.core.naming.Described,io.micronaut.core.naming.Named,io.micronaut.core.order.Ordered,Feature,OneOfFeature,DatabaseDriverFeatureDependencies,TestResourcesAdditionalModulesProvider
- Direct Known Subclasses:
H2,MySQLCompatibleFeature,Oracle,OracleCloudAutonomousDatabase,PostgreSQL,SQLServer
Handles dependency management, configuration, and integration of JDBC, R2DBC, Hibernate, migration tools, and test resources for Micronaut projects. Provides helper methods for feature selection, dependency resolution, and implementation of database-specific logic.
-
Field Summary
Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionDatabaseDriverFeature(JdbcFeature jdbcFeature, TestContainers testContainers, TestResources testResources) -
Method Summary
Modifier and TypeMethodDescriptionvoidapply(GeneratorContext generatorContext) If this method is called for a given feature that means the feature was explicitly selected, included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set), or added explicitly by another feature throughFeatureContext.addFeature(Feature).protected @NonNull List<Dependency.Builder>dependenciesForHibernateReactive(@NonNull GeneratorContext generatorContext) Returns a list of dependencies required for Hibernate Reactive based on the provided GeneratorContext.abstract booleanembedded()getAdditionalConfig(GeneratorContext generatorContext) Provides additional configuration specific to the database driver feature.abstract StringReturns the database type if applicable.abstract Stringabstract Stringabstract StringClass<?>abstract Stringabstract StringgetTestResourcesAdditionalModules(@NonNull GeneratorContext generatorContext) @NonNull List<MavenCoordinate>getTestResourcesDependencies(@NonNull GeneratorContext generatorContext) protected @NonNull List<Dependency.Builder>parseDependencies(GeneratorContext generatorContext) Parses and returns a list of dependencies required for the database driver feature based on the provided GeneratorContext.voidprocessSelectedFeatures(FeatureContext featureContext) If this method is called for a given feature then that feature was explicitly selected or was included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.starter.feature.database.DatabaseDriverFeatureDependencies
getHibernateReactiveJavaClientDependency, getJavaClientDependency, getR2DbcDependencyMethods inherited from interface io.micronaut.core.naming.Described
getDescriptionMethods inherited from interface io.micronaut.projectgen.core.feature.Feature
getDescription, getFrameworkDocumentation, getName, getOrder, getThirdPartyDocumentation, getTitle, isCommunity, isPreview, isVisible, supports
-
Constructor Details
-
DatabaseDriverFeature
public DatabaseDriverFeature() -
DatabaseDriverFeature
public DatabaseDriverFeature(JdbcFeature jdbcFeature, TestContainers testContainers, TestResources testResources)
-
-
Method Details
-
getFeatureClass
- Specified by:
getFeatureClassin interfaceOneOfFeature
-
processSelectedFeatures
Description copied from interface:FeatureIf this method is called for a given feature then that feature was explicitly selected or was included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set). This method can be implemented to allow features to modify the list of features that will apply to the project. The methodsFeatureContext.addFeature(Feature)andFeatureContext.exclude(FeaturePredicate)are the primary ways to add and remove features from the context.FeatureContext.isPresent(Class)can be used to determine the existence of other features in order to make decisions.- Specified by:
processSelectedFeaturesin interfaceFeature- Overrides:
processSelectedFeaturesin classEaseTestingFeature- Parameters:
featureContext- The feature context
-
getCategory
- Specified by:
getCategoryin interfaceFeature- Returns:
- The Category to which the feature belongs to.
-
embedded
public abstract boolean embedded() -
getJdbcUrl
-
getR2dbcUrl
-
getDriverClass
-
getDefaultUser
-
getDefaultPassword
-
getDataDialect
-
getDbType
Returns the database type if applicable.Subclasses may override this to provide a specific DbType. Ensure consistency with other database-related features.
-
getTestResourcesAdditionalModules
@NonNull public @NonNull List<String> getTestResourcesAdditionalModules(@NonNull @NonNull GeneratorContext generatorContext) - Specified by:
getTestResourcesAdditionalModulesin interfaceTestResourcesAdditionalModulesProvider
-
getTestResourcesDependencies
@NonNull public @NonNull List<MavenCoordinate> getTestResourcesDependencies(@NonNull @NonNull GeneratorContext generatorContext) - Specified by:
getTestResourcesDependenciesin interfaceTestResourcesAdditionalModulesProvider
-
getAdditionalConfig
Provides additional configuration specific to the database driver feature.- Parameters:
generatorContext- the context of the project generation- Returns:
- a map containing additional configuration properties; empty by default
-
apply
Description copied from interface:FeatureIf this method is called for a given feature that means the feature was explicitly selected, included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set), or added explicitly by another feature throughFeatureContext.addFeature(Feature). At this point the feature list is set and cannot change. -
parseDependencies
@NonNull protected @NonNull List<Dependency.Builder> parseDependencies(GeneratorContext generatorContext) Parses and returns a list of dependencies required for the database driver feature based on the provided GeneratorContext.The method considers various features such as R2DBC, Hibernate Reactive, and Migration to determine the necessary dependencies. It uses the GeneratorContext to check for the presence of specific features and accordingly adds the required dependencies to the list.
- Parameters:
generatorContext- the context of the project generation- Returns:
- a non-null list of Dependency.Builder objects representing the dependencies required for the database driver feature
-
dependenciesForHibernateReactive
@NonNull protected @NonNull List<Dependency.Builder> dependenciesForHibernateReactive(@NonNull @NonNull GeneratorContext generatorContext) Returns a list of dependencies required for Hibernate Reactive based on the provided GeneratorContext.This method considers the presence of the Migration feature to determine whether to include the Java client dependency in addition to the Hibernate Reactive Java client dependency.
- Parameters:
generatorContext- the context of the project generation, which is used to check for the presence of specific features- Returns:
- a non-null list of Dependency.Builder objects representing the dependencies required for Hibernate Reactive
-