diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 02e92a7..e7facf0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,6 +4,7 @@ plugins { kotlin("jvm") kotlin("kapt") application + idea } dependencies { @@ -18,6 +19,11 @@ dependencies { implementation("com.squareup.moshi:moshi-kotlin:latest.release") kapt("com.squareup.moshi:moshi-kotlin-codegen:latest.release") implementation("com.squareup.okio:okio:latest.release") + + testRuntimeOnly(kotlin("reflect")) + testImplementation("org.spekframework.spek2:spek-dsl-jvm:latest.release") + testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:latest.release") + testImplementation("io.strikt:strikt-core:latest.release") } application { @@ -30,11 +36,19 @@ application { .rename("plugin.*\\.jar", "plugin.jar") } +sourceSets { + test { + resources { + srcDir("$rootDir/fixtures") + } + } +} + tasks { (run) { dependsOn(installDist) doFirst { - jvmArgs = listOf("-Dorg.nixos.gradle2nix.share=${installDist.get().destinationDir.resolve("share")}") + systemProperties("org.nixos.gradle2nix.share" to installDist.get().destinationDir.resolve("share")) } } @@ -45,9 +59,28 @@ tasks { } } + test { + dependsOn(installDist) + doFirst { + systemProperties("org.nixos.gradle2nix.share" to installDist.get().destinationDir.resolve("share")) + } + useJUnitPlatform { + includeEngines("spek2") + } + testLogging { + events("passed", "skipped", "failed") + } + } + withType { kotlinOptions { jvmTarget = "1.8" } } + + idea { + module { + + } + } } diff --git a/app/gradle/dependency-locks/testCompileClasspath.lockfile b/app/gradle/dependency-locks/testCompileClasspath.lockfile index db44383..61b6f15 100644 --- a/app/gradle/dependency-locks/testCompileClasspath.lockfile +++ b/app/gradle/dependency-locks/testCompileClasspath.lockfile @@ -1,11 +1,13 @@ # 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 com.github.ajalt:clikt:2.6.0 com.squareup.moshi:moshi-adapters:1.9.2 com.squareup.moshi:moshi-kotlin:1.9.2 com.squareup.moshi:moshi:1.9.2 com.squareup.okio:okio:2.6.0 +io.strikt:strikt-core:0.25.0 org.gradle:gradle-tooling-api:6.3 org.jetbrains.kotlin:kotlin-reflect:1.3.70 org.jetbrains.kotlin:kotlin-stdlib-common:1.3.70 @@ -13,4 +15,6 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.70 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.70 org.jetbrains.kotlin:kotlin-stdlib:1.3.70 org.jetbrains:annotations:13.0 +org.opentest4j:opentest4j:1.2.0 org.slf4j:slf4j-api:2.0.0-alpha1 +org.spekframework.spek2:spek-dsl-jvm:2.0.10 diff --git a/app/gradle/dependency-locks/testRuntimeClasspath.lockfile b/app/gradle/dependency-locks/testRuntimeClasspath.lockfile index f243603..182add4 100644 --- a/app/gradle/dependency-locks/testRuntimeClasspath.lockfile +++ b/app/gradle/dependency-locks/testRuntimeClasspath.lockfile @@ -1,18 +1,31 @@ # 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 com.github.ajalt:clikt:2.6.0 com.squareup.moshi:moshi-adapters:1.9.2 com.squareup.moshi:moshi-kotlin:1.9.2 com.squareup.moshi:moshi:1.9.2 com.squareup.okio:okio:2.6.0 +io.github.classgraph:classgraph:4.8.37 +io.strikt:strikt-core:0.25.0 net.swiftzer.semver:semver:1.1.1 +org.apiguardian:apiguardian-api:1.1.0 org.gradle:gradle-tooling-api:6.3 -org.jetbrains.kotlin:kotlin-reflect:1.3.70 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.70 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.70 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.70 -org.jetbrains.kotlin:kotlin-stdlib:1.3.70 +org.jetbrains.kotlin:kotlin-reflect:1.3.71 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.71 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.71 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.71 +org.jetbrains.kotlin:kotlin-stdlib:1.3.71 +org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.5 org.jetbrains:annotations:13.0 +org.junit.platform:junit-platform-commons:1.6.0 +org.junit.platform:junit-platform-engine:1.6.0 +org.junit:junit-bom:5.6.0 +org.opentest4j:opentest4j:1.2.0 org.slf4j:slf4j-api:2.0.0-alpha1 org.slf4j:slf4j-simple:2.0.0-alpha1 +org.spekframework.spek2:spek-dsl-jvm:2.0.10 +org.spekframework.spek2:spek-runner-junit5:2.0.10 +org.spekframework.spek2:spek-runtime-jvm:2.0.10 diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt b/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt index 602a7f6..4978ebe 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt @@ -24,7 +24,6 @@ fun ProjectConnection.getBuildModel(config: Config, path: String): DefaultBuild if (config.gradleArgs != null) addArguments(config.gradleArgs) if (path.isNotEmpty()) addArguments("--project-dir=$path") if (!config.quiet) { - setColorOutput(true) setStandardOutput(System.err) setStandardError(System.err) } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt index 797b3f6..afe4c1b 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt @@ -12,7 +12,6 @@ import com.github.ajalt.clikt.parameters.options.default import com.github.ajalt.clikt.parameters.options.flag import com.github.ajalt.clikt.parameters.options.multiple import com.github.ajalt.clikt.parameters.options.option -import com.github.ajalt.clikt.parameters.options.split import com.github.ajalt.clikt.parameters.options.validate import com.github.ajalt.clikt.parameters.types.file import com.squareup.moshi.Moshi @@ -55,7 +54,7 @@ class Main : CliktCommand( private val includes: List by option("--include", "-i", metavar = "DIR", help = "Add an additional project to include") - .file(exists = true, fileOkay = false, folderOkay = true, readable = true) + .file(mustExist = true, canBeFile = false, canBeDir = true, mustBeReadable = true) .multiple() .validate { files -> val failures = files.filterNot { it.isProjectRoot() } @@ -79,12 +78,12 @@ class Main : CliktCommand( } } - private val outDir: File? by option("--out-dir", "-o", + val outDir: File? by option("--out-dir", "-o", metavar = "DIR", help = "Path to write generated files (default: PROJECT-DIR)") - .file(fileOkay = false, folderOkay = true) + .file(canBeFile = false, canBeDir = true) - private val envFile: String by option("--env", "-e", + val envFile: String by option("--env", "-e", metavar = "FILENAME", help = "Prefix for environment files (.json and .nix)") .default("gradle-env") @@ -105,8 +104,11 @@ class Main : CliktCommand( } } + // Visible for testing + lateinit var config: Config + override fun run() { - val config = Config( + config = Config( gradleVersion, gradleArgs, configurations, diff --git a/app/src/test/kotlin/org/nixos/gradle2nix/BuildSrcTest.kt b/app/src/test/kotlin/org/nixos/gradle2nix/BuildSrcTest.kt new file mode 100644 index 0000000..cd82130 --- /dev/null +++ b/app/src/test/kotlin/org/nixos/gradle2nix/BuildSrcTest.kt @@ -0,0 +1,19 @@ +package org.nixos.gradle2nix + +import org.spekframework.spek2.Spek +import org.spekframework.spek2.style.specification.describe +import strikt.api.expectThat +import strikt.assertions.containsKey + +object BuildSrcTest : Spek({ + fixture("buildsrc/plugin-in-buildsrc/kotlin") + val fixture: Fixture by memoized() + + describe("project with plugin in buildSrc") { + fixture.run() + + it("should include buildSrc in gradle env", timeout = 0) { + expectThat(fixture.env()).containsKey("buildSrc") + } + } +}) \ No newline at end of file diff --git a/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt b/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt new file mode 100644 index 0000000..d845198 --- /dev/null +++ b/app/src/test/kotlin/org/nixos/gradle2nix/TestUtil.kt @@ -0,0 +1,57 @@ +package org.nixos.gradle2nix + +import com.squareup.moshi.Moshi +import com.squareup.moshi.Types +import okio.buffer +import okio.source +import org.spekframework.spek2.dsl.Root +import strikt.api.expectThat +import strikt.assertions.exists +import strikt.assertions.isNotNull +import strikt.assertions.toPath +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths + +private val moshi = Moshi.Builder().build() + +class Fixture(val project: Path) { + private val app = Main() + + fun run(vararg args: String) { + app.main(args.toList() + project.toString()) + } + + fun env(): Map { + val file = (app.outDir ?: project.toFile()).resolve("${app.envFile}.json") + expectThat(file).toPath().exists() + val env = file.source().buffer().use { source -> + moshi + .adapter>( + Types.newParameterizedType(Map::class.java, String::class.java, NixGradleEnv::class.java) + ).fromJson(source) + } + expectThat(env).isNotNull() + return env!! + } +} + +fun Root.fixture(name: String) { + val fixture by memoized( + factory = { + val url = checkNotNull(Thread.currentThread().contextClassLoader.getResource(name)?.toURI()) { + "$name: No test fixture found" + } + val fixtureRoot = Paths.get(url) + val dest = createTempDir("gradle2nix").toPath() + val src = checkNotNull(fixtureRoot.takeIf { Files.exists(it) }) { + "$name: Test fixture not found: $fixtureRoot" + } + src.toFile().copyRecursively(dest.toFile()) + Fixture(dest) + }, + destructor = { + it.project.toFile().deleteRecursively() + } + ) +} \ No newline at end of file diff --git a/default.nix b/default.nix index 4716a48..d4fd00d 100644 --- a/default.nix +++ b/default.nix @@ -5,15 +5,34 @@ with pkgs; let buildGradle = pkgs.callPackage ./gradle-env.nix {}; -in buildGradle { - envSpec = ./gradle-env.json; + gradle2nix = buildGradle { + envSpec = ./gradle-env.json; - src = ./.; + src = lib.cleanSourceWith { + filter = lib.cleanSourceFilter; + src = lib.cleanSourceWith { + filter = path: type: let baseName = baseNameOf path; in !( + (type == "directory" && ( + baseName == "build" || + baseName == ".idea" || + baseName == ".gradle" + )) || + (lib.hasSuffix ".iml" baseName) + ); + src = ./.; + }; + }; - gradleFlags = [ "installDist" ]; + gradleFlags = [ "installDist" ]; - installPhase = '' - mkdir -p $out - cp -r app/build/install/gradle2nix/* $out/ - ''; -} + installPhase = '' + mkdir -p $out + cp -r app/build/install/gradle2nix/* $out/ + ''; + + passthru = { + plugin = "${gradle2nix}/share/plugin.jar"; + }; + }; + +in gradle2nix diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts new file mode 100644 index 0000000..62f05d4 --- /dev/null +++ b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/build.gradle.kts @@ -0,0 +1,4 @@ +plugins { + `java-library` + id("com.example.custom-spotless") +} \ No newline at end of file diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts new file mode 100644 index 0000000..cbd39da --- /dev/null +++ b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + `kotlin-dsl` +} + +repositories { + jcenter() + gradlePluginPortal() +} + +dependencies { + implementation("com.diffplug.spotless:spotless-plugin-gradle:3.28.1") +} diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/settings.gradle.kts new file mode 100644 index 0000000..e69de29 diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com.example/custom-spotless.gradle.kts b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com.example/custom-spotless.gradle.kts new file mode 100644 index 0000000..518ad01 --- /dev/null +++ b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/buildSrc/src/main/kotlin/com.example/custom-spotless.gradle.kts @@ -0,0 +1,11 @@ +package com.example + +plugins { + com.diffplug.gradle.spotless +} + +spotless { + kotlin { + ktlint() + } +} \ No newline at end of file diff --git a/fixtures/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts b/fixtures/buildsrc/plugin-in-buildsrc/kotlin/settings.gradle.kts new file mode 100644 index 0000000..e69de29 diff --git a/gradle-env.json b/gradle-env.json index 20b6cd3..4e4932a 100644 --- a/gradle-env.json +++ b/gradle-env.json @@ -1725,6 +1725,38 @@ ], "buildscript": [], "project": [ + { + "id": { + "group": "com.christophsturm", + "name": "filepeek", + "version": "0.1.2", + "type": "jar", + "extension": "jar" + }, + "name": "filepeek-0.1.2.jar", + "path": "com/christophsturm/filepeek/0.1.2", + "urls": [ + "https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.jar", + "https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.jar" + ], + "sha256": "29a5735255bb1f3652a4e2592a2bd8ca754717f8d62eb4a65680c992b98af4b0" + }, + { + "id": { + "group": "com.christophsturm", + "name": "filepeek", + "version": "0.1.2", + "type": "pom", + "extension": "pom" + }, + "name": "filepeek-0.1.2.pom", + "path": "com/christophsturm/filepeek/0.1.2", + "urls": [ + "https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.pom", + "https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.pom" + ], + "sha256": "a01fcc97303305918b3c8e943bc208c5a0d915b8f8fb9c963cddf27cd89e3e57" + }, { "id": { "group": "com.github.ajalt", @@ -2141,6 +2173,70 @@ ], "sha256": "0b7424c3faab3bb5333096e39957f88f8d50ce0c98bfba71a3fcfaa0aaf0552c" }, + { + "id": { + "group": "io.github.classgraph", + "name": "classgraph", + "version": "4.8.37", + "type": "jar", + "extension": "jar" + }, + "name": "classgraph-4.8.37.jar", + "path": "io/github/classgraph/classgraph/4.8.37", + "urls": [ + "https://jcenter.bintray.com/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.jar", + "https://repo.gradle.org/gradle/libs-releases/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.jar" + ], + "sha256": "7d1d3e8828c1eef549d41ef1ece73d2c5c58cfb951b3f220cf0cf1dd25558173" + }, + { + "id": { + "group": "io.github.classgraph", + "name": "classgraph", + "version": "4.8.37", + "type": "pom", + "extension": "pom" + }, + "name": "classgraph-4.8.37.pom", + "path": "io/github/classgraph/classgraph/4.8.37", + "urls": [ + "https://jcenter.bintray.com/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.pom", + "https://repo.gradle.org/gradle/libs-releases/io/github/classgraph/classgraph/4.8.37/classgraph-4.8.37.pom" + ], + "sha256": "a49055d06125786650be33eed77ae985009138b84d39603bc1eb2ed3c8085b34" + }, + { + "id": { + "group": "io.strikt", + "name": "strikt-core", + "version": "0.25.0", + "type": "jar", + "extension": "jar" + }, + "name": "strikt-core-0.25.0.jar", + "path": "io/strikt/strikt-core/0.25.0", + "urls": [ + "https://jcenter.bintray.com/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.jar", + "https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.jar" + ], + "sha256": "111235bef112a049f587104a936c57c79ac9295e55f87e448d3de0ce17b57bc5" + }, + { + "id": { + "group": "io.strikt", + "name": "strikt-core", + "version": "0.25.0", + "type": "pom", + "extension": "pom" + }, + "name": "strikt-core-0.25.0.pom", + "path": "io/strikt/strikt-core/0.25.0", + "urls": [ + "https://jcenter.bintray.com/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.pom", + "https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.pom" + ], + "sha256": "a0f5a066febae2d800e4189df910a8df9fc3917e7293b140ca2a57f5a12b870c" + }, { "id": { "group": "net.swiftzer.semver", @@ -2173,6 +2269,38 @@ ], "sha256": "5d65513ed1a37cc927e4261a1c9f198ea4b033dbf88930358c37b61fe63c00e7" }, + { + "id": { + "group": "org.apiguardian", + "name": "apiguardian-api", + "version": "1.1.0", + "type": "jar", + "extension": "jar" + }, + "name": "apiguardian-api-1.1.0.jar", + "path": "org/apiguardian/apiguardian-api/1.1.0", + "urls": [ + "https://jcenter.bintray.com/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar" + ], + "sha256": "a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4" + }, + { + "id": { + "group": "org.apiguardian", + "name": "apiguardian-api", + "version": "1.1.0", + "type": "pom", + "extension": "pom" + }, + "name": "apiguardian-api-1.1.0.pom", + "path": "org/apiguardian/apiguardian-api/1.1.0", + "urls": [ + "https://jcenter.bintray.com/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom" + ], + "sha256": "a945b9cb5cd9b77b2c711844e659c43ec070ef59d9f509fa9f4c1861b4862711" + }, { "id": { "group": "org.gradle", @@ -2442,6 +2570,38 @@ ], "sha256": "aacae35e5fbb3544af928861da01011306b25a1f0a1a8845b33db2787df856d5" }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.71", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-reflect-1.3.71.jar", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.jar" + ], + "sha256": "59c57ab609494d2a30d6ea3737428a56918ff0b8031081ea73b8472fdec06e44" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.71", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-reflect-1.3.71.pom", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.pom" + ], + "sha256": "4df94aaeee8d900be431386e31ef44e82a66e57c3ae30866aec2875aff01fe70" + }, { "id": { "group": "org.jetbrains.kotlin", @@ -2666,6 +2826,38 @@ ], "sha256": "ff410b15c5738c2e0924ab9611ca59585b7dbec316dc7f47a7d46676bfd15048" }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.71", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-1.3.71.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.jar" + ], + "sha256": "5ace22b102a96425e4ac44e0558b927f3857b56a33cbc289cf1b70aee645e6a7" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.71", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-1.3.71.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.pom" + ], + "sha256": "ff03e9989faa2d40fa4a9098aaad71e247f27ea4d24b0754da642eb0924bd8c5" + }, { "id": { "group": "org.jetbrains.kotlin", @@ -2730,6 +2922,38 @@ ], "sha256": "76162bfcaa756897fd3f631019353e13b128df2318cdad5baecb7e7d428a28e3" }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.71", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-common-1.3.71.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.jar" + ], + "sha256": "974f8a9b7bfce3d730a86efe0eab219a72621e8530f91e30c89f400ba98092ec" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.71", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-common-1.3.71.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.pom" + ], + "sha256": "93f5cb50148dee7da746ed487e6278ee8d94da9a99b670f9f5248456c2f66341" + }, { "id": { "group": "org.jetbrains.kotlin", @@ -2794,6 +3018,38 @@ ], "sha256": "aa51062db8475e4068be20322cc9002cdb06994a026803d395d0e0502d606a0f" }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.71", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk7-1.3.71.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.jar" + ], + "sha256": "b046a5ef54c7006db852e48e547aaff525a9e7a0a5909ffe5fe2c966c1a3a72e" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.71", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk7-1.3.71.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.pom" + ], + "sha256": "7163f88887d050f76f86ad2304f84a9d79c39a96178bf02e4524bdeacc5bb149" + }, { "id": { "group": "org.jetbrains.kotlin", @@ -2826,6 +3082,38 @@ ], "sha256": "559b089df136750907ec2e3eb0838f8f0892eb08d64e877064bffea62f0c467a" }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.71", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk8-1.3.71.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.jar" + ], + "sha256": "a22192ac779ba8eff09d07084ae503e8be9e7c8ca1cb2b511ff8af4c68d83d66" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.71", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk8-1.3.71.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.pom" + ], + "sha256": "daa4f98393b7196473ac7b347618a244d3c7eaa3554b5f86f9cddcce6a4cded6" + }, { "id": { "group": "org.jetbrains.kotlinx", @@ -2858,6 +3146,198 @@ ], "sha256": "6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c" }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.3.5", + "type": "jar", + "extension": "jar" + }, + "name": "kotlinx-coroutines-core-1.3.5.jar", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.jar" + ], + "sha256": "6d3ddc759cd2094b1495198a8501e22a51c4c3d011ec801f5fc45a2cd25b8f11" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.3.5", + "type": "pom", + "extension": "pom" + }, + "name": "kotlinx-coroutines-core-1.3.5.pom", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.pom" + ], + "sha256": "f4a306487c17b8cdca8d3e5da50369a2e5ac7c665200516d427726dff5a56f92" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core-common", + "version": "1.3.3", + "type": "jar", + "extension": "jar" + }, + "name": "kotlinx-coroutines-core-common-1.3.3.jar", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.3", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.3/kotlinx-coroutines-core-common-1.3.3.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.3/kotlinx-coroutines-core-common-1.3.3.jar" + ], + "sha256": "4152d951dc864ebec0dadc348ebc04344df34d7a1de89d59f12824f702b98d28" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core-common", + "version": "1.3.3", + "type": "pom", + "extension": "pom" + }, + "name": "kotlinx-coroutines-core-common-1.3.3.pom", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.3", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.3/kotlinx-coroutines-core-common-1.3.3.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core-common/1.3.3/kotlinx-coroutines-core-common-1.3.3.pom" + ], + "sha256": "77c8b77af4dca3cf23b0bc9c1ae6196866f5e6a9bfced3345747dac85b76e5fa" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-commons", + "version": "1.6.0", + "type": "jar", + "extension": "jar" + }, + "name": "junit-platform-commons-1.6.0.jar", + "path": "org/junit/platform/junit-platform-commons/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-commons/1.6.0/junit-platform-commons-1.6.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-commons/1.6.0/junit-platform-commons-1.6.0.jar" + ], + "sha256": "18accffaf3f1fe66daf9f13daa7d59b2ac6d06396f816a73b4d733d82d28ace6" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-commons", + "version": "1.6.0", + "type": "module", + "extension": "module" + }, + "name": "junit-platform-commons-1.6.0.module", + "path": "org/junit/platform/junit-platform-commons/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-commons/1.6.0/junit-platform-commons-1.6.0.module", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-commons/1.6.0/junit-platform-commons-1.6.0.module" + ], + "sha256": "16e0f6f7893159b21a156b818f32f0a4fdb909d2bdc850ed0c57582500578b4c" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-commons", + "version": "1.6.0", + "type": "pom", + "extension": "pom" + }, + "name": "junit-platform-commons-1.6.0.pom", + "path": "org/junit/platform/junit-platform-commons/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-commons/1.6.0/junit-platform-commons-1.6.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-commons/1.6.0/junit-platform-commons-1.6.0.pom" + ], + "sha256": "5751484ae2a6f661bba84fa8c2aae7d4912c693fe25eb3e0adff4d93824c0a9c" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-engine", + "version": "1.6.0", + "type": "jar", + "extension": "jar" + }, + "name": "junit-platform-engine-1.6.0.jar", + "path": "org/junit/platform/junit-platform-engine/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-engine/1.6.0/junit-platform-engine-1.6.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-engine/1.6.0/junit-platform-engine-1.6.0.jar" + ], + "sha256": "7aed5424cb31a8255daecb1fcb0c173b0b64b1262e1eb2eaf87bbc7aec5e6d76" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-engine", + "version": "1.6.0", + "type": "module", + "extension": "module" + }, + "name": "junit-platform-engine-1.6.0.module", + "path": "org/junit/platform/junit-platform-engine/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-engine/1.6.0/junit-platform-engine-1.6.0.module", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-engine/1.6.0/junit-platform-engine-1.6.0.module" + ], + "sha256": "9fab5f84f549fa7925289ddfe5b7dd88f30e6086a5df1de07ebf508a2df25741" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-engine", + "version": "1.6.0", + "type": "pom", + "extension": "pom" + }, + "name": "junit-platform-engine-1.6.0.pom", + "path": "org/junit/platform/junit-platform-engine/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-engine/1.6.0/junit-platform-engine-1.6.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-engine/1.6.0/junit-platform-engine-1.6.0.pom" + ], + "sha256": "55ed9236c3415cbe1d7b06e76f45508647ecb94bafedb99c3bf395f0913bf3d6" + }, + { + "id": { + "group": "org.opentest4j", + "name": "opentest4j", + "version": "1.2.0", + "type": "jar", + "extension": "jar" + }, + "name": "opentest4j-1.2.0.jar", + "path": "org/opentest4j/opentest4j/1.2.0", + "urls": [ + "https://jcenter.bintray.com/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" + ], + "sha256": "58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2" + }, + { + "id": { + "group": "org.opentest4j", + "name": "opentest4j", + "version": "1.2.0", + "type": "pom", + "extension": "pom" + }, + "name": "opentest4j-1.2.0.pom", + "path": "org/opentest4j/opentest4j/1.2.0", + "urls": [ + "https://jcenter.bintray.com/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" + ], + "sha256": "a96e671816c1ff8803bdec74c9241f025bdfb277da5d2b4ee02266405936f994" + }, { "id": { "group": "org.slf4j", @@ -2956,35 +3436,99 @@ }, { "id": { - "group": "com.christophsturm", - "name": "filepeek", - "version": "0.1.2", + "group": "org.spekframework.spek2", + "name": "spek-dsl-jvm", + "version": "2.0.10", "type": "jar", "extension": "jar" }, - "name": "filepeek-0.1.2.jar", - "path": "com/christophsturm/filepeek/0.1.2", + "name": "spek-dsl-jvm-2.0.10.jar", + "path": "org/spekframework/spek2/spek-dsl-jvm/2.0.10", "urls": [ - "https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.jar", - "https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.jar" + "https://jcenter.bintray.com/org/spekframework/spek2/spek-dsl-jvm/2.0.10/spek-dsl-jvm-2.0.10.jar", + "https://repo.gradle.org/gradle/libs-releases/org/spekframework/spek2/spek-dsl-jvm/2.0.10/spek-dsl-jvm-2.0.10.jar" ], - "sha256": "29a5735255bb1f3652a4e2592a2bd8ca754717f8d62eb4a65680c992b98af4b0" + "sha256": "3663509e0868d61ad652225369d1733e450bf8df548511a2f3be7dc1aab6219c" }, { "id": { - "group": "com.christophsturm", - "name": "filepeek", - "version": "0.1.2", + "group": "org.spekframework.spek2", + "name": "spek-dsl-jvm", + "version": "2.0.10", "type": "pom", "extension": "pom" }, - "name": "filepeek-0.1.2.pom", - "path": "com/christophsturm/filepeek/0.1.2", + "name": "spek-dsl-jvm-2.0.10.pom", + "path": "org/spekframework/spek2/spek-dsl-jvm/2.0.10", "urls": [ - "https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.pom", - "https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.pom" + "https://jcenter.bintray.com/org/spekframework/spek2/spek-dsl-jvm/2.0.10/spek-dsl-jvm-2.0.10.pom", + "https://repo.gradle.org/gradle/libs-releases/org/spekframework/spek2/spek-dsl-jvm/2.0.10/spek-dsl-jvm-2.0.10.pom" ], - "sha256": "a01fcc97303305918b3c8e943bc208c5a0d915b8f8fb9c963cddf27cd89e3e57" + "sha256": "a26f77f7078960926e9a67058226b97190d4ad715adaee4d15927c3058fa6e4e" + }, + { + "id": { + "group": "org.spekframework.spek2", + "name": "spek-runner-junit5", + "version": "2.0.10", + "type": "jar", + "extension": "jar" + }, + "name": "spek-runner-junit5-2.0.10.jar", + "path": "org/spekframework/spek2/spek-runner-junit5/2.0.10", + "urls": [ + "https://jcenter.bintray.com/org/spekframework/spek2/spek-runner-junit5/2.0.10/spek-runner-junit5-2.0.10.jar", + "https://repo.gradle.org/gradle/libs-releases/org/spekframework/spek2/spek-runner-junit5/2.0.10/spek-runner-junit5-2.0.10.jar" + ], + "sha256": "3457afe8fb46361e22bd63b699555c1dbe193d32adaa0f87b41d1d91fbd2885e" + }, + { + "id": { + "group": "org.spekframework.spek2", + "name": "spek-runner-junit5", + "version": "2.0.10", + "type": "pom", + "extension": "pom" + }, + "name": "spek-runner-junit5-2.0.10.pom", + "path": "org/spekframework/spek2/spek-runner-junit5/2.0.10", + "urls": [ + "https://jcenter.bintray.com/org/spekframework/spek2/spek-runner-junit5/2.0.10/spek-runner-junit5-2.0.10.pom", + "https://repo.gradle.org/gradle/libs-releases/org/spekframework/spek2/spek-runner-junit5/2.0.10/spek-runner-junit5-2.0.10.pom" + ], + "sha256": "e75ac3b12905c591fa55578f4ed0233505cc63eaa51df1a1d0543626124100f2" + }, + { + "id": { + "group": "org.spekframework.spek2", + "name": "spek-runtime-jvm", + "version": "2.0.10", + "type": "jar", + "extension": "jar" + }, + "name": "spek-runtime-jvm-2.0.10.jar", + "path": "org/spekframework/spek2/spek-runtime-jvm/2.0.10", + "urls": [ + "https://jcenter.bintray.com/org/spekframework/spek2/spek-runtime-jvm/2.0.10/spek-runtime-jvm-2.0.10.jar", + "https://repo.gradle.org/gradle/libs-releases/org/spekframework/spek2/spek-runtime-jvm/2.0.10/spek-runtime-jvm-2.0.10.jar" + ], + "sha256": "fcc8cb3922950bc50af0bb598241b80cb94547dbeb504b2c5c9a58c9d407d9ce" + }, + { + "id": { + "group": "org.spekframework.spek2", + "name": "spek-runtime-jvm", + "version": "2.0.10", + "type": "pom", + "extension": "pom" + }, + "name": "spek-runtime-jvm-2.0.10.pom", + "path": "org/spekframework/spek2/spek-runtime-jvm/2.0.10", + "urls": [ + "https://jcenter.bintray.com/org/spekframework/spek2/spek-runtime-jvm/2.0.10/spek-runtime-jvm-2.0.10.pom", + "https://repo.gradle.org/gradle/libs-releases/org/spekframework/spek2/spek-runtime-jvm/2.0.10/spek-runtime-jvm-2.0.10.pom" + ], + "sha256": "405bee7923aec86d53377a44843a12392df3f043357ebd21b551c0145953df7d" }, { "id": { @@ -3050,38 +3594,6 @@ ], "sha256": "75d61da98c46d79a3a548a952bd806020f808c75ccd21958a6c791cfbfa0481e" }, - { - "id": { - "group": "io.strikt", - "name": "strikt-core", - "version": "0.25.0", - "type": "jar", - "extension": "jar" - }, - "name": "strikt-core-0.25.0.jar", - "path": "io/strikt/strikt-core/0.25.0", - "urls": [ - "https://jcenter.bintray.com/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.jar", - "https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.jar" - ], - "sha256": "111235bef112a049f587104a936c57c79ac9295e55f87e448d3de0ce17b57bc5" - }, - { - "id": { - "group": "io.strikt", - "name": "strikt-core", - "version": "0.25.0", - "type": "pom", - "extension": "pom" - }, - "name": "strikt-core-0.25.0.pom", - "path": "io/strikt/strikt-core/0.25.0", - "urls": [ - "https://jcenter.bintray.com/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.pom", - "https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.25.0/strikt-core-0.25.0.pom" - ], - "sha256": "a0f5a066febae2d800e4189df910a8df9fc3917e7293b140ca2a57f5a12b870c" - }, { "id": { "group": "org.apache", @@ -3210,38 +3722,6 @@ ], "sha256": "5398b22da433ace2c836f76773d8ff48fa53fa09e2e7a1eba65ff922b03c665e" }, - { - "id": { - "group": "org.apiguardian", - "name": "apiguardian-api", - "version": "1.1.0", - "type": "jar", - "extension": "jar" - }, - "name": "apiguardian-api-1.1.0.jar", - "path": "org/apiguardian/apiguardian-api/1.1.0", - "urls": [ - "https://jcenter.bintray.com/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar" - ], - "sha256": "a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4" - }, - { - "id": { - "group": "org.apiguardian", - "name": "apiguardian-api", - "version": "1.1.0", - "type": "pom", - "extension": "pom" - }, - "name": "apiguardian-api-1.1.0.pom", - "path": "org/apiguardian/apiguardian-api/1.1.0", - "urls": [ - "https://jcenter.bintray.com/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.pom" - ], - "sha256": "a945b9cb5cd9b77b2c711844e659c43ec070ef59d9f509fa9f4c1861b4862711" - }, { "id": { "group": "org.codehaus.plexus", @@ -3386,38 +3866,6 @@ ], "sha256": "d884c57025a8ed03cc697effd6427a4410216f3fe09b8da87e27d64501ee960b" }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-reflect", - "version": "1.3.71", - "type": "jar", - "extension": "jar" - }, - "name": "kotlin-reflect-1.3.71.jar", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.jar" - ], - "sha256": "59c57ab609494d2a30d6ea3737428a56918ff0b8031081ea73b8472fdec06e44" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-reflect", - "version": "1.3.71", - "type": "pom", - "extension": "pom" - }, - "name": "kotlin-reflect-1.3.71.pom", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.71/kotlin-reflect-1.3.71.pom" - ], - "sha256": "4df94aaeee8d900be431386e31ef44e82a66e57c3ae30866aec2875aff01fe70" - }, { "id": { "group": "org.jetbrains.kotlin", @@ -3450,134 +3898,6 @@ ], "sha256": "081f909f3b1803f0e65886a33d318939f82a26da47b001a3453cf104ca7a0fad" }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib", - "version": "1.3.71", - "type": "jar", - "extension": "jar" - }, - "name": "kotlin-stdlib-1.3.71.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.jar" - ], - "sha256": "5ace22b102a96425e4ac44e0558b927f3857b56a33cbc289cf1b70aee645e6a7" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib", - "version": "1.3.71", - "type": "pom", - "extension": "pom" - }, - "name": "kotlin-stdlib-1.3.71.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.71/kotlin-stdlib-1.3.71.pom" - ], - "sha256": "ff03e9989faa2d40fa4a9098aaad71e247f27ea4d24b0754da642eb0924bd8c5" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib-common", - "version": "1.3.71", - "type": "jar", - "extension": "jar" - }, - "name": "kotlin-stdlib-common-1.3.71.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.jar" - ], - "sha256": "974f8a9b7bfce3d730a86efe0eab219a72621e8530f91e30c89f400ba98092ec" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib-common", - "version": "1.3.71", - "type": "pom", - "extension": "pom" - }, - "name": "kotlin-stdlib-common-1.3.71.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.71/kotlin-stdlib-common-1.3.71.pom" - ], - "sha256": "93f5cb50148dee7da746ed487e6278ee8d94da9a99b670f9f5248456c2f66341" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib-jdk7", - "version": "1.3.71", - "type": "jar", - "extension": "jar" - }, - "name": "kotlin-stdlib-jdk7-1.3.71.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.jar" - ], - "sha256": "b046a5ef54c7006db852e48e547aaff525a9e7a0a5909ffe5fe2c966c1a3a72e" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib-jdk7", - "version": "1.3.71", - "type": "pom", - "extension": "pom" - }, - "name": "kotlin-stdlib-jdk7-1.3.71.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.71/kotlin-stdlib-jdk7-1.3.71.pom" - ], - "sha256": "7163f88887d050f76f86ad2304f84a9d79c39a96178bf02e4524bdeacc5bb149" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib-jdk8", - "version": "1.3.71", - "type": "jar", - "extension": "jar" - }, - "name": "kotlin-stdlib-jdk8-1.3.71.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.jar" - ], - "sha256": "a22192ac779ba8eff09d07084ae503e8be9e7c8ca1cb2b511ff8af4c68d83d66" - }, - { - "id": { - "group": "org.jetbrains.kotlin", - "name": "kotlin-stdlib-jdk8", - "version": "1.3.71", - "type": "pom", - "extension": "pom" - }, - "name": "kotlin-stdlib-jdk8-1.3.71.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.71/kotlin-stdlib-jdk8-1.3.71.pom" - ], - "sha256": "daa4f98393b7196473ac7b347618a244d3c7eaa3554b5f86f9cddcce6a4cded6" - }, { "id": { "group": "org.jetbrains.kotlin", @@ -3738,38 +4058,6 @@ ], "sha256": "6636d13600e4d19b5866c182111cc83e716556588bf1ef2f6141b8693495fab6" }, - { - "id": { - "group": "org.jetbrains.kotlinx", - "name": "kotlinx-coroutines-core", - "version": "1.3.5", - "type": "jar", - "extension": "jar" - }, - "name": "kotlinx-coroutines-core-1.3.5.jar", - "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.jar" - ], - "sha256": "6d3ddc759cd2094b1495198a8501e22a51c4c3d011ec801f5fc45a2cd25b8f11" - }, - { - "id": { - "group": "org.jetbrains.kotlinx", - "name": "kotlinx-coroutines-core", - "version": "1.3.5", - "type": "pom", - "extension": "pom" - }, - "name": "kotlinx-coroutines-core-1.3.5.pom", - "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.5/kotlinx-coroutines-core-1.3.5.pom" - ], - "sha256": "f4a306487c17b8cdca8d3e5da50369a2e5ac7c665200516d427726dff5a56f92" - }, { "id": { "group": "org.junit.jupiter", @@ -4058,38 +4346,6 @@ ], "sha256": "29f48a8da87672b5b94b77fa2ce50a0e715e33a510db5f2bff3b29bf4fb8794c" }, - { - "id": { - "group": "org.opentest4j", - "name": "opentest4j", - "version": "1.2.0", - "type": "jar", - "extension": "jar" - }, - "name": "opentest4j-1.2.0.jar", - "path": "org/opentest4j/opentest4j/1.2.0", - "urls": [ - "https://jcenter.bintray.com/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar", - "https://repo.gradle.org/gradle/libs-releases/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" - ], - "sha256": "58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2" - }, - { - "id": { - "group": "org.opentest4j", - "name": "opentest4j", - "version": "1.2.0", - "type": "pom", - "extension": "pom" - }, - "name": "opentest4j-1.2.0.pom", - "path": "org/opentest4j/opentest4j/1.2.0", - "urls": [ - "https://jcenter.bintray.com/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom", - "https://repo.gradle.org/gradle/libs-releases/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" - ], - "sha256": "a96e671816c1ff8803bdec74c9241f025bdfb277da5d2b4ee02266405936f994" - }, { "id": { "group": "org.slf4j", diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt index 7544c4c..6886b32 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt @@ -52,12 +52,12 @@ internal class ConfigurationResolver( private val ivy = Ivy.newInstance(ivySettings) fun resolve(configuration: Configuration): List { - val resolved = configuration.resolvedConfiguration + val resolved = configuration.resolvedConfiguration.lenientConfiguration val topLevelMetadata = resolved.firstLevelModuleDependencies .flatMap { resolveMetadata(it.moduleGroup, it.moduleName, it.moduleVersion) } - val allArtifacts = resolved.resolvedArtifacts + val allArtifacts = resolved.artifacts .filter { it.id.componentIdentifier is ModuleComponentIdentifier } .flatMap(::resolve) @@ -205,7 +205,7 @@ internal class ConfigurationResolver( val seen = mutableSetOf() return generateSequence(listOf(this)) { descs -> val parents = descs.flatMap { it.parentDescriptors(seen) } - seen.addAll(parents.map(ResolvedArtifactResult::id)) + seen.addAll(parents.map(ResolvedArtifactResult::getId)) parents.takeUnless { it.isEmpty() } }.flatten().distinct().toList() } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt index c9f5ea2..2c0420e 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt @@ -10,8 +10,9 @@ internal open class PluginResolver @Inject constructor( ) { private val configurations = pluginDependencyResolutionServices.configurationContainer - private val resolver = ConfigurationResolverFactory(pluginDependencyResolutionServices.resolveRepositoryHandler) - .create(pluginDependencyResolutionServices.dependencyHandler) + private val resolver = ConfigurationResolverFactory( + pluginDependencyResolutionServices.resolveRepositoryHandler + ).create(pluginDependencyResolutionServices.dependencyHandler) fun resolve(pluginRequests: List): List { val markerDependencies = pluginRequests.map {