diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bea1712..5677ea1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,12 +4,10 @@ plugins { kotlin("jvm") kotlin("kapt") application - idea } dependencies { implementation(project(":model")) - implementation(kotlin("stdlib-jdk8")) implementation(kotlin("reflect")) implementation("org.gradle:gradle-tooling-api:${gradle.gradleVersion}") implementation("com.github.ajalt:clikt:latest.release") @@ -75,12 +73,7 @@ tasks { withType { kotlinOptions { jvmTarget = "1.8" - } - } - - idea { - module { - + freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn") } } } diff --git a/app/gradle.lockfile b/app/gradle.lockfile index f5e7eee..968ee4b 100644 --- a/app/gradle.lockfile +++ b/app/gradle.lockfile @@ -6,17 +6,22 @@ com.github.ajalt:clikt:2.8.0=compileClasspath,runtimeClasspath,testCompileClassp com.squareup.moshi:moshi-adapters:1.11.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.moshi:moshi-kotlin:1.11.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup.moshi:moshi:1.11.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.squareup.okio:okio:2.9.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.squareup.okio:okio:3.0.0-alpha.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.github.classgraph:classgraph:4.8.37=testRuntimeClasspath -io.strikt:strikt-core:0.28.1=testCompileClasspath,testRuntimeClasspath +io.strikt:strikt-core:0.28.2=testCompileClasspath,testRuntimeClasspath net.swiftzer.semver:semver:1.1.1=runtimeClasspath,testRuntimeClasspath org.apiguardian:apiguardian-api:1.1.0=testRuntimeClasspath -org.gradle:gradle-tooling-api:6.8-rc-1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-reflect:1.4.20=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.20=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:1.4.20=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.gradle:gradle-tooling-api:6.8.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-reflect:1.4.20=compileClasspath,runtimeClasspath,testCompileClasspath +org.jetbrains.kotlin:kotlin-reflect:1.4.21-2=testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.4.21-2=testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.20=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.21-2=testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21-2=testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.4.20=compileClasspath,runtimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.4.21-2=testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3=testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.4.2=testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2=testRuntimeClasspath @@ -27,7 +32,7 @@ org.junit:junit-bom:5.6.0=testRuntimeClasspath org.opentest4j:opentest4j:1.2.0=testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:2.0.0-alpha1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-simple:2.0.0-alpha1=runtimeClasspath,testRuntimeClasspath -org.spekframework.spek2:spek-dsl-jvm:2.0.14=testCompileClasspath,testRuntimeClasspath -org.spekframework.spek2:spek-runner-junit5:2.0.14=testRuntimeClasspath -org.spekframework.spek2:spek-runtime-jvm:2.0.14=testRuntimeClasspath +org.spekframework.spek2:spek-dsl-jvm:2.0.15=testCompileClasspath,testRuntimeClasspath +org.spekframework.spek2:spek-runner-junit5:2.0.15=testRuntimeClasspath +org.spekframework.spek2:spek-runtime-jvm:2.0.15=testRuntimeClasspath empty= diff --git a/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt b/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt index d845198..99d620c 100644 --- a/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt +++ b/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt @@ -12,6 +12,8 @@ import strikt.assertions.toPath import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths +import kotlin.io.path.ExperimentalPathApi +import kotlin.io.path.createTempDirectory private val moshi = Moshi.Builder().build() @@ -36,6 +38,7 @@ class Fixture(val project: Path) { } } +@OptIn(ExperimentalPathApi::class) fun Root.fixture(name: String) { val fixture by memoized( factory = { @@ -43,7 +46,7 @@ fun Root.fixture(name: String) { "$name: No test fixture found" } val fixtureRoot = Paths.get(url) - val dest = createTempDir("gradle2nix").toPath() + val dest = createTempDirectory("gradle2nix") val src = checkNotNull(fixtureRoot.takeIf { Files.exists(it) }) { "$name: Test fixture not found: $fixtureRoot" } diff --git a/build.gradle.kts b/build.gradle.kts index 7288948..4d61a42 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,20 +1,11 @@ plugins { base - idea - kotlin("jvm") version embeddedKotlinVersion apply false - kotlin("kapt") version embeddedKotlinVersion apply false - id("com.github.johnrengelman.shadow") version "5.2.0" apply false - id("org.ajoberstar.stutter") version "0.5.1" apply false } group = "org.nixos.gradle2nix" version = property("VERSION") ?: "unspecified" subprojects { - repositories { - jcenter() - maven { url = uri("https://repo.gradle.org/gradle/libs-releases") } - } group = rootProject.group version = rootProject.version } @@ -40,7 +31,7 @@ allprojects { file("gradle.lockfile").delete() } doLast { - configurations.matching { it.isCanBeResolved}.all { resolve() } + configurations.matching { it.isCanBeResolved }.all { resolve() } } } } @@ -49,7 +40,7 @@ allprojects { tasks { wrapper { - gradleVersion = "6.8-rc-1"; + gradleVersion = "6.8.1" distributionType = Wrapper.DistributionType.ALL } } diff --git a/gradle.properties b/gradle.properties index 8983f7e..527730c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,6 @@ org.gradle.jvmargs='-Dfile.encoding=UTF-8' VERSION=1.0.0-rc2 + +shadowVersion=6.1.0 +stutterVersion=0.6.0 \ No newline at end of file diff --git a/gradle/dependency-locks/settings-classpath.lockfile b/gradle/dependency-locks/settings-classpath.lockfile new file mode 100644 index 0000000..70eac8e --- /dev/null +++ b/gradle/dependency-locks/settings-classpath.lockfile @@ -0,0 +1,52 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.fasterxml.jackson.core:jackson-annotations:2.12.1 +com.fasterxml.jackson.core:jackson-core:2.12.1 +com.fasterxml.jackson.core:jackson-databind:2.12.1 +com.fasterxml.jackson:jackson-bom:2.12.1 +com.github.gundy:semver4j:0.16.4 +com.github.jengelman.gradle.plugins:shadow:6.1.0 +com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:6.1.0 +com.google.code.gson:gson:2.8.6 +commons-io:commons-io:2.6 +de.undercouch:gradle-download-task:4.0.2 +org.ajoberstar.stutter:org.ajoberstar.stutter.gradle.plugin:0.6.0 +org.ajoberstar:gradle-stutter:0.6.0 +org.antlr:antlr4-runtime:4.5.2-1 +org.apache.ant:ant-launcher:1.9.7 +org.apache.ant:ant:1.9.7 +org.apache.logging.log4j:log4j-api:2.13.3 +org.apache.logging.log4j:log4j-core:2.13.3 +org.codehaus.plexus:plexus-utils:3.0.24 +org.jdom:jdom2:2.0.6 +org.jetbrains.intellij.deps:trove4j:1.0.20181211 +org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.4.20 +org.jetbrains.kotlin.kapt:org.jetbrains.kotlin.kapt.gradle.plugin:1.4.20 +org.jetbrains.kotlin:kotlin-android-extensions:1.4.20 +org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.4.20 +org.jetbrains.kotlin:kotlin-build-common:1.4.20 +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.4.20 +org.jetbrains.kotlin:kotlin-compiler-runner:1.4.20 +org.jetbrains.kotlin:kotlin-daemon-client:1.4.20 +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.4.20 +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.4.20 +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.4.20 +org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20 +org.jetbrains.kotlin:kotlin-reflect:1.4.20 +org.jetbrains.kotlin:kotlin-script-runtime:1.4.20 +org.jetbrains.kotlin:kotlin-scripting-common:1.4.20 +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.4.20 +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.4.20 +org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.20 +org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20 +org.jetbrains.kotlin:kotlin-stdlib:1.4.20 +org.jetbrains.kotlin:kotlin-util-io:1.4.20 +org.jetbrains.kotlin:kotlin-util-klib:1.4.20 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7 +org.jetbrains:annotations:13.0 +org.ow2.asm:asm-analysis:9.0 +org.ow2.asm:asm-commons:9.0 +org.ow2.asm:asm-tree:9.0 +org.ow2.asm:asm:9.0 +org.vafer:jdependency:2.1.1 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 653f11a..1c4bcc2 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.8-rc-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 9e37182..a251786 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -48,6 +48,13 @@ dependencies { compatTestImplementation("io.strikt:strikt-core:latest.release") compatTestImplementation("com.squareup.okio:okio:latest.release") compatTestImplementation("io.javalin:javalin:latest.release") + + testImplementation("io.findify:s3mock_2.12:latest.release") + testImplementation("io.strikt:strikt-core:latest.release") + testImplementation("org.junit.jupiter:junit-jupiter-api:latest.release") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:latest.release") + testImplementation("org.junit.jupiter:junit-jupiter-params:latest.release") + testRuntimeOnly("org.junit.platform:junit-platform-launcher:latest.release") } gradlePlugin { diff --git a/plugin/buildscript-gradle.lockfile b/plugin/buildscript-gradle.lockfile index 7d81eae..99b963e 100644 --- a/plugin/buildscript-gradle.lockfile +++ b/plugin/buildscript-gradle.lockfile @@ -5,8 +5,8 @@ com.github.gundy:semver4j:0.16.4=classpath com.google.code.gson:gson:2.8.6=classpath de.undercouch:gradle-download-task:4.0.2=classpath org.antlr:antlr4-runtime:4.5.2-1=classpath -org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:1.4.4=classpath -org.gradle.kotlin:gradle-kotlin-dsl-plugins:1.4.4=classpath +org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:1.4.9=classpath +org.gradle.kotlin:gradle-kotlin-dsl-plugins:1.4.9=classpath org.jetbrains.intellij.deps:trove4j:1.0.20181211=classpath org.jetbrains.kotlin:kotlin-android-extensions:1.4.20=classpath org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.4.20=classpath diff --git a/plugin/gradle.lockfile b/plugin/gradle.lockfile index 19f17e5..8314290 100644 --- a/plugin/gradle.lockfile +++ b/plugin/gradle.lockfile @@ -1,69 +1,113 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.christophsturm:filepeek:0.1.2=compatTestRuntimeClasspath +com.amazonaws:aws-java-sdk-core:1.11.294=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.amazonaws:aws-java-sdk-kms:1.11.294=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.amazonaws:aws-java-sdk-s3:1.11.294=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.amazonaws:jmespath-java:1.11.294=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.christophsturm:filepeek:0.1.2=compatTestRuntimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.6.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-core:2.6.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.6.7.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.6.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.github.pathikrit:better-files_2.12:3.9.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.google.guava:guava:21.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath com.squareup.moshi:moshi:1.11.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,default,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -com.squareup.okio:okio-metadata:2.9.0=compatTestImplementationDependenciesMetadata +com.squareup.okio:okio-metadata:3.0.0-alpha.1=compatTestImplementationDependenciesMetadata com.squareup.okio:okio:1.17.5=compileClasspath,default,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -com.squareup.okio:okio:2.9.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -dev.minutest:minutest:1.11.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +com.squareup.okio:okio:3.0.0-alpha.1=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +com.typesafe.akka:akka-actor_2.12:2.5.31=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe.akka:akka-http-core_2.12:10.1.12=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe.akka:akka-http_2.12:10.1.12=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe.akka:akka-parsing_2.12:10.1.12=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe.akka:akka-protobuf_2.12:2.5.31=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe.akka:akka-stream_2.12:2.5.31=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe.scala-logging:scala-logging_2.12:3.9.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe:config:1.3.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +com.typesafe:ssl-config-core_2.12:0.3.8=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +commons-codec:commons-codec:1.10=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +commons-logging:commons-logging:1.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +dev.minutest:minutest:2.0.0-alpha=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +io.findify:s3mock_2.12:0.2.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath io.github.classgraph:classgraph:4.8.28=compatTestRuntimeClasspath -io.javalin:javalin:3.12.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -io.strikt:strikt-core:0.28.1=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +io.javalin:javalin:3.13.3=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +io.strikt:strikt-core:0.28.2=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +javax.activation:javax.activation-api:1.2.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath javax.servlet:javax.servlet-api:3.1.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +javax.xml.bind:jaxb-api:2.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +joda-time:joda-time:2.8.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath net.swiftzer.semver:semver:1.1.1=compatTestRuntimeClasspath,default,runtimeClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpclient:4.5.5=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.apache.httpcomponents:httpcore:4.4.9=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.apache.ivy:ivy:2.5.0=compileClasspath,default,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.apache.maven:maven-repository-metadata:3.6.3=compileClasspath,default,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.apiguardian:apiguardian-api:1.1.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata +org.apiguardian:apiguardian-api:1.1.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata org.codehaus.plexus:plexus-utils:3.2.1=compileClasspath,default,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.eclipse.jetty.websocket:websocket-api:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty.websocket:websocket-client:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty.websocket:websocket-common:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty.websocket:websocket-server:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty.websocket:websocket-servlet:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-client:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-http:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-io:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-security:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-server:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-servlet:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-util:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-webapp:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.eclipse.jetty:jetty-xml:9.4.31.v20200723=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.gradle:gradle-tooling-api:6.8-rc-1=compileClasspath,compileOnly,compileOnlyDependenciesMetadata +org.eclipse.jetty.websocket:websocket-api:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty.websocket:websocket-client:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty.websocket:websocket-common:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty.websocket:websocket-server:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty.websocket:websocket-servlet:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-client:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-http:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-io:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-security:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-server:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-servlet:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-util-ajax:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-util:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-webapp:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.eclipse.jetty:jetty-xml:9.4.35.v20201120=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath +org.gradle:gradle-tooling-api:6.8.1=compileClasspath,compileOnly,compileOnlyDependenciesMetadata +org.iq80.leveldb:leveldb-api:0.12=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.iq80.leveldb:leveldb:0.12=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.jetbrains.intellij.deps:trove4j:1.0.20181211=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:1.4.20=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-daemon-embeddable:1.4.20=kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.4.20=kotlinCompilerPluginClasspath org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.4.20=kotlinCompilerPluginClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.4.20=kotlinKlibCommonizerClasspath -org.jetbrains.kotlin:kotlin-reflect:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-reflect:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,testCompileClasspath,testImplementationDependenciesMetadata +org.jetbrains.kotlin:kotlin-reflect:1.4.21-2=compatTestRuntimeClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-sam-with-receiver:1.4.20=kotlinCompilerPluginClasspath org.jetbrains.kotlin:kotlin-script-runtime:1.4.20=kotlinCompilerClasspath,kotlinCompilerPluginClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-common:1.4.20=kotlinCompilerPluginClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.4.20=kotlinCompilerPluginClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.4.20=kotlinCompilerPluginClasspath org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.20=kotlinCompilerPluginClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinCompilerPluginClasspath,kotlinKlibCommonizerClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinCompilerPluginClasspath,kotlinKlibCommonizerClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20=compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinCompilerPluginClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:1.4.21-2=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.20=compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.21-2=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20=compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21-2=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.4.20=compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinCompilerPluginClasspath,kotlinKlibCommonizerClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.4.21-2=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.jetbrains.kotlin:kotlin-test-annotations-common:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath org.jetbrains.kotlin:kotlin-test-common:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath org.jetbrains.kotlin:kotlin-test-junit5:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath org.jetbrains.kotlin:kotlin-test:1.4.20=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.4.2=compatTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.4.2=compatTestRuntimeClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7=kotlinCompilerPluginClasspath -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2=compatTestRuntimeClasspath +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2=compatTestRuntimeClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compileClasspath,compileOnly,compileOnlyDependenciesMetadata,embeddedKotlin,kotlinCompilerClasspath,kotlinCompilerPluginClasspath,kotlinKlibCommonizerClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-api:5.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata -org.junit.jupiter:junit-jupiter-engine:5.7.0=compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata -org.junit.jupiter:junit-jupiter-params:5.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -org.junit.platform:junit-platform-commons:1.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata -org.junit.platform:junit-platform-engine:1.7.0=compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata -org.junit.platform:junit-platform-launcher:1.7.0=compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata -org.junit:junit-bom:5.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata -org.opentest4j:opentest4j:1.2.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata +org.junit.jupiter:junit-jupiter-api:5.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.junit.jupiter:junit-jupiter-engine:5.7.0=compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.junit.jupiter:junit-jupiter-params:5.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.junit.platform:junit-platform-commons:1.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.junit.platform:junit-platform-engine:1.7.0=compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.junit.platform:junit-platform-launcher:1.7.0=compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.junit:junit-bom:5.7.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.opentest4j:opentest4j:1.2.0=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath,compatTestRuntimeOnlyDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath,testRuntimeOnlyDependenciesMetadata +org.reactivestreams:reactive-streams:1.0.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.scala-lang.modules:scala-collection-compat_2.12:2.1.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.scala-lang.modules:scala-java8-compat_2.12:0.8.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.scala-lang.modules:scala-parser-combinators_2.12:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.scala-lang.modules:scala-xml_2.12:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.scala-lang:scala-library:2.12.11=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.scala-lang:scala-reflect:2.12.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +org.slf4j:slf4j-api:1.7.25=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath org.slf4j:slf4j-api:1.7.28=compileClasspath,compileOnly,compileOnlyDependenciesMetadata org.slf4j:slf4j-api:1.7.30=compatTestCompileClasspath,compatTestImplementationDependenciesMetadata,compatTestRuntimeClasspath -empty=annotationProcessor,apiDependenciesMetadata,archives,compatTestAnnotationProcessor,compatTestApiDependenciesMetadata,compatTestCompile,compatTestCompileOnly,compatTestCompileOnlyDependenciesMetadata,compatTestKotlinScriptDef,compatTestKotlinScriptDefExtensions,compatTestRuntime,compile,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtime,runtimeOnlyDependenciesMetadata,shadow,testAnnotationProcessor,testApiDependenciesMetadata,testCompile,testCompileOnly,testCompileOnlyDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions,testRuntime,testRuntimeOnlyDependenciesMetadata +software.amazon.ion:ion-java:1.0.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath +empty=annotationProcessor,apiDependenciesMetadata,archives,compatTestAnnotationProcessor,compatTestApiDependenciesMetadata,compatTestCompile,compatTestCompileOnly,compatTestCompileOnlyDependenciesMetadata,compatTestKotlinScriptDef,compatTestKotlinScriptDefExtensions,compatTestRuntime,compile,kotlinNativeCompilerPluginClasspath,kotlinScriptDef,kotlinScriptDefExtensions,runtime,runtimeOnlyDependenciesMetadata,shadow,testAnnotationProcessor,testApiDependenciesMetadata,testCompile,testCompileOnly,testCompileOnlyDependenciesMetadata,testKotlinScriptDef,testKotlinScriptDefExtensions,testRuntime diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt index 80c15a8..3d3e833 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt @@ -4,6 +4,7 @@ import dev.minutest.Tests import dev.minutest.experimental.minus import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.BINTRAY_JCENTER_URL import org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.MAVEN_CENTRAL_URL import strikt.api.expectThat diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt index 8079ac3..cd60aa7 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt @@ -4,6 +4,7 @@ import dev.minutest.Tests import dev.minutest.experimental.minus import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import strikt.api.expectThat import strikt.assertions.all import strikt.assertions.containsExactly diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt index 7ba7130..3269ce3 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt @@ -3,6 +3,7 @@ package org.nixos.gradle2nix import dev.minutest.Tests import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import strikt.api.expectThat import strikt.assertions.all import strikt.assertions.containsExactly diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt index 47d5b6f..961f505 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt @@ -5,6 +5,7 @@ import dev.minutest.experimental.FOCUS import dev.minutest.experimental.minus import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import strikt.api.expectThat import strikt.assertions.contains import strikt.assertions.containsExactly diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SettingsTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SettingsTest.kt index 4822a8e..568807d 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SettingsTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SettingsTest.kt @@ -3,6 +3,7 @@ package org.nixos.gradle2nix import dev.minutest.Tests import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import strikt.api.expectThat import strikt.assertions.containsExactly diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt index 5cded7d..f0bed36 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt @@ -3,6 +3,7 @@ package org.nixos.gradle2nix import dev.minutest.Tests import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.BINTRAY_JCENTER_URL import strikt.api.expectThat import strikt.assertions.all diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt index 92db71f..4c5fa22 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt @@ -5,9 +5,13 @@ import dev.minutest.ContextBuilder import dev.minutest.MinutestFixture import dev.minutest.Node import dev.minutest.TestContextBuilder -import dev.minutest.closeableFixture +import dev.minutest.afterEach +import dev.minutest.beforeEach import dev.minutest.experimental.SKIP import dev.minutest.experimental.TransformingAnnotation +import dev.minutest.given +import dev.minutest.givenClosable +import dev.minutest.given_ import io.javalin.Javalin import okio.buffer import okio.source @@ -155,8 +159,8 @@ class ProjectFixture(private val parent: TestFixture, private val source: File) fun ContextBuilder<*>.withRepository( name: String, block: TestContextBuilder<*, RepositoryFixture>.() -> Unit -) = derivedContext("with repository: ${name}") { - closeableFixture { +) = derivedContext("with repository: $name") { + givenClosable { RepositoryFixture(Javalin.create { config -> config.addStaticFiles("/repositories/$name") }.start(9999)) @@ -174,9 +178,7 @@ fun ContextBuilder<*>.withFixture( } val fixtureRoot = Paths.get(url).toFile().absoluteFile - deriveFixture { - TestFixture(name, fixtureRoot) - } + given { TestFixture(name, fixtureRoot) } val testRoots = fixtureRoot.listFiles()!! .filter { it.isDirectory } @@ -185,9 +187,9 @@ fun ContextBuilder<*>.withFixture( testRoots.forEach { testRoot -> derivedContext(testRoot.name) { - deriveFixture { ProjectFixture(this, testRoot) } - before { copy() } - after { close() } + given_ { ProjectFixture(it, testRoot) } + beforeEach { copy() } + afterEach { close() } block() } } diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt index 2d8393f..4c08007 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt @@ -3,6 +3,7 @@ package org.nixos.gradle2nix import dev.minutest.Tests import dev.minutest.junit.JUnit5Minutests import dev.minutest.rootContext +import dev.minutest.test import strikt.api.expectThat import strikt.assertions.isEqualTo import java.io.File diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt index fedf833..c8df902 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt @@ -9,7 +9,11 @@ import org.apache.ivy.core.module.id.ArtifactRevisionId import org.apache.ivy.core.module.id.ModuleRevisionId import org.apache.ivy.core.resolve.DownloadOptions import org.apache.ivy.core.settings.IvySettings +import org.apache.ivy.core.settings.TimeoutConstraint +import org.apache.ivy.plugins.repository.Repository +import org.apache.ivy.plugins.repository.url.URLRepository import org.apache.ivy.plugins.repository.url.URLResource +import org.apache.ivy.plugins.resolver.AbstractResolver import org.apache.ivy.plugins.resolver.IBiblioResolver import org.apache.ivy.plugins.resolver.URLResolver import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader @@ -17,13 +21,20 @@ import org.codehaus.plexus.util.ReaderFactory import org.codehaus.plexus.util.xml.pull.XmlPullParserException import org.gradle.api.Project import org.gradle.api.artifacts.repositories.ArtifactRepository +import org.gradle.api.artifacts.repositories.AuthenticationContainer +import org.gradle.api.artifacts.repositories.AuthenticationSupported import org.gradle.api.artifacts.repositories.IvyArtifactRepository import org.gradle.api.artifacts.repositories.MavenArtifactRepository +import org.gradle.api.artifacts.repositories.UrlArtifactRepository +import org.gradle.api.credentials.AwsCredentials import org.gradle.api.internal.artifacts.repositories.ResolutionAwareRepository import org.gradle.api.internal.artifacts.repositories.resolver.IvyResolver import org.gradle.api.logging.Logger import org.gradle.api.logging.Logging +import org.gradle.authentication.aws.AwsImAuthentication +import org.gradle.internal.authentication.AllSchemesAuthentication import java.io.IOException +import java.net.URI import org.apache.ivy.core.module.descriptor.Artifact as IvyArtifact import org.apache.ivy.core.module.descriptor.DefaultArtifact as IvyDefaultArtifact import org.apache.ivy.plugins.resolver.RepositoryResolver as IvyRepositoryResolver @@ -66,6 +77,7 @@ internal class MavenResolver( isM2compatible = true settings = ivySettings setCache(cacheManager(project, scope, ivySettings, repository).name) + setRepository(resolverRepository(repository)) } override fun resolve(artifactId: DefaultArtifactIdentifier, sha256: String?): DefaultArtifact? { @@ -142,6 +154,7 @@ internal class IvyResolver( for (p in ivyResolver.artifactPatterns) addArtifactPattern(p) settings = ivySettings setCache(cacheManager(project, scope, ivySettings, repository).name) + setRepository(resolverRepository(repository)) } override fun resolve(artifactId: DefaultArtifactIdentifier, sha256: String?): DefaultArtifact? { @@ -223,4 +236,39 @@ private fun ArtifactIdentifier.filename( append(".", extension) } -private val downloadOptions = DownloadOptions().apply { log = LogOptions.LOG_QUIET } \ No newline at end of file +private val downloadOptions = DownloadOptions().apply { log = LogOptions.LOG_QUIET } + +private fun AbstractResolver.resolverRepository( + repository: T +) : Repository +where T : UrlArtifactRepository, + T : AuthenticationSupported = + when (val scheme = repository.url.scheme) { + "s3" -> s3Repository(repository.authentication, LazyTimeoutConstraint(this)) + "http", "https" -> URLRepository(LazyTimeoutConstraint(this)) + else -> throw IllegalStateException("Unknown repository URL scheme: $scheme") + } + +private fun s3Repository( + authContainer: AuthenticationContainer, + timeoutConstraint: TimeoutConstraint +): Repository { + val auth = authContainer.firstOrNull { auth -> + auth is AllSchemesAuthentication || auth is AwsImAuthentication + } + checkNotNull(auth) { "S3 resource should either specify AwsImAuthentication or provide some AwsCredentials." } + return S3Repository( + credentials = (auth as? AllSchemesAuthentication)?.credentials as? AwsCredentials, + endpoint = System.getProperty("org.gradle.s3.endpoint")?.let { URI(it) } + ) +} + +private class LazyTimeoutConstraint( + private val resolver: AbstractResolver +) : TimeoutConstraint { + override fun getConnectionTimeout(): Int = + resolver.timeoutConstraint?.connectionTimeout ?: -1 + + override fun getReadTimeout(): Int = + resolver.timeoutConstraint?.readTimeout ?: -1 +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 7bbd5c5..f4d9e82 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,50 @@ +@file:Suppress("UnstableApiUsage") + enableFeaturePreview("ONE_LOCKFILE_PER_PROJECT") +pluginManagement { + val shadowVersion: String by settings + val stutterVersion: String by settings + + resolutionStrategy { + eachPlugin { + when (requested.id.id) { + "com.github.johnrengelman.shadow" -> useVersion(shadowVersion) + "org.ajoberstar.stutter" -> useVersion(stutterVersion) + } + when (requested.id.namespace) { + "org.jetbrains.kotlin", + "org.jetbrains.kotlin.plugin" -> useVersion(embeddedKotlinVersion) + } + } + } +} + +plugins { + kotlin("jvm") apply false + kotlin("kapt") apply false + id("com.github.johnrengelman.shadow") apply false + id("org.ajoberstar.stutter") apply false +} + +dependencyResolutionManagement { + repositories { + jcenter() + maven { url = uri("https://repo.gradle.org/gradle/libs-releases") } + maven { + url = uri("https://dl.bintray.com/ohnosequences/maven") + content { + includeGroup("ohnosequences") + } + } + } + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) +} + +buildscript { + configurations.classpath { + resolutionStrategy.activateDependencyLocking() + } +} + include(":app", ":model", ":plugin")