From 909fb482a8af6f078732859d9a8c46b2674ec61e Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Sun, 29 Nov 2020 21:15:31 +0100 Subject: [PATCH] Clean gradle build --- app/build.gradle.kts | 37 +++--- build.gradle.kts | 3 + build.gradle.properties | 1 + .../kotlin/be/simplenotes/DockerPlugin.kt | 44 +++++++ .../src/main/kotlin/be/simplenotes/Libs.kt | 107 +++++++++++++----- .../kotlin/be/simplenotes/MicronautPlugin.kt | 27 +++++ .../kotlin/be/simplenotes/PostcssPlugin.kt | 24 ++++ .../{CssTask.kt => PostcssTask.kt} | 6 +- .../kotlin/be/simplenotes/app-css.gradle.kts | 15 --- .../be/simplenotes/app-docker.gradle.kts | 23 ---- .../be/simplenotes/app-shadow.gradle.kts | 1 - .../kotlin/be/simplenotes/base.gradle.kts | 1 - .../be/simplenotes/java-convention.gradle.kts | 1 - .../simplenotes/junit-convention.gradle.kts | 5 +- .../kotlin/be/simplenotes/versions.gradle.kts | 18 +++ .../be.simplenotes.docker.properties | 1 + .../be.simplenotes.micronaut.properties | 1 + .../be.simplenotes.postcss.properties | 1 + config/build.gradle.kts | 10 +- config/test/ConfigTest.kt | 29 +++++ config/testresources/logback.xml | 14 +++ css/build.gradle.kts | 4 + domain/build.gradle.kts | 27 ++--- gradle/wrapper/gradle-wrapper.properties | 2 +- junit-config/build.gradle.kts | 3 + .../resources/junit-platform.properties | 0 persistance/build.gradle.kts | 50 ++++---- search/build.gradle.kts | 18 +-- settings.gradle.kts | 2 + types/build.gradle.kts | 2 +- views/build.gradle.kts | 12 +- 31 files changed, 337 insertions(+), 152 deletions(-) create mode 100644 build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/DockerPlugin.kt create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/MicronautPlugin.kt create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/PostcssPlugin.kt rename buildSrc/src/main/kotlin/be/simplenotes/{CssTask.kt => PostcssTask.kt} (92%) delete mode 100644 buildSrc/src/main/kotlin/be/simplenotes/app-css.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/versions.gradle.kts create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.docker.properties create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.micronaut.properties create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.postcss.properties create mode 100644 config/test/ConfigTest.kt create mode 100644 config/testresources/logback.xml create mode 100644 css/build.gradle.kts create mode 100644 junit-config/build.gradle.kts rename {testresources/src/test => junit-config}/resources/junit-platform.properties (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9ad66a9..065b3c4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,33 +1,36 @@ import be.simplenotes.Libs +import be.simplenotes.micronaut plugins { id("be.simplenotes.base") id("be.simplenotes.kotlinx-serialization") id("be.simplenotes.app-shadow") - id("be.simplenotes.app-css") - id("be.simplenotes.app-docker") - kotlin("kapt") + id("be.simplenotes.docker") + id("be.simplenotes.micronaut") } dependencies { implementation(project(":domain")) - implementation(project(":types")) - implementation(project(":config")) implementation(project(":views")) + implementation(project(":css")) - implementation(Libs.arrowCoreData) - implementation(Libs.konform) - implementation(Libs.http4kCore) - implementation(Libs.jettyServer) - implementation(Libs.jettyServlet) + implementation(Libs.Http4k.core) + implementation(Libs.Jetty.server) + implementation(Libs.Jetty.servlet) implementation(Libs.javaxServlet) - implementation(Libs.kotlinxSerializationJson) - implementation(Libs.logbackClassic) + implementation(Libs.Kotlinx.Serialization.json) - implementation(Libs.micronaut) - kapt(Libs.micronautProcessor) + implementation(Libs.Slf4J.api) + runtimeOnly(Libs.Slf4J.logback) - testImplementation(Libs.junit) - testImplementation(Libs.assertJ) - testImplementation(Libs.http4kTestingHamkrest) + micronaut() + + testImplementation(Libs.Test.junit) + testImplementation(Libs.Test.assertJ) + testImplementation(Libs.Http4k.testingHamkrest) +} + +docker { + image = "hubv/simplenotes" + tag = "latest" } diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..31172d2 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + id("be.simplenotes.versions") +} diff --git a/build.gradle.properties b/build.gradle.properties index aec0a55..ded80c3 100644 --- a/build.gradle.properties +++ b/build.gradle.properties @@ -1,2 +1,3 @@ +org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.caching=true org.gradle.parallel=true diff --git a/buildSrc/src/main/kotlin/be/simplenotes/DockerPlugin.kt b/buildSrc/src/main/kotlin/be/simplenotes/DockerPlugin.kt new file mode 100644 index 0000000..6bc3ced --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/DockerPlugin.kt @@ -0,0 +1,44 @@ +package be.simplenotes + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.create + +open class DockerPluginExtension { + var image: String? = null + var tag = "latest" +} + +class DockerPlugin : Plugin { + override fun apply(project: Project) { + val extension = project.extensions.create("docker") + + project.task("dockerBuild") { + dependsOn("package") + + group = "docker" + description = "Build a docker image" + + doLast { + project.exec { + commandLine("docker", "build", "-t", "${extension.image}:${extension.tag}", ".") + workingDir(project.rootProject.projectDir) + } + } + } + + project.task("dockerPush") { + dependsOn("dockerBuild") + + group = "docker" + description = "Push a docker image" + + doLast { + project.exec { + commandLine("docker", "push", "${extension.image}:${extension.tag}") + workingDir(project.rootProject.projectDir) + } + } + } + } +} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt b/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt index 5bfad3c..d002547 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt +++ b/buildSrc/src/main/kotlin/be/simplenotes/Libs.kt @@ -3,43 +3,90 @@ package be.simplenotes object Libs { + + object Flexmark { + private const val version = "0.62.2" + const val core = "com.vladsch.flexmark:flexmark:$version" + const val tasklist = "com.vladsch.flexmark:flexmark-ext-gfm-tasklist:$version" + } + + object Database { + const val flyway = "org.flywaydb:flyway-core:6.5.4" + const val hikariCP = "com.zaxxer:HikariCP:3.4.3" + + object Drivers { + const val h2 = "com.h2database:h2:1.4.200" + const val mariadb = "org.mariadb.jdbc:mariadb-java-client:2.6.2" + } + + object Ktorm { + private const val version = "3.0.0" + const val core = "me.liuwj.ktorm:ktorm-core:$version" + const val mysql = "me.liuwj.ktorm:ktorm-support-mysql:$version" + } + } + + object Lucene { + private const val version = "8.6.1" + const val core = "org.apache.lucene:lucene-core:$version" + const val analyzersCommon = "org.apache.lucene:lucene-analyzers-common:$version" + const val queryParser = "org.apache.lucene:lucene-queryparser:$version" + } + + object Http4k { + private const val version = "3.268.0" + const val core = "org.http4k:http4k-core:$version" + const val testingHamkrest = "org.http4k:http4k-testing-hamkrest:$version" + } + + object Jetty { + private const val version = "9.4.32.v20200930" + const val server = "org.eclipse.jetty:jetty-server:$version" + const val servlet = "org.eclipse.jetty:jetty-servlet:$version" + } + + object Kotlinx { + const val html = "org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.1" + + object Serialization { + const val json = "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.0.0" + } + } + + object Slf4J { + const val api = "org.slf4j:slf4j-api:1.7.25" + const val logback = "ch.qos.logback:logback-classic:1.2.3" + } + + object Mapstruct { + private const val version = "1.4.1.Final" + const val core = "org.mapstruct:mapstruct:$version" + const val processor = "org.mapstruct:mapstruct-processor:$version" + } + + object Micronaut { + private const val version = "2.2.0" + const val inject = "io.micronaut:micronaut-inject:$version" + const val processor = "io.micronaut:micronaut-inject-java:$version" + } + const val arrowCoreData = "io.arrow-kt:arrow-core-data:0.11.0" const val commonsCompress = "org.apache.commons:commons-compress:1.20" - const val flexmark = "com.vladsch.flexmark:flexmark:0.62.2" - const val flexmarkGfmTasklist = "com.vladsch.flexmark:flexmark-ext-gfm-tasklist:0.62.2" - const val flywayCore = "org.flywaydb:flyway-core:6.5.4" - const val h2 = "com.h2database:h2:1.4.200" - const val hikariCP = "com.zaxxer:HikariCP:3.4.3" - const val http4kCore = "org.http4k:http4k-core:3.268.0" const val javaJwt = "com.auth0:java-jwt:3.10.3" const val javaxServlet = "javax.servlet:javax.servlet-api:4.0.1" const val jbcrypt = "org.mindrot:jbcrypt:0.4" - const val jettyServer = "org.eclipse.jetty:jetty-server:9.4.32.v20200930" - const val jettyServlet = "org.eclipse.jetty:jetty-servlet:9.4.32.v20200930" const val konform = "io.konform:konform-jvm:0.2.0" - const val kotlinxHtml = "org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.1" - const val kotlinxSerializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.0.0" - const val ktormCore = "me.liuwj.ktorm:ktorm-core:3.0.0" - const val ktormMysql = "me.liuwj.ktorm:ktorm-support-mysql:3.0.0" - const val logbackClassic = "ch.qos.logback:logback-classic:1.2.3" - const val luceneAnalyzersCommon = "org.apache.lucene:lucene-analyzers-common:8.6.1" - const val luceneCore = "org.apache.lucene:lucene-core:8.6.1" - const val luceneQueryParser = "org.apache.lucene:lucene-queryparser:8.6.1" - const val mapstruct = "org.mapstruct:mapstruct:1.4.1.Final" - const val mapstructProcessor = "org.mapstruct:mapstruct-processor:1.4.1.Final" - const val micronaut = "io.micronaut:micronaut-inject:2.1.2" - const val micronautProcessor = "io.micronaut:micronaut-inject-java:2.1.2" - const val mariadbClient = "org.mariadb.jdbc:mariadb-java-client:2.6.2" const val owaspHtmlSanitizer = "com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20200713.1" - const val prettytime ="org.ocpsoft.prettytime:prettytime:4.0.5.Final" - const val slf4jApi = "org.slf4j:slf4j-api:1.7.25" + const val prettytime = "org.ocpsoft.prettytime:prettytime:4.0.5.Final" const val snakeyaml = "org.yaml:snakeyaml:1.26" - const val assertJ = "org.assertj:assertj-core:3.16.1" - const val hamkrest = "com.natpryce:hamkrest:1.7.0.3" - const val http4kTestingHamkrest = "org.http4k:http4k-testing-hamkrest:3.268.0" - const val junit = "org.junit.jupiter:junit-jupiter:5.6.2" - const val mockk = "io.mockk:mockk:1.10.0" - const val faker = "com.github.javafaker:javafaker:1.0.2" - const val mariaTestContainer = "org.testcontainers:mariadb:1.15.0-rc2" + object Test { + const val assertJ = "org.assertj:assertj-core:3.16.1" + const val hamkrest = "com.natpryce:hamkrest:1.7.0.3" + const val junit = "org.junit.jupiter:junit-jupiter:5.6.2" + const val mockk = "io.mockk:mockk:1.10.0" + const val faker = "com.github.javafaker:javafaker:1.0.2" + const val mariaTestContainer = "org.testcontainers:mariadb:1.15.0-rc2" + } + } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/MicronautPlugin.kt b/buildSrc/src/main/kotlin/be/simplenotes/MicronautPlugin.kt new file mode 100644 index 0000000..65f48ac --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/MicronautPlugin.kt @@ -0,0 +1,27 @@ +package be.simplenotes + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.artifacts.dsl.DependencyHandler + +class MicronautPlugin : Plugin { + override fun apply(target: Project) { + target.plugins.apply("org.jetbrains.kotlin.kapt") + } +} + +fun DependencyHandler.micronaut() { + add("kapt", Libs.Micronaut.processor) + add("implementation", Libs.Micronaut.inject) +} + +fun DependencyHandler.micronautTest() { + add("kaptTest", Libs.Micronaut.processor) + add("testImplementation", Libs.Micronaut.inject) +} + +fun DependencyHandler.micronautFixtures() { + add("kaptTestFixtures", Libs.Micronaut.inject) + add("testFixturesImplementation", Libs.Micronaut.processor) +} + diff --git a/buildSrc/src/main/kotlin/be/simplenotes/PostcssPlugin.kt b/buildSrc/src/main/kotlin/be/simplenotes/PostcssPlugin.kt new file mode 100644 index 0000000..bf24797 --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/PostcssPlugin.kt @@ -0,0 +1,24 @@ +package be.simplenotes + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaPluginConvention +import org.gradle.kotlin.dsl.get +import org.gradle.kotlin.dsl.register +import java.io.File + +class PostcssPlugin : Plugin { + override fun apply(project: Project) { + with(project.tasks) { + register("postcss") { + group = "postcss" + description = "generate postcss resources" + } + getByName("processResources").dependsOn("postcss") + } + + val sourceSets = project.convention.getPlugin(JavaPluginConvention::class.java).sourceSets + val root = File("${project.buildDir}/generated-resources/css") + sourceSets["main"].resources.srcDir(root) + } +} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/CssTask.kt b/buildSrc/src/main/kotlin/be/simplenotes/PostcssTask.kt similarity index 92% rename from buildSrc/src/main/kotlin/be/simplenotes/CssTask.kt rename to buildSrc/src/main/kotlin/be/simplenotes/PostcssTask.kt index f8a800f..249ce43 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/CssTask.kt +++ b/buildSrc/src/main/kotlin/be/simplenotes/PostcssTask.kt @@ -9,9 +9,7 @@ import java.lang.ProcessBuilder.Redirect.PIPE import java.util.concurrent.TimeUnit import kotlin.concurrent.thread -open class CssTask : DefaultTask() { - - private val root = project.parent!!.rootDir +open class PostcssTask : DefaultTask() { private val viewsProject = project .parent @@ -54,7 +52,7 @@ open class CssTask : DefaultTask() { outputRootDir.deleteRecursively() - ProcessBuilder("yarn", "run", "postcss", "build", "$cssIndex", "--output", "$cssOutput") + ProcessBuilder("yarn", "run", "postcss", "$cssIndex", "--output", "$cssOutput") .apply { environment().let { it["MANIFEST"] = "$manifestOutput" diff --git a/buildSrc/src/main/kotlin/be/simplenotes/app-css.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/app-css.gradle.kts deleted file mode 100644 index 6f21cf3..0000000 --- a/buildSrc/src/main/kotlin/be/simplenotes/app-css.gradle.kts +++ /dev/null @@ -1,15 +0,0 @@ -package be.simplenotes - -import org.gradle.kotlin.dsl.register - -plugins { - java apply false -} - -tasks.register("css") - -sourceSets { - val main by getting - val root = file("$buildDir/generated-resources/css") - main.resources.srcDir(root) -} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts deleted file mode 100644 index 410f2e5..0000000 --- a/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts +++ /dev/null @@ -1,23 +0,0 @@ -package be.simplenotes - -tasks.create("dockerBuild") { - dependsOn("package") - - doLast { - exec { - commandLine("docker", "build", "-t", "hubv/simplenotes:latest", ".") - workingDir(rootProject.projectDir) - } - } -} - -tasks.create("dockerPush") { - dependsOn("dockerBuild") - - doLast { - exec { - commandLine("docker", "push", "hubv/simplenotes:latest") - workingDir(rootProject.projectDir) - } - } -} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/app-shadow.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/app-shadow.gradle.kts index f9466cf..eb1d340 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/app-shadow.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/app-shadow.gradle.kts @@ -30,7 +30,6 @@ tasks.create("package") { tasks.getByName("build").dependsOn("package") dependsOn("shadowJar") - dependsOn("css") doLast { println("SimpleNotes Packaged !") diff --git a/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts index a26e672..0b2c1b8 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts @@ -5,5 +5,4 @@ plugins { id("be.simplenotes.kotlin-convention") id("be.simplenotes.junit-convention") id("org.jlleitschuh.gradle.ktlint") - id("com.github.ben-manes.versions") } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts index b77e8c5..623a361 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts @@ -6,7 +6,6 @@ plugins { } repositories { - mavenLocal() mavenCentral() jcenter() maven { url = uri("https://dl.bintray.com/arrow-kt/arrow-kt/") } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts index ab7c97a..919ea4d 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts @@ -8,7 +8,6 @@ tasks.withType { useJUnitPlatform() } -sourceSets { - val test by getting - test.resources.srcDir("${rootProject.projectDir}/testresources/src/test/resources") +dependencies { + testRuntimeOnly(project(":junit-config")) } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/versions.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/versions.gradle.kts new file mode 100644 index 0000000..ea8442f --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/versions.gradle.kts @@ -0,0 +1,18 @@ +package be.simplenotes + +import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask +import org.gradle.kotlin.dsl.named + +plugins { + id("com.github.ben-manes.versions") +} + +tasks.named("dependencyUpdates").configure { + resolutionStrategy { + componentSelection { + all { + if (candidate.module in listOf("slf4j-api", "logback-classic")) reject("Release candidate") + } + } + } +} diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.docker.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.docker.properties new file mode 100644 index 0000000..d4eaf94 --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.docker.properties @@ -0,0 +1 @@ +implementation-class=be.simplenotes.DockerPlugin diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.micronaut.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.micronaut.properties new file mode 100644 index 0000000..3352ff8 --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.micronaut.properties @@ -0,0 +1 @@ +implementation-class=be.simplenotes.MicronautPlugin diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.postcss.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.postcss.properties new file mode 100644 index 0000000..484fdad --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/be.simplenotes.postcss.properties @@ -0,0 +1 @@ +implementation-class=be.simplenotes.PostcssPlugin diff --git a/config/build.gradle.kts b/config/build.gradle.kts index f2970d0..8fcb7ae 100644 --- a/config/build.gradle.kts +++ b/config/build.gradle.kts @@ -1,11 +1,15 @@ import be.simplenotes.Libs +import be.simplenotes.micronaut plugins { id("be.simplenotes.base") - kotlin("kapt") + id("be.simplenotes.micronaut") } dependencies { - implementation(Libs.micronaut) - kapt(Libs.micronautProcessor) + micronaut() + + testImplementation(Libs.Test.junit) + testImplementation(Libs.Test.assertJ) + testRuntimeOnly(Libs.Slf4J.logback) } diff --git a/config/test/ConfigTest.kt b/config/test/ConfigTest.kt new file mode 100644 index 0000000..6409312 --- /dev/null +++ b/config/test/ConfigTest.kt @@ -0,0 +1,29 @@ +package be.simplenotes.config + +import io.micronaut.context.ApplicationContext +import org.assertj.core.api.Assertions.assertThat +import org.junit.jupiter.api.Test + +class ConfigTest { + private val ctx = ApplicationContext.run() + + @Test + fun `check application yaml is on the classpath`() { + val yaml = javaClass.getResource("/application.yaml") + assertThat(yaml).`as`("The application.yaml resource").isNotNull + assertThat(yaml.readText()).`as`("The config content").isNotBlank + } + + @Test + fun `check config properties`() { + assertThat(ctx.getProperty("jwt.validity", Int::class.java)) + .`as`("Jwt.validity") + .isPresent + } + + @Test + fun `load jwt config`() { + val jwtConfig = ctx.getBean(JwtConfig::class.java) + assertThat(jwtConfig).isNotNull + } +} diff --git a/config/testresources/logback.xml b/config/testresources/logback.xml new file mode 100644 index 0000000..c7be3fd --- /dev/null +++ b/config/testresources/logback.xml @@ -0,0 +1,14 @@ + + + true + + %cyan(%d{YYYY-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{36}) - %msg%n + + + + + + + + + diff --git a/css/build.gradle.kts b/css/build.gradle.kts new file mode 100644 index 0000000..77c9378 --- /dev/null +++ b/css/build.gradle.kts @@ -0,0 +1,4 @@ +plugins { + id("be.simplenotes.java-convention") + id("be.simplenotes.postcss") +} diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 771981c..c0f639c 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -1,32 +1,33 @@ import be.simplenotes.Libs +import be.simplenotes.micronaut plugins { id("be.simplenotes.base") id("be.simplenotes.kotlinx-serialization") - kotlin("kapt") + id("be.simplenotes.micronaut") } dependencies { - implementation(project(":config")) - implementation(project(":types")) + api(project(":config")) + api(project(":types")) implementation(project(":persistance")) implementation(project(":search")) - implementation(Libs.micronaut) - kapt(Libs.micronautProcessor) + api(Libs.arrowCoreData) + api(Libs.konform) - implementation(Libs.kotlinxSerializationJson) - implementation(Libs.arrowCoreData) - implementation(Libs.konform) + micronaut() + + implementation(Libs.Kotlinx.Serialization.json) implementation(Libs.jbcrypt) implementation(Libs.javaJwt) - implementation(Libs.flexmark) - implementation(Libs.flexmarkGfmTasklist) + implementation(Libs.Flexmark.core) + implementation(Libs.Flexmark.tasklist) implementation(Libs.snakeyaml) implementation(Libs.owaspHtmlSanitizer) implementation(Libs.commonsCompress) - testImplementation(Libs.hamkrest) - testImplementation(Libs.junit) - testImplementation(Libs.mockk) + testImplementation(Libs.Test.hamkrest) + testImplementation(Libs.Test.junit) + testImplementation(Libs.Test.mockk) } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index be52383..089b9f3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-rc-1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/junit-config/build.gradle.kts b/junit-config/build.gradle.kts new file mode 100644 index 0000000..0316efe --- /dev/null +++ b/junit-config/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + id("be.simplenotes.java-convention") +} diff --git a/testresources/src/test/resources/junit-platform.properties b/junit-config/resources/junit-platform.properties similarity index 100% rename from testresources/src/test/resources/junit-platform.properties rename to junit-config/resources/junit-platform.properties diff --git a/persistance/build.gradle.kts b/persistance/build.gradle.kts index 1dec912..d6254a4 100644 --- a/persistance/build.gradle.kts +++ b/persistance/build.gradle.kts @@ -1,7 +1,10 @@ import be.simplenotes.Libs +import be.simplenotes.micronaut +import be.simplenotes.micronautFixtures plugins { id("be.simplenotes.base") + id("be.simplenotes.micronaut") kotlin("kapt") `java-test-fixtures` } @@ -10,43 +13,42 @@ dependencies { implementation(project(":types")) implementation(project(":config")) - implementation(Libs.mariadbClient) - implementation(Libs.h2) - implementation(Libs.flywayCore) - implementation(Libs.hikariCP) - implementation(Libs.ktormCore) - implementation(Libs.ktormMysql) - implementation(Libs.logbackClassic) + implementation(Libs.Database.Drivers.mariadb) + implementation(Libs.Database.Drivers.h2) + implementation(Libs.Database.flyway) + implementation(Libs.Database.hikariCP) + implementation(Libs.Database.Ktorm.core) + runtimeOnly(Libs.Database.Ktorm.mysql) - compileOnly(Libs.mapstruct) - kapt(Libs.mapstructProcessor) + implementation(Libs.Slf4J.api) + runtimeOnly(Libs.Slf4J.logback) - implementation(Libs.micronaut) - kapt(Libs.micronautProcessor) + compileOnly(Libs.Mapstruct.core) + kapt(Libs.Mapstruct.processor) - testImplementation(Libs.junit) - testImplementation(Libs.assertJ) - testImplementation(Libs.logbackClassic) - testImplementation(Libs.mariaTestContainer) + testImplementation(Libs.Test.junit) + testImplementation(Libs.Test.assertJ) + testCompileOnly(Libs.Slf4J.logback) + testImplementation(Libs.Test.mariaTestContainer) testFixturesImplementation(project(":types")) testFixturesImplementation(project(":config")) testFixturesImplementation(project(":persistance")) - testFixturesImplementation(Libs.micronaut) - kaptTestFixtures(Libs.micronautProcessor) - - testFixturesImplementation(Libs.faker) { + testFixturesImplementation(Libs.Test.faker) { exclude(group = "org.yaml") } testFixturesImplementation(Libs.snakeyaml) - testFixturesImplementation(Libs.mariaTestContainer) - testFixturesImplementation(Libs.flywayCore) - testFixturesImplementation(Libs.junit) - testFixturesImplementation(Libs.ktormCore) - testFixturesImplementation(Libs.hikariCP) + testFixturesImplementation(Libs.Test.mariaTestContainer) + testFixturesImplementation(Libs.Database.flyway) + testFixturesImplementation(Libs.Test.junit) + testFixturesImplementation(Libs.Database.Ktorm.core) + testFixturesImplementation(Libs.Database.hikariCP) + + micronaut() + micronautFixtures() } kotlin.sourceSets["testFixtures"].kotlin.srcDirs("testfixtures") diff --git a/search/build.gradle.kts b/search/build.gradle.kts index 8f4b9f9..6fb52c6 100644 --- a/search/build.gradle.kts +++ b/search/build.gradle.kts @@ -1,21 +1,21 @@ import be.simplenotes.Libs +import be.simplenotes.micronaut plugins { id("be.simplenotes.base") - kotlin("kapt") + id("be.simplenotes.micronaut") } dependencies { implementation(project(":types")) - implementation(Libs.luceneCore) - implementation(Libs.luceneQueryParser) - implementation(Libs.luceneAnalyzersCommon) - implementation(Libs.slf4jApi) + implementation(Libs.Lucene.core) + implementation(Libs.Lucene.queryParser) + implementation(Libs.Lucene.analyzersCommon) + implementation(Libs.Slf4J.api) - implementation(Libs.micronaut) - kapt(Libs.micronautProcessor) + micronaut() - testImplementation(Libs.junit) - testImplementation(Libs.assertJ) + testImplementation(Libs.Test.junit) + testImplementation(Libs.Test.assertJ) } diff --git a/settings.gradle.kts b/settings.gradle.kts index fcb747a..e921310 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,3 +6,5 @@ include(":domain") include(":search") include(":types") include(":persistance") +include(":css") +include(":junit-config") diff --git a/types/build.gradle.kts b/types/build.gradle.kts index 2e72832..5dbe191 100644 --- a/types/build.gradle.kts +++ b/types/build.gradle.kts @@ -6,5 +6,5 @@ plugins { } dependencies { - implementation(Libs.kotlinxSerializationJson) + implementation(Libs.Kotlinx.Serialization.json) } diff --git a/views/build.gradle.kts b/views/build.gradle.kts index 9a6df4a..fb1f38e 100644 --- a/views/build.gradle.kts +++ b/views/build.gradle.kts @@ -1,17 +1,17 @@ import be.simplenotes.Libs +import be.simplenotes.micronaut plugins { id("be.simplenotes.base") - kotlin("kapt") + id("be.simplenotes.micronaut") } dependencies { implementation(project(":types")) - implementation(Libs.konform) - implementation(Libs.kotlinxHtml) - implementation(Libs.prettytime) + micronaut() - implementation(Libs.micronaut) - kapt(Libs.micronautProcessor) + implementation(Libs.konform) + implementation(Libs.Kotlinx.html) + implementation(Libs.prettytime) }