Skip to content

Commit

Permalink
feat: ContainerConfig.postgres() helper function (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
jcornaz authored Jun 19, 2024
1 parent 290ef77 commit 964dffb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 13 deletions.
26 changes: 21 additions & 5 deletions src/main/kotlin/com/optravis/jooq/gradle/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ import java.io.Serializable
)
public annotation class ExperimentalJooqGeneratorConfig

private object Default {
const val DB = "jooq"
const val USER = "jooq"
const val PASSWORD = "jooq"
}

@OptIn(ExperimentalJooqGeneratorConfig::class)
internal data class JooqRootConfig(
val container: ContainerConfig,
Expand All @@ -33,10 +39,16 @@ public data class ContainerConfig(
internal val port: Int,
internal val environment: Map<String, String>
) : Serializable {
internal companion object {
fun postgres(db: String, user: String, password: String, version: Int = 16) = ContainerConfig(
public companion object {
public fun postgres(
db: String = Default.DB,
user: String = Default.USER,
password: String = Default.PASSWORD,
version: String = "16",
port: Int = 5432,
): ContainerConfig = ContainerConfig(
image = "postgres:$version",
port = 5432,
port = port,
environment = mapOf(
"POSTGRES_DB" to db,
"POSTGRES_USER" to user,
Expand Down Expand Up @@ -77,8 +89,12 @@ public data class DbConnectionConfig(
/** JDBC url template. `{{port}}` will be substituted with the container port */
internal val urlTemplate: String,
) : Serializable {
internal companion object {
fun postgres(db: String, user: String, password: String) = DbConnectionConfig(
public companion object {
public fun postgres(
db: String = Default.DB,
user: String = Default.USER,
password: String = Default.PASSWORD
): DbConnectionConfig = DbConnectionConfig(
user = user,
password = password,
urlTemplate = "jdbc:postgresql://localhost:{{port}}/$db"
Expand Down
10 changes: 2 additions & 8 deletions src/main/kotlin/com/optravis/jooq/gradle/JooqGeneratorPlugin.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,6 @@ public interface JooqGeneratorExtension {
public val generatorConfig: Property<JooqGeneratorConfig>
}

private object Default {
const val DB = "jooq"
const val USER = "jooq"
const val PASSWORD = "jooq"
}

@OptIn(ExperimentalJooqGeneratorConfig::class)
public class JooqGeneratorPlugin : Plugin<Project> {
override fun apply(project: Project): Unit = with(project) {
Expand Down Expand Up @@ -65,8 +59,8 @@ public class JooqGeneratorPlugin : Plugin<Project> {

private fun Project.createExtension() =
extensions.create<JooqGeneratorExtension>("jooqGenerator").apply {
containerConfig.convention(ContainerConfig.postgres(Default.DB, Default.USER, Default.PASSWORD))
connectionConfig.convention(DbConnectionConfig.postgres(Default.DB, Default.USER, Default.PASSWORD))
containerConfig.convention(ContainerConfig.postgres())
connectionConfig.convention(DbConnectionConfig.postgres())
jooqDbConfig.convention(JooqDatabaseConfig.postgres())
migrationDirectory.convention(File("${project.layout.projectDirectory}/src/main/resources/db/migration"))
generatorConfig.convention(JooqGeneratorConfig())
Expand Down

0 comments on commit 964dffb

Please # to comment.