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 TypeMethodDescriptionvoid
apply
(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 boolean
embedded()
getAdditionalConfig
(GeneratorContext generatorContext) Provides additional configuration specific to the database driver feature.abstract String
Returns the database type if applicable.abstract String
abstract String
abstract String
Class<?>
abstract String
abstract String
getTestResourcesAdditionalModules
(@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.void
processSelectedFeatures
(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, wait
Methods inherited from interface io.micronaut.starter.feature.database.DatabaseDriverFeatureDependencies
getHibernateReactiveJavaClientDependency, getJavaClientDependency, getR2DbcDependency
Methods inherited from interface io.micronaut.core.naming.Described
getDescription
Methods 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:
getFeatureClass
in interfaceOneOfFeature
-
processSelectedFeatures
Description copied from interface:Feature
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)
. 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:
processSelectedFeatures
in interfaceFeature
- Overrides:
processSelectedFeatures
in classEaseTestingFeature
- Parameters:
featureContext
- The feature context
-
getCategory
- Specified by:
getCategory
in 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:
getTestResourcesAdditionalModules
in interfaceTestResourcesAdditionalModulesProvider
-
getTestResourcesDependencies
@NonNull public @NonNull List<MavenCoordinate> getTestResourcesDependencies(@NonNull @NonNull GeneratorContext generatorContext) - Specified by:
getTestResourcesDependencies
in 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:Feature
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)
. 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
-