diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 9b02d59..8801066 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -3,4 +3,7 @@ + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 09ee113..78fc83f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,12 +6,12 @@ plugins { jacoco id("maven-publish") - kotlin("jvm") version "1.5.10" + kotlin("jvm") version "1.7.20" - id("org.jlleitschuh.gradle.ktlint") version "10.0.0" - id("org.owasp.dependencycheck") version "6.1.1" + id("org.jlleitschuh.gradle.ktlint") version "11.0.0" + id("org.owasp.dependencycheck") version "7.2.0" id("fr.coppernic.versioning") version "3.2.1" - id("com.avast.gradle.docker-compose") version "0.14.4" + id("com.avast.gradle.docker-compose") version "0.16.9" id("org.sonarqube") version "+" } @@ -20,14 +20,11 @@ version = versioning.info.tag repositories { mavenCentral() - jcenter() } tasks.withType { kotlinOptions { jvmTarget = "11" - sourceCompatibility = "11" - targetCompatibility = "11" } } @@ -65,20 +62,19 @@ tasks.publishToMavenLocal { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.20") - implementation("org.jetbrains.kotlin:kotlin-reflect:1.5.20") - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.12.1") - implementation("com.fasterxml.jackson.datatype:jackson-datatype-joda:2.12.1") - implementation("com.github.jasync-sql:jasync-postgresql:1.1.7") - implementation("org.slf4j:slf4j-api:1.7.30") - implementation("com.avast.gradle:gradle-docker-compose-plugin:0.14.0") + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20") + implementation("org.jetbrains.kotlin:kotlin-reflect:1.7.20") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.14.0-rc1") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-joda:2.14.0-rc1") + implementation("com.github.jasync-sql:jasync-postgresql:2.1.7") + implementation("org.slf4j:slf4j-api:2.0.3") - testImplementation("ch.qos.logback:logback-classic:1.2.3") - testImplementation("ch.qos.logback:logback-core:1.2.3") - testImplementation("io.mockk:mockk:1.10.6") - testImplementation("org.junit.jupiter:junit-jupiter:5.7.1") - testImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.5.20") - testImplementation("org.amshove.kluent:kluent:1.65") + testImplementation("ch.qos.logback:logback-classic:1.4.3") + testImplementation("ch.qos.logback:logback-core:1.4.3") + testImplementation("io.mockk:mockk:1.13.2") + testImplementation("org.junit.jupiter:junit-jupiter:5.9.0") + testImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.7.20") + testImplementation("org.amshove.kluent:kluent:1.68") } val sourcesJar by tasks.creating(Jar::class) { @@ -88,9 +84,9 @@ val sourcesJar by tasks.creating(Jar::class) { apply(plugin = "docker-compose") dockerCompose { - projectName = "postgres-json" - useComposeFiles = listOf("docker-compose.yml") - stopContainers = !containerAlwaysOn.toBoolean() + setProjectName("postgres-json") + setProperty("useComposeFiles", listOf("docker-compose.yml")) + setProperty("stopContainers", !containerAlwaysOn.toBoolean()) isRequiredBy(project.tasks.test) } diff --git a/gradle.properties b/gradle.properties index 00a8cd7..c9ef82b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,4 @@ kotlin.code.style=official -kotlin_version=1.5.10 systemProp.sonar.host.url=https://sonarcloud.io systemProp.sonar.projectKey=postgres-json systemProp.sonar.projectName=PostgresJson diff --git a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt index 9fcd2d6..1ffdfea 100644 --- a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt +++ b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt @@ -106,7 +106,7 @@ class Connection( val result = exec(sql, values) val json = result.rows[0].getString(0) return if (json === null) { - listOf() as List + emptyList() } else { serializer.deserializeList(json, typeReference) }.also { @@ -160,7 +160,7 @@ class Connection( } val json = firstLine.getString(0) val entities = if (json == null) { - listOf() as List + emptyList() } else { serializer.deserializeList(json, typeReference) } @@ -220,7 +220,7 @@ class Connection( } private fun replaceArgs(sql: String, values: Map, block: ParametersQuery.() -> T): T { - val paramRegex = "(? val name = match.groups[1]!!.value values[name] ?: values[name.trimStart('_')] ?: queryError("""Parameter "$name" missing""", sql, values) @@ -230,7 +230,7 @@ class Connection( } private fun replaceNamedArgByQuestionMark(sql: String): String = - "(? ") ?: ""} + |${parameters.joinToString(", ") { it.toString() }.prependIndent(" > ")} |${sql.prependIndent(" > ")} |${result?.let { "-----" }?.prependIndent(" > ") ?: ""} |${result?.columnNames()?.joinToString(" | ")?.prependIndent(" > ") ?: ""} @@ -345,7 +345,7 @@ class Connection( """ |$msg | - |${parameters.map { ":" + it.key + " = " + it.value }.joinToString(", ").prependIndent(" > ") ?: ""} + |${parameters.map { ":" + it.key + " = " + it.value }.joinToString(", ").prependIndent(" > ")} |${sql.prependIndent(" > ")} |${result?.let { "-----" }?.prependIndent(" > ") ?: ""} |${result?.columnNames()?.joinToString(" | ")?.prependIndent(" > ") ?: ""} diff --git a/src/test/kotlin/fr/postgresjson/MigrationTest.kt b/src/test/kotlin/fr/postgresjson/MigrationTest.kt index 6d97a34..2e04a39 100644 --- a/src/test/kotlin/fr/postgresjson/MigrationTest.kt +++ b/src/test/kotlin/fr/postgresjson/MigrationTest.kt @@ -4,9 +4,9 @@ import fr.postgresjson.connexion.Requester import fr.postgresjson.connexion.selectOne import fr.postgresjson.migration.Migration import fr.postgresjson.migration.Migrations +import org.amshove.kluent.invoking import org.amshove.kluent.`should be equal to` import org.amshove.kluent.`should contain` -import org.amshove.kluent.invoking import org.amshove.kluent.shouldThrow import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test