diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a77f165..02e92a7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,9 +6,6 @@ plugins { application } -group = "org.nixos" -version = "1.0.0-SNAPSHOT" - dependencies { implementation(project(":model")) implementation(kotlin("stdlib-jdk8")) @@ -17,7 +14,6 @@ dependencies { implementation("com.github.ajalt:clikt:latest.release") implementation("org.slf4j:slf4j-api:latest.release") runtimeOnly("org.slf4j:slf4j-simple:latest.release") - implementation("com.squareup.moshi:moshi:latest.release") implementation("com.squareup.moshi:moshi-adapters:latest.release") implementation("com.squareup.moshi:moshi-kotlin:latest.release") kapt("com.squareup.moshi:moshi-kotlin-codegen:latest.release") diff --git a/app/gradle/dependency-locks/compileClasspath.lockfile b/app/gradle/dependency-locks/compileClasspath.lockfile index bdfc5c5..5da6e55 100644 --- a/app/gradle/dependency-locks/compileClasspath.lockfile +++ b/app/gradle/dependency-locks/compileClasspath.lockfile @@ -1,16 +1,16 @@ # 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.github.ajalt:clikt:2.2.0 -com.squareup.moshi:moshi-adapters:1.8.0 -com.squareup.moshi:moshi-kotlin:1.8.0 -com.squareup.moshi:moshi:1.8.0 -com.squareup.okio:okio:2.4.1 -org.gradle:gradle-tooling-api:5.6.2 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.50 +com.github.ajalt:clikt:2.3.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.4.3 +org.gradle:gradle-tooling-api:6.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 org.slf4j:slf4j-api:2.0.0-alpha1 diff --git a/app/gradle/dependency-locks/runtimeClasspath.lockfile b/app/gradle/dependency-locks/runtimeClasspath.lockfile index e2d7dcc..daf70f5 100644 --- a/app/gradle/dependency-locks/runtimeClasspath.lockfile +++ b/app/gradle/dependency-locks/runtimeClasspath.lockfile @@ -1,17 +1,18 @@ # 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.github.ajalt:clikt:2.2.0 -com.squareup.moshi:moshi-adapters:1.8.0 -com.squareup.moshi:moshi-kotlin:1.8.0 -com.squareup.moshi:moshi:1.8.0 -com.squareup.okio:okio:2.4.1 -org.gradle:gradle-tooling-api:5.6.2 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.50 +com.github.ajalt:clikt:2.3.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.4.3 +net.swiftzer.semver:semver:1.1.1 +org.gradle:gradle-tooling-api:6.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 org.slf4j:slf4j-api:2.0.0-alpha1 org.slf4j:slf4j-simple:2.0.0-alpha1 diff --git a/app/gradle/dependency-locks/testCompileClasspath.lockfile b/app/gradle/dependency-locks/testCompileClasspath.lockfile index bdfc5c5..5da6e55 100644 --- a/app/gradle/dependency-locks/testCompileClasspath.lockfile +++ b/app/gradle/dependency-locks/testCompileClasspath.lockfile @@ -1,16 +1,16 @@ # 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.github.ajalt:clikt:2.2.0 -com.squareup.moshi:moshi-adapters:1.8.0 -com.squareup.moshi:moshi-kotlin:1.8.0 -com.squareup.moshi:moshi:1.8.0 -com.squareup.okio:okio:2.4.1 -org.gradle:gradle-tooling-api:5.6.2 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.50 +com.github.ajalt:clikt:2.3.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.4.3 +org.gradle:gradle-tooling-api:6.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 org.slf4j:slf4j-api:2.0.0-alpha1 diff --git a/app/gradle/dependency-locks/testRuntimeClasspath.lockfile b/app/gradle/dependency-locks/testRuntimeClasspath.lockfile index e2d7dcc..daf70f5 100644 --- a/app/gradle/dependency-locks/testRuntimeClasspath.lockfile +++ b/app/gradle/dependency-locks/testRuntimeClasspath.lockfile @@ -1,17 +1,18 @@ # 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.github.ajalt:clikt:2.2.0 -com.squareup.moshi:moshi-adapters:1.8.0 -com.squareup.moshi:moshi-kotlin:1.8.0 -com.squareup.moshi:moshi:1.8.0 -com.squareup.okio:okio:2.4.1 -org.gradle:gradle-tooling-api:5.6.2 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.50 +com.github.ajalt:clikt:2.3.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.4.3 +net.swiftzer.semver:semver:1.1.1 +org.gradle:gradle-tooling-api:6.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 org.slf4j:slf4j-api:2.0.0-alpha1 org.slf4j:slf4j-simple:2.0.0-alpha1 diff --git a/app/src/dist/share/gradle-env.nix b/app/src/dist/share/gradle-env.nix index 91b01cd..9c8c076 100644 --- a/app/src/dist/share/gradle-env.nix +++ b/app/src/dist/share/gradle-env.nix @@ -19,7 +19,7 @@ # ''; # } -{ stdenv, lib, buildEnv, fetchurl, gradleGen, writeText }: +{ stdenv, buildEnv, fetchurl, gradleGen, writeText, writeTextDir }: { envSpec , pname ? null @@ -27,9 +27,18 @@ , enableParallelBuilding ? true , gradleFlags ? [ "build" ] , gradlePackage ? null +, enableDebug ? false , ... } @ args: let + inherit (builtins) + filter sort replaceStrings attrValues match fromJSON + concatStringsSep; + + inherit (stdenv.lib) + versionOlder unique mapAttrs last concatMapStringsSep removeSuffix + optionalString groupBy' readFile hasSuffix; + mkDep = depSpec: stdenv.mkDerivation { inherit (depSpec) name; @@ -41,40 +50,171 @@ let installPhase = '' mkdir -p $out/${depSpec.path} - ln -s $src $out/${depSpec.path}/${depSpec.filename} + ln -s $src $out/${depSpec.path}/${depSpec.name} ''; }; + mkModuleMetadata = deps: + let + ids = filter + (id: id.type == "pom") + (map (dep: dep.id) deps); + + modules = groupBy' + (meta: id: + let + isNewer = versionOlder meta.latest id.version; + isNewerRelease = + !(hasSuffix "-SNAPSHOT" id.version) && + versionOlder meta.release id.version; + in { + groupId = id.group; + artifactId = id.name; + latest = if isNewer then id.version else meta.latest; + release = if isNewerRelease then id.version else meta.release; + versions = meta.versions ++ [id.version]; + } + ) + { + latest = ""; + release = ""; + versions = []; + } + (id: "${replaceStrings ["."] ["/"] id.group}/${id.name}/maven-metadata.xml") + ids; + + in + attrValues (mapAttrs (path: meta: + let + versions' = sort versionOlder (unique meta.versions); + in + with meta; writeTextDir path '' + + + ${groupId} + ${artifactId} + + ${optionalString (latest != "") "${latest}"} + ${optionalString (release != "") "${release}"} + + ${concatMapStringsSep "\n " (v: "${v}") versions'} + + + + '' + ) modules); + + mkSnapshotMetadata = deps: + let + snapshotDeps = filter (dep: dep ? build && dep ? timestamp) deps; + + modules = groupBy' + (meta: dep: + let + id = dep.id; + isNewer = dep.build > meta.buildNumber; + # Timestamp values can be bogus, e.g. jitpack.io + updated = if (match "[0-9]{8}\.[0-9]{6}" dep.timestamp) != null + then replaceStrings ["."] [""] dep.timestamp + else ""; + in { + groupId = id.group; + artifactId = id.name; + version = id.version; + timestamp = if isNewer then dep.timestamp else meta.timestamp; + buildNumber = if isNewer then dep.build else meta.buildNumber; + lastUpdated = if isNewer then updated else meta.lastUpdated; + versions = meta.versions or [] ++ [{ + classifier = id.classifier or ""; + extension = id.extension; + value = "${removeSuffix "-SNAPSHOT" id.version}-${dep.timestamp}-${toString dep.build}"; + updated = updated; + }]; + } + ) + { + timestamp = ""; + buildNumber = -1; + lastUpdated = ""; + } + (dep: "${replaceStrings ["."] ["/"] dep.id.group}/${dep.id.name}/${dep.id.version}/maven-metadata.xml") + snapshotDeps; + + mkSnapshotVersion = version: '' + + ${optionalString (version.classifier != "") "${version.classifier}"} + ${version.extension} + ${version.value} + ${optionalString (version.updated != "") "${version.updated}"} + + ''; + + in + attrValues (mapAttrs (path: meta: + with meta; writeTextDir path '' + + + ${groupId} + ${artifactId} + ${version} + + + ${optionalString (timestamp != "") "${timestamp}"} + ${optionalString (buildNumber != -1) "${toString buildNumber}"} + + ${optionalString (lastUpdated != "") "${lastUpdated}"} + + ${concatMapStringsSep "\n " mkSnapshotVersion versions} + + + + '' + ) modules); + mkRepo = project: type: deps: buildEnv { name = "${project}-gradle-${type}-env"; - paths = map mkDep deps; + paths = map mkDep deps ++ mkModuleMetadata deps ++ mkSnapshotMetadata deps; }; mkInitScript = projectSpec: let - repos = builtins.mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies; + repos = mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies; in writeText "init.gradle" '' + static def offlineRepo(RepositoryHandler repositories, String env, String path) { + repositories.clear() + repositories.maven { + name "Nix''${env.capitalize()}MavenOffline" + url path + metadataSources { + it.gradleMetadata() + it.mavenPom() + it.artifact() + } + } + repositories.ivy { + name "Nix''${env.capitalize()}IvyOffline" + url path + layout "maven" + metadataSources { + it.gradleMetadata() + it.ivyDescriptor() + it.artifact() + } + } + } + gradle.settingsEvaluated { - it.pluginManagement.repositories { - clear() - maven { url = uri("${repos.plugin}") } - } + offlineRepo(it.pluginManagement.repositories, "plugin", "${repos.plugin}") } gradle.projectsLoaded { - allprojects { - buildscript { - repositories { - clear() - maven { url = uri("${repos.buildscript}") } - } + allprojects { + buildscript { + offlineRepo(repositories, "buildscript", "${repos.buildscript}") + } + offlineRepo(repositories, "project", "${repos.project}") } - repositories { - clear() - maven { url = uri("${repos.project}") } - } - } } ''; @@ -95,9 +235,9 @@ let gradle = args.gradlePackage or mkGradle projectSpec.gradle; }; - gradleEnv = builtins.mapAttrs + gradleEnv = mapAttrs (_: p: mkProjectEnv p) - (builtins.fromJSON (builtins.readFile envSpec)); + (fromJSON (readFile envSpec)); projectEnv = gradleEnv.""; pname = args.pname or projectEnv.name; @@ -118,9 +258,10 @@ in stdenv.mkDerivation (args // { "GRADLE_USER_HOME=$(mktemp -d)" \ gradle --offline --no-daemon --no-build-cache \ --info --full-stacktrace --warning-mode=all \ - ${lib.optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ --init-script ${projectEnv.initScript} \ - ${builtins.concatStringsSep " " gradleFlags} + ${concatStringsSep " " gradleFlags} ) runHook postBuild diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Env.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Env.kt index 7912ef4..18ef9e0 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Env.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Env.kt @@ -8,16 +8,7 @@ data class NixGradleEnv( val version: String, val path: String, val gradle: DefaultGradle, - val dependencies: Map> -) - -@JsonClass(generateAdapter = true) -data class Dependency( - val name: String, - val filename: String, - val path: String, - val urls: List, - val sha256: String + val dependencies: Map> ) fun buildEnv(builds: Map): Map = @@ -28,58 +19,31 @@ fun buildEnv(builds: Map): Map = path = path, gradle = build.gradle, dependencies = mapOf( - "plugin" to buildRepo(build.pluginDependencies).values.toList(), - "buildscript" to build.rootProject.collectDependencies(DefaultProject::buildscriptDependencies) - .values.toList(), + "plugin" to build.pluginDependencies, + "buildscript" to build.rootProject.collectDependencies(DefaultProject::buildscriptDependencies), "project" to build.rootProject.collectDependencies(DefaultProject::projectDependencies) - .values.toList() ) ) } -private fun DefaultProject.collectDependencies(chooser: DefaultProject.() -> DefaultDependencies): Map { - val result = mutableMapOf() - mergeRepo(result, buildRepo(chooser())) +private fun DefaultProject.collectDependencies( + chooser: DefaultProject.() -> List +): List { + val result = mutableMapOf() + mergeRepo(result, chooser()) for (child in children) { mergeRepo(result, child.collectDependencies(chooser)) } - return result + return result.values.toList() } -private fun buildRepo(deps: DefaultDependencies): Map = - deps.artifacts.associate { artifact -> - val name = with(artifact) { - buildString { - append("$groupId-$artifactId-$version") - if (classifier.isNotEmpty()) append("-$classifier") - append("-$extension") - replace(Regex("[^A-Za-z0-9+\\-._?=]"), "_") - } - } - val filename = with(artifact) { - buildString { - append("$artifactId-$version") - if (classifier.isNotEmpty()) append("-$classifier") - append(".$extension") - } - } - val path = with(artifact) { "${groupId.replace(".", "/")}/$artifactId/$version" } - val dep = Dependency( - name = name, - filename = filename, - path = path, - urls = deps.repositories.maven.flatMap { repo -> - repo.urls.map { "${it.removeSuffix("/")}/$path/$filename" } - }, - sha256 = artifact.sha256 - ) - artifact to dep - } - -private fun mergeRepo(base: MutableMap, extra: Map) { - extra.forEach { (artifact, dep) -> - base.merge(artifact, dep) { old, new -> - old.copy(urls = old.urls + (new.urls - old.urls)) +private fun mergeRepo( + base: MutableMap, + extra: List +) { + extra.forEach { artifact -> + base.merge(artifact.id, artifact) { old, new -> + old.copy(urls = old.urls.union(new.urls).toList()) } } } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt b/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt index ad22547..602a7f6 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/GradleRunner.kt @@ -13,24 +13,20 @@ fun connect(config: Config): ProjectConnection = .forProjectDirectory(config.projectDir) .connect() +@Suppress("UnstableApiUsage") fun ProjectConnection.getBuildModel(config: Config, path: String): DefaultBuild { - val arguments = mutableListOf( - "--init-script=$shareDir/init.gradle", - "-Dorg.nixos.gradle2nix.configurations='${config.configurations.joinToString(",")}'" - ) - - if (path.isNotEmpty()) { - arguments += "--project-dir=$path" - } - - return model(Build::class.java) - .withArguments(arguments) - .apply { - if (!config.quiet) { - setStandardOutput(System.err) - setStandardError(System.err) - } + return model(Build::class.java).apply { + addArguments( + "--init-script=$shareDir/init.gradle", + "-Porg.nixos.gradle2nix.configurations=${config.configurations.joinToString(",")}", + "-Porg.nixos.gradle2nix.subprojects=${config.subprojects.joinToString(",")}" + ) + 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) } - .get() - .let { DefaultBuild(it) } + }.get().let { DefaultBuild(it) } } diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt index eca8b32..949249a 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Logger.kt @@ -4,7 +4,8 @@ import java.io.PrintStream class Logger( val out: PrintStream = System.err, - val verbose: Boolean) { + val verbose: Boolean +) { val log: (String) -> Unit = { if (verbose) out.println(it) } val warn: (String) -> Unit = { out.println("Warning: $it")} diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt index a703371..797b3f6 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt @@ -8,7 +8,12 @@ import com.github.ajalt.clikt.parameters.arguments.ProcessedArgument import com.github.ajalt.clikt.parameters.arguments.argument import com.github.ajalt.clikt.parameters.arguments.convert import com.github.ajalt.clikt.parameters.arguments.default -import com.github.ajalt.clikt.parameters.options.* +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 import com.squareup.moshi.Types @@ -20,9 +25,11 @@ val shareDir: String = System.getProperty("org.nixos.gradle2nix.share") data class Config( val gradleVersion: String?, + val gradleArgs: String?, val configurations: List, val projectDir: File, val includes: List, + val subprojects: List, val buildSrc: Boolean, val quiet: Boolean ) { @@ -36,6 +43,10 @@ class Main : CliktCommand( metavar = "VERSION", help = "Use a specific Gradle version") + private val gradleArgs: String? by option("--gradle-args", "-a", + metavar = "ARGS", + help = "Extra arguments to pass to Gradle") + private val configurations: List by option("--configuration", "-c", metavar = "NAME", help = "Add a configuration to resolve (default: all configurations)") @@ -55,6 +66,19 @@ class Main : CliktCommand( } } + private val subprojects: List by option("--project", "-p", + metavar = "PATH", + help = "Only resolve these subproject paths, e.g. ':', or ':sub:project' (default: all projects)") + .multiple() + .validate { paths -> + val failures = paths.filterNot { it.startsWith(":") } + if (failures.isNotEmpty()) { + val message = failures.joinToString("\n ") + fail("Subproject paths must be absolute:\n$message\n" + + "Paths are in the form ':parent:child'.") + } + } + private val outDir: File? by option("--out-dir", "-o", metavar = "DIR", help = "Path to write generated files (default: PROJECT-DIR)") @@ -82,7 +106,16 @@ class Main : CliktCommand( } override fun run() { - val config = Config(gradleVersion, configurations, projectDir, includes, buildSrc, quiet) + val config = Config( + gradleVersion, + gradleArgs, + configurations, + projectDir, + includes, + subprojects, + buildSrc, + quiet + ) val (log, _, _) = Logger(verbose = !config.quiet) val paths = resolveProjects(config).map { p -> diff --git a/build.gradle.kts b/build.gradle.kts index 115d4d0..0c5440c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,15 +3,20 @@ plugins { idea kotlin("jvm") version embeddedKotlinVersion apply false kotlin("kapt") version embeddedKotlinVersion apply false - id("com.github.johnrengelman.shadow") version "5.1.0" apply false - id("org.ajoberstar.stutter") version "0.5.0" 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 } allprojects { @@ -45,7 +50,7 @@ allprojects { tasks { wrapper { - gradleVersion = "5.6.2" + gradleVersion = "6.1" distributionType = Wrapper.DistributionType.ALL } } diff --git a/fixtures/basic/basic-java-project/groovy/build.gradle b/fixtures/basic/basic-java-project/groovy/build.gradle new file mode 100644 index 0000000..e0f793a --- /dev/null +++ b/fixtures/basic/basic-java-project/groovy/build.gradle @@ -0,0 +1,13 @@ +plugins { + id 'java' +} + +repositories { + jcenter() + mavenCentral() +} + +dependencies { + implementation 'com.squareup.okio:okio:2.2.2' + implementation 'com.squareup.moshi:moshi:1.8.0' +} diff --git a/fixtures/basic/basic-java-project/kotlin/build.gradle.kts b/fixtures/basic/basic-java-project/kotlin/build.gradle.kts new file mode 100644 index 0000000..59670f1 --- /dev/null +++ b/fixtures/basic/basic-java-project/kotlin/build.gradle.kts @@ -0,0 +1,13 @@ +plugins { + java +} + +repositories { + jcenter() + mavenCentral() +} + +dependencies { + implementation("com.squareup.okio:okio:2.2.2") + implementation("com.squareup.moshi:moshi:1.8.0") +} diff --git a/fixtures/dependency/classifier/groovy/build.gradle b/fixtures/dependency/classifier/groovy/build.gradle new file mode 100644 index 0000000..d3889d4 --- /dev/null +++ b/fixtures/dependency/classifier/groovy/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'java' +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'com.badlogicgames.gdx:gdx-platform:1.9.9:natives-desktop' +} \ No newline at end of file diff --git a/fixtures/dependency/classifier/kotlin/build.gradle.kts b/fixtures/dependency/classifier/kotlin/build.gradle.kts new file mode 100644 index 0000000..e195487 --- /dev/null +++ b/fixtures/dependency/classifier/kotlin/build.gradle.kts @@ -0,0 +1,11 @@ +plugins { + java +} + +repositories { + mavenCentral() +} + +dependencies { + implementation("com.badlogicgames.gdx:gdx-platform:1.9.9:natives-desktop") +} \ No newline at end of file diff --git a/fixtures/dependency/dynamic-snapshot/groovy/build.gradle b/fixtures/dependency/dynamic-snapshot/groovy/build.gradle new file mode 100644 index 0000000..a2a9953 --- /dev/null +++ b/fixtures/dependency/dynamic-snapshot/groovy/build.gradle @@ -0,0 +1,12 @@ +plugins { + id 'java' +} + +repositories { + jcenter() + maven { url 'https://jitpack.io' } +} + +dependencies { + implementation 'com.github.anuken:packr:-SNAPSHOT' +} \ No newline at end of file diff --git a/fixtures/dependency/snapshot/groovy/build.gradle b/fixtures/dependency/snapshot/groovy/build.gradle new file mode 100644 index 0000000..3c75776 --- /dev/null +++ b/fixtures/dependency/snapshot/groovy/build.gradle @@ -0,0 +1,12 @@ +plugins { + id "java" +} + +repositories { + mavenCentral() + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } +} + +dependencies { + implementation "com.squareup.okio:okio:2.5.0-SNAPSHOT" +} \ No newline at end of file diff --git a/fixtures/dependency/snapshot/kotlin/build.gradle.kts b/fixtures/dependency/snapshot/kotlin/build.gradle.kts new file mode 100644 index 0000000..fa5622d --- /dev/null +++ b/fixtures/dependency/snapshot/kotlin/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + java +} + +repositories { + mavenCentral() + maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") } +} + +dependencies { + "implementation"("com.squareup.okio:okio:2.5.0-SNAPSHOT") +} diff --git a/fixtures/ivy/basic/kotlin/build.gradle.kts b/fixtures/ivy/basic/kotlin/build.gradle.kts new file mode 100644 index 0000000..871283a --- /dev/null +++ b/fixtures/ivy/basic/kotlin/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + java +} + +repositories { + ivy { + url = uri("https://asset.opendof.org") + layout("pattern") { + this as IvyPatternRepositoryLayout + ivy("ivy2/[organisation]/[module]/[revision]/ivy(.[platform]).xml") + artifact("artifact/[organisation]/[module]/[revision](/[platform])(/[type]s)/[artifact]-[revision](-[classifier]).[ext]") + } + } +} + +dependencies { + dependencies { + implementation("org.opendof.core-java:dof-cipher-sms4:1.0") + } +} \ No newline at end of file diff --git a/fixtures/plugin/resolves-from-default-repo/groovy/build.gradle b/fixtures/plugin/resolves-from-default-repo/groovy/build.gradle new file mode 100644 index 0000000..029a04c --- /dev/null +++ b/fixtures/plugin/resolves-from-default-repo/groovy/build.gradle @@ -0,0 +1,7 @@ +plugins { + id "org.jetbrains.kotlin.jvm" version "1.3.50" +} + +repositories { + jcenter() +} diff --git a/fixtures/plugin/resolves-from-default-repo/kotlin/build.gradle.kts b/fixtures/plugin/resolves-from-default-repo/kotlin/build.gradle.kts new file mode 100644 index 0000000..b4bfb93 --- /dev/null +++ b/fixtures/plugin/resolves-from-default-repo/kotlin/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + kotlin("jvm") version "1.3.50" +} + +repositories { + jcenter() +} diff --git a/fixtures/subprojects/dependent-subprojects/groovy/build.gradle b/fixtures/subprojects/dependent-subprojects/groovy/build.gradle new file mode 100644 index 0000000..f924346 --- /dev/null +++ b/fixtures/subprojects/dependent-subprojects/groovy/build.gradle @@ -0,0 +1,15 @@ +subprojects { + apply plugin: 'java' +} + +project(':child-a') { + dependencies { + implementation project(':child-b') + } +} + +project(':child-b') { + dependencies { + implementation project(':child-c') + } +} \ No newline at end of file diff --git a/fixtures/subprojects/dependent-subprojects/groovy/child-a/build.gradle b/fixtures/subprojects/dependent-subprojects/groovy/child-a/build.gradle new file mode 100644 index 0000000..e69de29 diff --git a/fixtures/subprojects/dependent-subprojects/groovy/child-b/build.gradle b/fixtures/subprojects/dependent-subprojects/groovy/child-b/build.gradle new file mode 100644 index 0000000..e69de29 diff --git a/fixtures/subprojects/dependent-subprojects/groovy/child-c/build.gradle b/fixtures/subprojects/dependent-subprojects/groovy/child-c/build.gradle new file mode 100644 index 0000000..e69de29 diff --git a/fixtures/subprojects/dependent-subprojects/groovy/child-d/build.gradle b/fixtures/subprojects/dependent-subprojects/groovy/child-d/build.gradle new file mode 100644 index 0000000..e69de29 diff --git a/fixtures/subprojects/dependent-subprojects/groovy/settings.gradle b/fixtures/subprojects/dependent-subprojects/groovy/settings.gradle new file mode 100644 index 0000000..e7cf411 --- /dev/null +++ b/fixtures/subprojects/dependent-subprojects/groovy/settings.gradle @@ -0,0 +1 @@ +include ':child-a', ':child-b', ':child-c', ':child-d' \ No newline at end of file diff --git a/fixtures/subprojects/multi-module/groovy/build.gradle b/fixtures/subprojects/multi-module/groovy/build.gradle new file mode 100644 index 0000000..91d2f34 --- /dev/null +++ b/fixtures/subprojects/multi-module/groovy/build.gradle @@ -0,0 +1,13 @@ +plugins { + id 'java' +} + +allprojects { + repositories { + jcenter() + } +} + +dependencies { + testImplementation 'junit:junit:4.12' +} \ No newline at end of file diff --git a/fixtures/subprojects/multi-module/groovy/child-a/build.gradle b/fixtures/subprojects/multi-module/groovy/child-a/build.gradle new file mode 100644 index 0000000..2fed971 --- /dev/null +++ b/fixtures/subprojects/multi-module/groovy/child-a/build.gradle @@ -0,0 +1,7 @@ +plugins { + id 'java' +} + +dependencies { + implementation 'com.squareup.okio:okio:2.2.2' +} \ No newline at end of file diff --git a/fixtures/subprojects/multi-module/groovy/child-b/build.gradle b/fixtures/subprojects/multi-module/groovy/child-b/build.gradle new file mode 100644 index 0000000..3c41b0a --- /dev/null +++ b/fixtures/subprojects/multi-module/groovy/child-b/build.gradle @@ -0,0 +1,8 @@ +plugins { + id 'java' +} + +dependencies { + implementation project(':child-a') + implementation 'com.squareup.moshi:moshi:1.8.0' +} \ No newline at end of file diff --git a/fixtures/subprojects/multi-module/groovy/settings.gradle b/fixtures/subprojects/multi-module/groovy/settings.gradle new file mode 100644 index 0000000..188b990 --- /dev/null +++ b/fixtures/subprojects/multi-module/groovy/settings.gradle @@ -0,0 +1 @@ +include ':child-a', ':child-b' \ No newline at end of file diff --git a/fixtures/subprojects/multi-module/kotlin/build.gradle.kts b/fixtures/subprojects/multi-module/kotlin/build.gradle.kts new file mode 100644 index 0000000..ba82c83 --- /dev/null +++ b/fixtures/subprojects/multi-module/kotlin/build.gradle.kts @@ -0,0 +1,13 @@ +plugins { + java +} + +allprojects { + repositories { + jcenter() + } +} + +dependencies { + testImplementation("junit:junit:4.12") +} diff --git a/fixtures/subprojects/multi-module/kotlin/child-a/build.gradle.kts b/fixtures/subprojects/multi-module/kotlin/child-a/build.gradle.kts new file mode 100644 index 0000000..b98236a --- /dev/null +++ b/fixtures/subprojects/multi-module/kotlin/child-a/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + java +} + +dependencies { + implementation("com.squareup.okio:okio:2.2.2") +} diff --git a/fixtures/subprojects/multi-module/kotlin/child-b/build.gradle.kts b/fixtures/subprojects/multi-module/kotlin/child-b/build.gradle.kts new file mode 100644 index 0000000..7b27bde --- /dev/null +++ b/fixtures/subprojects/multi-module/kotlin/child-b/build.gradle.kts @@ -0,0 +1,8 @@ +plugins { + java +} + +dependencies { + implementation(project(":child-a")) + implementation("com.squareup.moshi:moshi:1.8.0") +} diff --git a/fixtures/subprojects/multi-module/kotlin/settings.gradle.kts b/fixtures/subprojects/multi-module/kotlin/settings.gradle.kts new file mode 100644 index 0000000..746f7ca --- /dev/null +++ b/fixtures/subprojects/multi-module/kotlin/settings.gradle.kts @@ -0,0 +1 @@ +include(":child-a", ":child-b") \ No newline at end of file diff --git a/gradle-env.json b/gradle-env.json index 3102947..197f319 100644 --- a/gradle-env.json +++ b/gradle-env.json @@ -1,164 +1,221 @@ { "": { "name": "gradle2nix", - "version": "unspecified", + "version": "1.0.0-rc1", "path": "", "gradle": { - "version": "5.6.2", + "version": "6.1", "type": "all", - "url": "https://services.gradle.org/distributions/gradle-5.6.2-all.zip", - "sha256": "027fdd265d277bae65a0d349b6b8da02135b0b8e14ba891e26281fa877fe37a2", - "nativeVersion": "0.18" + "url": "https://services.gradle.org/distributions/gradle-6.1-all.zip", + "sha256": "634f972af958e3c753aeb42d7a688fab6820b527a0aef9eed03d7f3f6f9c7c06", + "nativeVersion": "0.19" }, "dependencies": { "plugin": [ { - "name": "com.fasterxml.jackson.core-jackson-annotations-2.9.0-jar", - "filename": "jackson-annotations-2.9.0.jar", - "path": "com/fasterxml/jackson/core/jackson-annotations/2.9.0", + "id": { + "group": "com.fasterxml", + "name": "oss-parent", + "version": "38", + "type": "pom", + "extension": "pom" + }, + "name": "oss-parent-38.pom", + "path": "com/fasterxml/oss-parent/38", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar" + "https://plugins.gradle.org/m2/com/fasterxml/oss-parent/38/oss-parent-38.pom" ], - "sha256": "45d32ac61ef8a744b464c54c2b3414be571016dd46bfc2bec226761cf7ae457a" + "sha256": "c83f8f45dfdca8d0b6b3661c60b3f84780f671b12e06f91ad5d1c1a1d1f966e8" }, { - "name": "com.fasterxml.jackson.core-jackson-annotations-2.9.0-pom", - "filename": "jackson-annotations-2.9.0.pom", - "path": "com/fasterxml/jackson/core/jackson-annotations/2.9.0", + "id": { + "group": "com.fasterxml.jackson", + "name": "jackson-base", + "version": "2.10.2", + "type": "pom", + "extension": "pom" + }, + "name": "jackson-base-2.10.2.pom", + "path": "com/fasterxml/jackson/jackson-base/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-base/2.10.2/jackson-base-2.10.2.pom" ], - "sha256": "edeb9d9bfca726b441bfae09b69d94b5db99cd5a9da5f4a061b90e72b640905c" + "sha256": "7e3ef56ce1edbb723f7fc3712f6c8689f4bc06f564125c75a6d658d023bdec56" }, { - "name": "com.fasterxml.jackson.core-jackson-core-2.9.8-jar", - "filename": "jackson-core-2.9.8.jar", - "path": "com/fasterxml/jackson/core/jackson-core/2.9.8", + "id": { + "group": "com.fasterxml.jackson", + "name": "jackson-bom", + "version": "2.10.2", + "type": "pom", + "extension": "pom" + }, + "name": "jackson-bom-2.10.2.pom", + "path": "com/fasterxml/jackson/jackson-bom/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-core/2.9.8/jackson-core-2.9.8.jar" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-bom/2.10.2/jackson-bom-2.10.2.pom" ], - "sha256": "d934dab0bd48994eeea2c1b493cb547158a338a80b58c4fbc8e85fb0905e105f" + "sha256": "a250e4a602054dfaf9ee9655afb7d603539226c97327bf237ecd8b3e172eb90f" }, { - "name": "com.fasterxml.jackson.core-jackson-core-2.9.8-pom", - "filename": "jackson-core-2.9.8.pom", - "path": "com/fasterxml/jackson/core/jackson-core/2.9.8", + "id": { + "group": "com.fasterxml.jackson", + "name": "jackson-parent", + "version": "2.10", + "type": "pom", + "extension": "pom" + }, + "name": "jackson-parent-2.10.pom", + "path": "com/fasterxml/jackson/jackson-parent/2.10", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-core/2.9.8/jackson-core-2.9.8.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-parent/2.10/jackson-parent-2.10.pom" ], - "sha256": "956d42cfdb8465531bcfa9974a36c57944c7542e37aaee881413370c3190031f" + "sha256": "a50db80829c4f897c6d0e7e95472cbb43b0ebece135a68e39c27b8a6fe33e481" }, { - "name": "com.fasterxml.jackson.core-jackson-databind-2.9.8-jar", - "filename": "jackson-databind-2.9.8.jar", - "path": "com/fasterxml/jackson/core/jackson-databind/2.9.8", + "id": { + "group": "com.fasterxml.jackson.core", + "name": "jackson-annotations", + "version": "2.10.2", + "type": "jar", + "extension": "jar" + }, + "name": "jackson-annotations-2.10.2.jar", + "path": "com/fasterxml/jackson/core/jackson-annotations/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8.jar" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-annotations/2.10.2/jackson-annotations-2.10.2.jar" ], - "sha256": "2351c3eba73a545db9079f5d6d768347ad72666537362c8220fe3e950a55a864" + "sha256": "8c3cba89bf3e03b35a0e6f892c2eb17ed8fdde2e214c3a4c18703d63796bae46" }, { - "name": "com.fasterxml.jackson.core-jackson-databind-2.9.8-pom", - "filename": "jackson-databind-2.9.8.pom", - "path": "com/fasterxml/jackson/core/jackson-databind/2.9.8", + "id": { + "group": "com.fasterxml.jackson.core", + "name": "jackson-annotations", + "version": "2.10.2", + "type": "pom", + "extension": "pom" + }, + "name": "jackson-annotations-2.10.2.pom", + "path": "com/fasterxml/jackson/core/jackson-annotations/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-annotations/2.10.2/jackson-annotations-2.10.2.pom" ], - "sha256": "90e39a0ce673add76a71fa20193c0c0670237ab43b2a625ecdf569c676d11bd9" + "sha256": "7f64965efd25dbc10791e90735b6636deb787cd718d302e0906e54aa7adec3ea" }, { - "name": "com.fasterxml.jackson-jackson-base-2.9.8-pom", - "filename": "jackson-base-2.9.8.pom", - "path": "com/fasterxml/jackson/jackson-base/2.9.8", + "id": { + "group": "com.fasterxml.jackson.core", + "name": "jackson-core", + "version": "2.10.2", + "type": "jar", + "extension": "jar" + }, + "name": "jackson-core-2.10.2.jar", + "path": "com/fasterxml/jackson/core/jackson-core/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-base/2.9.8/jackson-base-2.9.8.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-core/2.10.2/jackson-core-2.10.2.jar" ], - "sha256": "691d53065da1b522beaf0fd0d13226df56c4edbba6aa69b657cbe1a7ef496223" + "sha256": "4c41f22a48f6ebb28752baeb6d25bf09ba4ff0ad8bfb82650dde448928b9da4f" }, { - "name": "com.fasterxml.jackson-jackson-bom-2.9.8-pom", - "filename": "jackson-bom-2.9.8.pom", - "path": "com/fasterxml/jackson/jackson-bom/2.9.8", + "id": { + "group": "com.fasterxml.jackson.core", + "name": "jackson-core", + "version": "2.10.2", + "type": "pom", + "extension": "pom" + }, + "name": "jackson-core-2.10.2.pom", + "path": "com/fasterxml/jackson/core/jackson-core/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-bom/2.9.8/jackson-bom-2.9.8.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-core/2.10.2/jackson-core-2.10.2.pom" ], - "sha256": "fbee567358aa7b6a10a0b59c75a11adfdb128a3a7ddc4f409ea7109b34b451f9" + "sha256": "325a3c94d924af0f6ceacca40e9e887a188864c153f9fc34ce9c4f013da8828e" }, { - "name": "com.fasterxml.jackson-jackson-parent-2.9.0-pom", - "filename": "jackson-parent-2.9.0.pom", - "path": "com/fasterxml/jackson/jackson-parent/2.9.0", + "id": { + "group": "com.fasterxml.jackson.core", + "name": "jackson-databind", + "version": "2.10.2", + "type": "jar", + "extension": "jar" + }, + "name": "jackson-databind-2.10.2.jar", + "path": "com/fasterxml/jackson/core/jackson-databind/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-parent/2.9.0/jackson-parent-2.9.0.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-databind/2.10.2/jackson-databind-2.10.2.jar" ], - "sha256": "000508b61dd124387e58199fb9e2113c1b5d8b386c5bf7a891b2de6041eb1d52" + "sha256": "42c25644e35fadfbded1b7f35a8d1e70a86737f190e43aa2c56cea4b96cbda88" }, { - "name": "com.fasterxml.jackson-jackson-parent-2.9.1.2-pom", - "filename": "jackson-parent-2.9.1.2.pom", - "path": "com/fasterxml/jackson/jackson-parent/2.9.1.2", + "id": { + "group": "com.fasterxml.jackson.core", + "name": "jackson-databind", + "version": "2.10.2", + "type": "pom", + "extension": "pom" + }, + "name": "jackson-databind-2.10.2.pom", + "path": "com/fasterxml/jackson/core/jackson-databind/2.10.2", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-parent/2.9.1.2/jackson-parent-2.9.1.2.pom" + "https://plugins.gradle.org/m2/com/fasterxml/jackson/core/jackson-databind/2.10.2/jackson-databind-2.10.2.pom" ], - "sha256": "9517e405c6b3b8a035215ad5727013a3519eb7591743fe1dcc04df6635683cf9" + "sha256": "64f8800dfe5b9b608ed47a74df73c4c2445a8916ba6bfa2cfbb70181f2130178" }, { - "name": "com.fasterxml-oss-parent-28-pom", - "filename": "oss-parent-28.pom", - "path": "com/fasterxml/oss-parent/28", + "id": { + "group": "com.github.jengelman.gradle.plugins", + "name": "shadow", + "version": "5.2.0", + "type": "jar", + "extension": "jar" + }, + "name": "shadow-5.2.0.jar", + "path": "com/github/jengelman/gradle/plugins/shadow/5.2.0", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/oss-parent/28/oss-parent-28.pom" + "https://plugins.gradle.org/m2/com/github/jengelman/gradle/plugins/shadow/5.2.0/shadow-5.2.0.jar" ], - "sha256": "c4c369e36b8820ad26d2e6c70ff44ad99efafe19399a5d1178e9ea82f4d2fd38" + "sha256": "b748da66d6f11acef435e1f2e95151dab902bb2de23fc8af575b86237d6ba6c8" }, { - "name": "com.fasterxml-oss-parent-34-pom", - "filename": "oss-parent-34.pom", - "path": "com/fasterxml/oss-parent/34", + "id": { + "group": "com.github.jengelman.gradle.plugins", + "name": "shadow", + "version": "5.2.0", + "type": "pom", + "extension": "pom" + }, + "name": "shadow-5.2.0.pom", + "path": "com/github/jengelman/gradle/plugins/shadow/5.2.0", "urls": [ - "https://plugins.gradle.org/m2/com/fasterxml/oss-parent/34/oss-parent-34.pom" + "https://plugins.gradle.org/m2/com/github/jengelman/gradle/plugins/shadow/5.2.0/shadow-5.2.0.pom" ], - "sha256": "9a75f3e32bf9d6e00678d9447ace4de8596a2d221af5cf5bbc7f571cac795006" + "sha256": "54468f4cf5d16864b46dca4e96cd9359a6b720a3cfbff6d403f2486e31cf88f9" }, { - "name": "com.github.jengelman.gradle.plugins-shadow-5.1.0-jar", - "filename": "shadow-5.1.0.jar", - "path": "com/github/jengelman/gradle/plugins/shadow/5.1.0", + "id": { + "group": "com.github.johnrengelman.shadow", + "name": "com.github.johnrengelman.shadow.gradle.plugin", + "version": "5.2.0", + "type": "pom", + "extension": "pom" + }, + "name": "com.github.johnrengelman.shadow.gradle.plugin-5.2.0.pom", + "path": "com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/5.2.0", "urls": [ - "https://plugins.gradle.org/m2/com/github/jengelman/gradle/plugins/shadow/5.1.0/shadow-5.1.0.jar" + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/5.2.0/com.github.johnrengelman.shadow.gradle.plugin-5.2.0.pom" ], - "sha256": "a8637b57d0b4c1184680613b1813a43b9097a287fdf1783e58fd85d64f86b937" + "sha256": "3d7e7bd33bb8b7b67db9e45601cc5f0a2080bc4ce830d976b1ad2f3e4a091a0b" }, { - "name": "com.github.jengelman.gradle.plugins-shadow-5.1.0-pom", - "filename": "shadow-5.1.0.pom", - "path": "com/github/jengelman/gradle/plugins/shadow/5.1.0", - "urls": [ - "https://plugins.gradle.org/m2/com/github/jengelman/gradle/plugins/shadow/5.1.0/shadow-5.1.0.pom" - ], - "sha256": "f3b0baf9c231307b38e15261b8cf98f9965e98403a4fc4738c02a3f3c7dea4b0" - }, - { - "name": "com.github.johnrengelman.shadow-com.github.johnrengelman.shadow.gradle.plugin-5.1.0-pom", - "filename": "com.github.johnrengelman.shadow.gradle.plugin-5.1.0.pom", - "path": "com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/5.1.0", - "urls": [ - "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/5.1.0/com.github.johnrengelman.shadow.gradle.plugin-5.1.0.pom" - ], - "sha256": "8662538c01cac35181f80db3d614b55795d9c6962be9d7fc543a691d489a560a" - }, - { - "name": "com.google.code.gson-gson-parent-2.8.5-pom", - "filename": "gson-parent-2.8.5.pom", - "path": "com/google/code/gson/gson-parent/2.8.5", - "urls": [ - "https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.5/gson-parent-2.8.5.pom" - ], - "sha256": "8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27" - }, - { - "name": "com.google.code.gson-gson-2.8.5-jar", - "filename": "gson-2.8.5.jar", + "id": { + "group": "com.google.code.gson", + "name": "gson", + "version": "2.8.5", + "type": "jar", + "extension": "jar" + }, + "name": "gson-2.8.5.jar", "path": "com/google/code/gson/gson/2.8.5", "urls": [ "https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar" @@ -166,8 +223,14 @@ "sha256": "233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81" }, { - "name": "com.google.code.gson-gson-2.8.5-pom", - "filename": "gson-2.8.5.pom", + "id": { + "group": "com.google.code.gson", + "name": "gson", + "version": "2.8.5", + "type": "pom", + "extension": "pom" + }, + "name": "gson-2.8.5.pom", "path": "com/google/code/gson/gson/2.8.5", "urls": [ "https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom" @@ -175,8 +238,29 @@ "sha256": "b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092" }, { - "name": "commons-codec-commons-codec-1.9-jar", - "filename": "commons-codec-1.9.jar", + "id": { + "group": "com.google.code.gson", + "name": "gson-parent", + "version": "2.8.5", + "type": "pom", + "extension": "pom" + }, + "name": "gson-parent-2.8.5.pom", + "path": "com/google/code/gson/gson-parent/2.8.5", + "urls": [ + "https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.5/gson-parent-2.8.5.pom" + ], + "sha256": "8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27" + }, + { + "id": { + "group": "commons-codec", + "name": "commons-codec", + "version": "1.9", + "type": "jar", + "extension": "jar" + }, + "name": "commons-codec-1.9.jar", "path": "commons-codec/commons-codec/1.9", "urls": [ "https://plugins.gradle.org/m2/commons-codec/commons-codec/1.9/commons-codec-1.9.jar" @@ -184,8 +268,14 @@ "sha256": "ad19d2601c3abf0b946b5c3a4113e226a8c1e3305e395b90013b78dd94a723ce" }, { - "name": "commons-codec-commons-codec-1.9-pom", - "filename": "commons-codec-1.9.pom", + "id": { + "group": "commons-codec", + "name": "commons-codec", + "version": "1.9", + "type": "pom", + "extension": "pom" + }, + "name": "commons-codec-1.9.pom", "path": "commons-codec/commons-codec/1.9", "urls": [ "https://plugins.gradle.org/m2/commons-codec/commons-codec/1.9/commons-codec-1.9.pom" @@ -193,8 +283,14 @@ "sha256": "e5efcf039cd909688c201dc5479b144fd6f01f0e40252b7fc5e7d2e1b5c07990" }, { - "name": "commons-io-commons-io-2.6-jar", - "filename": "commons-io-2.6.jar", + "id": { + "group": "commons-io", + "name": "commons-io", + "version": "2.6", + "type": "jar", + "extension": "jar" + }, + "name": "commons-io-2.6.jar", "path": "commons-io/commons-io/2.6", "urls": [ "https://plugins.gradle.org/m2/commons-io/commons-io/2.6/commons-io-2.6.jar" @@ -202,8 +298,14 @@ "sha256": "f877d304660ac2a142f3865badfc971dec7ed73c747c7f8d5d2f5139ca736513" }, { - "name": "commons-io-commons-io-2.6-pom", - "filename": "commons-io-2.6.pom", + "id": { + "group": "commons-io", + "name": "commons-io", + "version": "2.6", + "type": "pom", + "extension": "pom" + }, + "name": "commons-io-2.6.pom", "path": "commons-io/commons-io/2.6", "urls": [ "https://plugins.gradle.org/m2/commons-io/commons-io/2.6/commons-io-2.6.pom" @@ -211,8 +313,14 @@ "sha256": "0c23863893a2291f5a7afdbd8d15923b3948afd87e563fa341cdcf6eae338a60" }, { - "name": "commons-logging-commons-logging-1.2-jar", - "filename": "commons-logging-1.2.jar", + "id": { + "group": "commons-logging", + "name": "commons-logging", + "version": "1.2", + "type": "jar", + "extension": "jar" + }, + "name": "commons-logging-1.2.jar", "path": "commons-logging/commons-logging/1.2", "urls": [ "https://plugins.gradle.org/m2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" @@ -220,8 +328,14 @@ "sha256": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636" }, { - "name": "commons-logging-commons-logging-1.2-pom", - "filename": "commons-logging-1.2.pom", + "id": { + "group": "commons-logging", + "name": "commons-logging", + "version": "1.2", + "type": "pom", + "extension": "pom" + }, + "name": "commons-logging-1.2.pom", "path": "commons-logging/commons-logging/1.2", "urls": [ "https://plugins.gradle.org/m2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom" @@ -229,8 +343,14 @@ "sha256": "c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20" }, { - "name": "de.undercouch-gradle-download-task-3.4.3-jar", - "filename": "gradle-download-task-3.4.3.jar", + "id": { + "group": "de.undercouch", + "name": "gradle-download-task", + "version": "3.4.3", + "type": "jar", + "extension": "jar" + }, + "name": "gradle-download-task-3.4.3.jar", "path": "de/undercouch/gradle-download-task/3.4.3", "urls": [ "https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/3.4.3/gradle-download-task-3.4.3.jar" @@ -238,8 +358,14 @@ "sha256": "453637054b08115122b7c7b2acf87e912e1613a78f37be3e9e6779cd0830d43e" }, { - "name": "de.undercouch-gradle-download-task-3.4.3-pom", - "filename": "gradle-download-task-3.4.3.pom", + "id": { + "group": "de.undercouch", + "name": "gradle-download-task", + "version": "3.4.3", + "type": "pom", + "extension": "pom" + }, + "name": "gradle-download-task-3.4.3.pom", "path": "de/undercouch/gradle-download-task/3.4.3", "urls": [ "https://plugins.gradle.org/m2/de/undercouch/gradle-download-task/3.4.3/gradle-download-task-3.4.3.pom" @@ -247,224 +373,59 @@ "sha256": "1d87bc920ff3bb03a327f736f02634be87e31f46a85ab98114ba64a4366057dc" }, { - "name": "org.ajoberstar.stutter-org.ajoberstar.stutter.gradle.plugin-0.5.0-pom", - "filename": "org.ajoberstar.stutter.gradle.plugin-0.5.0.pom", - "path": "org/ajoberstar/stutter/org.ajoberstar.stutter.gradle.plugin/0.5.0", + "id": { + "group": "org.ajoberstar", + "name": "gradle-stutter", + "version": "0.5.1", + "type": "jar", + "extension": "jar" + }, + "name": "gradle-stutter-0.5.1.jar", + "path": "org/ajoberstar/gradle-stutter/0.5.1", "urls": [ - "https://plugins.gradle.org/m2/org/ajoberstar/stutter/org.ajoberstar.stutter.gradle.plugin/0.5.0/org.ajoberstar.stutter.gradle.plugin-0.5.0.pom" + "https://plugins.gradle.org/m2/org/ajoberstar/gradle-stutter/0.5.1/gradle-stutter-0.5.1.jar" ], - "sha256": "abd903d79fa785756fe34b210552a76dd3143cd0bd127312628832d593280bfb" + "sha256": "d80a0a51846d93a6d2949e0a6bc4cbc279c8f87dcba4e03ad5d5faf8b9fda518" }, { - "name": "org.ajoberstar-gradle-stutter-0.5.0-jar", - "filename": "gradle-stutter-0.5.0.jar", - "path": "org/ajoberstar/gradle-stutter/0.5.0", + "id": { + "group": "org.ajoberstar", + "name": "gradle-stutter", + "version": "0.5.1", + "type": "pom", + "extension": "pom" + }, + "name": "gradle-stutter-0.5.1.pom", + "path": "org/ajoberstar/gradle-stutter/0.5.1", "urls": [ - "https://plugins.gradle.org/m2/org/ajoberstar/gradle-stutter/0.5.0/gradle-stutter-0.5.0.jar" + "https://plugins.gradle.org/m2/org/ajoberstar/gradle-stutter/0.5.1/gradle-stutter-0.5.1.pom" ], - "sha256": "b1a62c84b6a7c57af07844a573f6b80d05e38338abb496a2d17071314986a6a1" + "sha256": "f496df9a0b57125692fd96985f8361f15f4daa134362183efbe1c66b88336647" }, { - "name": "org.ajoberstar-gradle-stutter-0.5.0-pom", - "filename": "gradle-stutter-0.5.0.pom", - "path": "org/ajoberstar/gradle-stutter/0.5.0", + "id": { + "group": "org.ajoberstar.stutter", + "name": "org.ajoberstar.stutter.gradle.plugin", + "version": "0.5.1", + "type": "pom", + "extension": "pom" + }, + "name": "org.ajoberstar.stutter.gradle.plugin-0.5.1.pom", + "path": "org/ajoberstar/stutter/org.ajoberstar.stutter.gradle.plugin/0.5.1", "urls": [ - "https://plugins.gradle.org/m2/org/ajoberstar/gradle-stutter/0.5.0/gradle-stutter-0.5.0.pom" + "https://plugins.gradle.org/m2/org/ajoberstar/stutter/org.ajoberstar.stutter.gradle.plugin/0.5.1/org.ajoberstar.stutter.gradle.plugin-0.5.1.pom" ], - "sha256": "176a455d204396970c18a83693641f00813db6afba54245c6cf72b6f65811436" + "sha256": "df9fc6fec6786641d460cc73deb1abbb3858970e97d2b979b5732b82e36bdb6a" }, { - "name": "org.apache.ant-ant-launcher-1.9.7-jar", - "filename": "ant-launcher-1.9.7.jar", - "path": "org/apache/ant/ant-launcher/1.9.7", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.9.7/ant-launcher-1.9.7.jar" - ], - "sha256": "bc376f6d6cb586229f451ac459faf1443b144c26d6647618ec9cba60e54c2b79" - }, - { - "name": "org.apache.ant-ant-launcher-1.9.7-pom", - "filename": "ant-launcher-1.9.7.pom", - "path": "org/apache/ant/ant-launcher/1.9.7", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.9.7/ant-launcher-1.9.7.pom" - ], - "sha256": "d7bcdd3ab0ff55edbe1b96d06f06dac2135ec63b5a7c32cef3a436b49c9eee27" - }, - { - "name": "org.apache.ant-ant-parent-1.9.7-pom", - "filename": "ant-parent-1.9.7.pom", - "path": "org/apache/ant/ant-parent/1.9.7", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant-parent/1.9.7/ant-parent-1.9.7.pom" - ], - "sha256": "75d2cef64c65ccbdd2faf7261e53b444778d56d338763154e30fada4a41d1215" - }, - { - "name": "org.apache.ant-ant-1.9.7-jar", - "filename": "ant-1.9.7.jar", - "path": "org/apache/ant/ant/1.9.7", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant/1.9.7/ant-1.9.7.jar" - ], - "sha256": "9a5dbe3f5f2cb91854c8682cab80178afa412ab35a5ab718bf39ce01b3435d93" - }, - { - "name": "org.apache.ant-ant-1.9.7-pom", - "filename": "ant-1.9.7.pom", - "path": "org/apache/ant/ant/1.9.7", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/ant/ant/1.9.7/ant-1.9.7.pom" - ], - "sha256": "1b9fbd4f325a71e99b279080d63084f12d884d42081af298f9e553e1fe0cd74a" - }, - { - "name": "org.apache.commons-commons-parent-32-pom", - "filename": "commons-parent-32.pom", - "path": "org/apache/commons/commons-parent/32", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/32/commons-parent-32.pom" - ], - "sha256": "e4d258af8b2ff4032148d415379def7870789a6003e80576f1504b10f26b4be8" - }, - { - "name": "org.apache.commons-commons-parent-34-pom", - "filename": "commons-parent-34.pom", - "path": "org/apache/commons/commons-parent/34", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/34/commons-parent-34.pom" - ], - "sha256": "3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c" - }, - { - "name": "org.apache.commons-commons-parent-42-pom", - "filename": "commons-parent-42.pom", - "path": "org/apache/commons/commons-parent/42", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/42/commons-parent-42.pom" - ], - "sha256": "cd313494c670b483ec256972af1698b330e598f807002354eb765479f604b09c" - }, - { - "name": "org.apache.httpcomponents-httpclient-4.5.3-jar", - "filename": "httpclient-4.5.3.jar", - "path": "org/apache/httpcomponents/httpclient/4.5.3", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar" - ], - "sha256": "db3d1b6c2d6a5e5ad47577ad61854e2f0e0936199b8e05eb541ed52349263135" - }, - { - "name": "org.apache.httpcomponents-httpclient-4.5.3-pom", - "filename": "httpclient-4.5.3.pom", - "path": "org/apache/httpcomponents/httpclient/4.5.3", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.pom" - ], - "sha256": "cde5750309c07bbac140d0d981697243d3c58c2ee525c1319b9ba887d89f2c9c" - }, - { - "name": "org.apache.httpcomponents-httpcomponents-client-4.5.3-pom", - "filename": "httpcomponents-client-4.5.3.pom", - "path": "org/apache/httpcomponents/httpcomponents-client/4.5.3", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-client/4.5.3/httpcomponents-client-4.5.3.pom" - ], - "sha256": "43c7d2975a1125bb00cf058a3877f549a1f1894f8b8ad47e2c3e46e3fc4623dc" - }, - { - "name": "org.apache.httpcomponents-httpcomponents-core-4.4.6-pom", - "filename": "httpcomponents-core-4.4.6.pom", - "path": "org/apache/httpcomponents/httpcomponents-core/4.4.6", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-core/4.4.6/httpcomponents-core-4.4.6.pom" - ], - "sha256": "2a3cb532d0dd63f3f3f080307edd5ff84f4625253bf6b564eb72737753dd96be" - }, - { - "name": "org.apache.httpcomponents-httpcore-4.4.6-jar", - "filename": "httpcore-4.4.6.jar", - "path": "org/apache/httpcomponents/httpcore/4.4.6", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.jar" - ], - "sha256": "d7f853dee87680b07293d30855b39b9eb56c1297bd16ff1cd6f19ddb8fa745fb" - }, - { - "name": "org.apache.httpcomponents-httpcore-4.4.6-pom", - "filename": "httpcore-4.4.6.pom", - "path": "org/apache/httpcomponents/httpcore/4.4.6", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.pom" - ], - "sha256": "398285cfef554fb55b81f20c94f54bf0e28b0462ba92fa3970e933945c08f655" - }, - { - "name": "org.apache.httpcomponents-project-7-pom", - "filename": "project-7.pom", - "path": "org/apache/httpcomponents/project/7", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/httpcomponents/project/7/project-7.pom" - ], - "sha256": "3d6eba428555a558de046b5d76eacc1f5a54b4f5f20b84d636ed7aff18aa48c3" - }, - { - "name": "org.apache.logging.log4j-log4j-api-2.11.0-jar", - "filename": "log4j-api-2.11.0.jar", - "path": "org/apache/logging/log4j/log4j-api/2.11.0", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.jar" - ], - "sha256": "fa5828950269b0ae425c96d889f18f40b336e9fa886841ae06bb9225511f1217" - }, - { - "name": "org.apache.logging.log4j-log4j-api-2.11.0-pom", - "filename": "log4j-api-2.11.0.pom", - "path": "org/apache/logging/log4j/log4j-api/2.11.0", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.pom" - ], - "sha256": "05cc2da77a2d0f24b4803cbfeb8d64a20f5494d093a1bcd7872fe28aa39069d9" - }, - { - "name": "org.apache.logging.log4j-log4j-core-2.11.0-jar", - "filename": "log4j-core-2.11.0.jar", - "path": "org/apache/logging/log4j/log4j-core/2.11.0", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.jar" - ], - "sha256": "c32029b32da3d8cf2feca0790a4bc2331ea7eb62ab368a8980b90c7d8c8101e0" - }, - { - "name": "org.apache.logging.log4j-log4j-core-2.11.0-pom", - "filename": "log4j-core-2.11.0.pom", - "path": "org/apache/logging/log4j/log4j-core/2.11.0", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.pom" - ], - "sha256": "d5629ccf572bea57192cf8c75d74e7ea05a693c42ed712647faed9ae9fbf3880" - }, - { - "name": "org.apache.logging.log4j-log4j-2.11.0-pom", - "filename": "log4j-2.11.0.pom", - "path": "org/apache/logging/log4j/log4j/2.11.0", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j/2.11.0/log4j-2.11.0.pom" - ], - "sha256": "c786983c7bfa950a0231b9cfc2bc2b5370134c02c11e0f57d8566082a88386f3" - }, - { - "name": "org.apache.logging-logging-parent-1-pom", - "filename": "logging-parent-1.pom", - "path": "org/apache/logging/logging-parent/1", - "urls": [ - "https://plugins.gradle.org/m2/org/apache/logging/logging-parent/1/logging-parent-1.pom" - ], - "sha256": "34b2bf4f531a809168961672ff419d1abf96725b8dfe52980f00c8c4eb134bd6" - }, - { - "name": "org.apache-apache-13-pom", - "filename": "apache-13.pom", + "id": { + "group": "org.apache", + "name": "apache", + "version": "13", + "type": "pom", + "extension": "pom" + }, + "name": "apache-13.pom", "path": "org/apache/apache/13", "urls": [ "https://plugins.gradle.org/m2/org/apache/apache/13/apache-13.pom" @@ -472,8 +433,14 @@ "sha256": "ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d" }, { - "name": "org.apache-apache-18-pom", - "filename": "apache-18.pom", + "id": { + "group": "org.apache", + "name": "apache", + "version": "18", + "type": "pom", + "extension": "pom" + }, + "name": "apache-18.pom", "path": "org/apache/apache/18", "urls": [ "https://plugins.gradle.org/m2/org/apache/apache/18/apache-18.pom" @@ -481,26 +448,329 @@ "sha256": "7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17" }, { - "name": "org.codehaus.plexus-plexus-utils-3.0.24-jar", - "filename": "plexus-utils-3.0.24.jar", - "path": "org/codehaus/plexus/plexus-utils/3.0.24", + "id": { + "group": "org.apache.ant", + "name": "ant", + "version": "1.9.7", + "type": "jar", + "extension": "jar" + }, + "name": "ant-1.9.7.jar", + "path": "org/apache/ant/ant/1.9.7", "urls": [ - "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar" + "https://plugins.gradle.org/m2/org/apache/ant/ant/1.9.7/ant-1.9.7.jar" ], - "sha256": "83ee748b12d06afb0ad4050a591132b3e8025fbb1990f1ed002e8b73293e69b4" + "sha256": "9a5dbe3f5f2cb91854c8682cab80178afa412ab35a5ab718bf39ce01b3435d93" }, { - "name": "org.codehaus.plexus-plexus-utils-3.0.24-pom", - "filename": "plexus-utils-3.0.24.pom", - "path": "org/codehaus/plexus/plexus-utils/3.0.24", + "id": { + "group": "org.apache.ant", + "name": "ant", + "version": "1.9.7", + "type": "pom", + "extension": "pom" + }, + "name": "ant-1.9.7.pom", + "path": "org/apache/ant/ant/1.9.7", "urls": [ - "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.pom" + "https://plugins.gradle.org/m2/org/apache/ant/ant/1.9.7/ant-1.9.7.pom" ], - "sha256": "11067f6a75fded12bcdc8daf7a66ddd942ce289c3daf88a3fe0f8b12858a2ee6" + "sha256": "1b9fbd4f325a71e99b279080d63084f12d884d42081af298f9e553e1fe0cd74a" }, { - "name": "org.codehaus.plexus-plexus-4.0-pom", - "filename": "plexus-4.0.pom", + "id": { + "group": "org.apache.ant", + "name": "ant-launcher", + "version": "1.9.7", + "type": "jar", + "extension": "jar" + }, + "name": "ant-launcher-1.9.7.jar", + "path": "org/apache/ant/ant-launcher/1.9.7", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.9.7/ant-launcher-1.9.7.jar" + ], + "sha256": "bc376f6d6cb586229f451ac459faf1443b144c26d6647618ec9cba60e54c2b79" + }, + { + "id": { + "group": "org.apache.ant", + "name": "ant-launcher", + "version": "1.9.7", + "type": "pom", + "extension": "pom" + }, + "name": "ant-launcher-1.9.7.pom", + "path": "org/apache/ant/ant-launcher/1.9.7", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.9.7/ant-launcher-1.9.7.pom" + ], + "sha256": "d7bcdd3ab0ff55edbe1b96d06f06dac2135ec63b5a7c32cef3a436b49c9eee27" + }, + { + "id": { + "group": "org.apache.ant", + "name": "ant-parent", + "version": "1.9.7", + "type": "pom", + "extension": "pom" + }, + "name": "ant-parent-1.9.7.pom", + "path": "org/apache/ant/ant-parent/1.9.7", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-parent/1.9.7/ant-parent-1.9.7.pom" + ], + "sha256": "75d2cef64c65ccbdd2faf7261e53b444778d56d338763154e30fada4a41d1215" + }, + { + "id": { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "32", + "type": "pom", + "extension": "pom" + }, + "name": "commons-parent-32.pom", + "path": "org/apache/commons/commons-parent/32", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/32/commons-parent-32.pom" + ], + "sha256": "e4d258af8b2ff4032148d415379def7870789a6003e80576f1504b10f26b4be8" + }, + { + "id": { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "34", + "type": "pom", + "extension": "pom" + }, + "name": "commons-parent-34.pom", + "path": "org/apache/commons/commons-parent/34", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/34/commons-parent-34.pom" + ], + "sha256": "3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c" + }, + { + "id": { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "42", + "type": "pom", + "extension": "pom" + }, + "name": "commons-parent-42.pom", + "path": "org/apache/commons/commons-parent/42", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/42/commons-parent-42.pom" + ], + "sha256": "cd313494c670b483ec256972af1698b330e598f807002354eb765479f604b09c" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "httpclient", + "version": "4.5.3", + "type": "jar", + "extension": "jar" + }, + "name": "httpclient-4.5.3.jar", + "path": "org/apache/httpcomponents/httpclient/4.5.3", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar" + ], + "sha256": "db3d1b6c2d6a5e5ad47577ad61854e2f0e0936199b8e05eb541ed52349263135" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "httpclient", + "version": "4.5.3", + "type": "pom", + "extension": "pom" + }, + "name": "httpclient-4.5.3.pom", + "path": "org/apache/httpcomponents/httpclient/4.5.3", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.pom" + ], + "sha256": "cde5750309c07bbac140d0d981697243d3c58c2ee525c1319b9ba887d89f2c9c" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "httpcomponents-client", + "version": "4.5.3", + "type": "pom", + "extension": "pom" + }, + "name": "httpcomponents-client-4.5.3.pom", + "path": "org/apache/httpcomponents/httpcomponents-client/4.5.3", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-client/4.5.3/httpcomponents-client-4.5.3.pom" + ], + "sha256": "43c7d2975a1125bb00cf058a3877f549a1f1894f8b8ad47e2c3e46e3fc4623dc" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "httpcomponents-core", + "version": "4.4.6", + "type": "pom", + "extension": "pom" + }, + "name": "httpcomponents-core-4.4.6.pom", + "path": "org/apache/httpcomponents/httpcomponents-core/4.4.6", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-core/4.4.6/httpcomponents-core-4.4.6.pom" + ], + "sha256": "2a3cb532d0dd63f3f3f080307edd5ff84f4625253bf6b564eb72737753dd96be" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "httpcore", + "version": "4.4.6", + "type": "jar", + "extension": "jar" + }, + "name": "httpcore-4.4.6.jar", + "path": "org/apache/httpcomponents/httpcore/4.4.6", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.jar" + ], + "sha256": "d7f853dee87680b07293d30855b39b9eb56c1297bd16ff1cd6f19ddb8fa745fb" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "httpcore", + "version": "4.4.6", + "type": "pom", + "extension": "pom" + }, + "name": "httpcore-4.4.6.pom", + "path": "org/apache/httpcomponents/httpcore/4.4.6", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.pom" + ], + "sha256": "398285cfef554fb55b81f20c94f54bf0e28b0462ba92fa3970e933945c08f655" + }, + { + "id": { + "group": "org.apache.httpcomponents", + "name": "project", + "version": "7", + "type": "pom", + "extension": "pom" + }, + "name": "project-7.pom", + "path": "org/apache/httpcomponents/project/7", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/httpcomponents/project/7/project-7.pom" + ], + "sha256": "3d6eba428555a558de046b5d76eacc1f5a54b4f5f20b84d636ed7aff18aa48c3" + }, + { + "id": { + "group": "org.apache.logging", + "name": "logging-parent", + "version": "1", + "type": "pom", + "extension": "pom" + }, + "name": "logging-parent-1.pom", + "path": "org/apache/logging/logging-parent/1", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/logging-parent/1/logging-parent-1.pom" + ], + "sha256": "34b2bf4f531a809168961672ff419d1abf96725b8dfe52980f00c8c4eb134bd6" + }, + { + "id": { + "group": "org.apache.logging.log4j", + "name": "log4j", + "version": "2.11.0", + "type": "pom", + "extension": "pom" + }, + "name": "log4j-2.11.0.pom", + "path": "org/apache/logging/log4j/log4j/2.11.0", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j/2.11.0/log4j-2.11.0.pom" + ], + "sha256": "c786983c7bfa950a0231b9cfc2bc2b5370134c02c11e0f57d8566082a88386f3" + }, + { + "id": { + "group": "org.apache.logging.log4j", + "name": "log4j-api", + "version": "2.11.0", + "type": "jar", + "extension": "jar" + }, + "name": "log4j-api-2.11.0.jar", + "path": "org/apache/logging/log4j/log4j-api/2.11.0", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.jar" + ], + "sha256": "fa5828950269b0ae425c96d889f18f40b336e9fa886841ae06bb9225511f1217" + }, + { + "id": { + "group": "org.apache.logging.log4j", + "name": "log4j-api", + "version": "2.11.0", + "type": "pom", + "extension": "pom" + }, + "name": "log4j-api-2.11.0.pom", + "path": "org/apache/logging/log4j/log4j-api/2.11.0", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.11.0/log4j-api-2.11.0.pom" + ], + "sha256": "05cc2da77a2d0f24b4803cbfeb8d64a20f5494d093a1bcd7872fe28aa39069d9" + }, + { + "id": { + "group": "org.apache.logging.log4j", + "name": "log4j-core", + "version": "2.11.0", + "type": "jar", + "extension": "jar" + }, + "name": "log4j-core-2.11.0.jar", + "path": "org/apache/logging/log4j/log4j-core/2.11.0", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.jar" + ], + "sha256": "c32029b32da3d8cf2feca0790a4bc2331ea7eb62ab368a8980b90c7d8c8101e0" + }, + { + "id": { + "group": "org.apache.logging.log4j", + "name": "log4j-core", + "version": "2.11.0", + "type": "pom", + "extension": "pom" + }, + "name": "log4j-core-2.11.0.pom", + "path": "org/apache/logging/log4j/log4j-core/2.11.0", + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.11.0/log4j-core-2.11.0.pom" + ], + "sha256": "d5629ccf572bea57192cf8c75d74e7ea05a693c42ed712647faed9ae9fbf3880" + }, + { + "id": { + "group": "org.codehaus.plexus", + "name": "plexus", + "version": "4.0", + "type": "pom", + "extension": "pom" + }, + "name": "plexus-4.0.pom", "path": "org/codehaus/plexus/plexus/4.0", "urls": [ "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus/4.0/plexus-4.0.pom" @@ -508,44 +778,104 @@ "sha256": "0a1b692d7fcc90d6a45dae2e50f4660d48f7a44504f174aa60ef34fbe1327f6a" }, { - "name": "org.gradle.kotlin.embedded-kotlin-org.gradle.kotlin.embedded-kotlin.gradle.plugin-1.2.9-pom", - "filename": "org.gradle.kotlin.embedded-kotlin.gradle.plugin-1.2.9.pom", - "path": "org/gradle/kotlin/embedded-kotlin/org.gradle.kotlin.embedded-kotlin.gradle.plugin/1.2.9", + "id": { + "group": "org.codehaus.plexus", + "name": "plexus-utils", + "version": "3.0.24", + "type": "jar", + "extension": "jar" + }, + "name": "plexus-utils-3.0.24.jar", + "path": "org/codehaus/plexus/plexus-utils/3.0.24", "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/embedded-kotlin/org.gradle.kotlin.embedded-kotlin.gradle.plugin/1.2.9/org.gradle.kotlin.embedded-kotlin.gradle.plugin-1.2.9.pom" + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar" ], - "sha256": "89c98657590041accc65f5ac532dcb52ae7a5f3b06b234e18ab3bd3213d5e656" + "sha256": "83ee748b12d06afb0ad4050a591132b3e8025fbb1990f1ed002e8b73293e69b4" }, { - "name": "org.gradle.kotlin.kotlin-dsl-org.gradle.kotlin.kotlin-dsl.gradle.plugin-1.2.9-pom", - "filename": "org.gradle.kotlin.kotlin-dsl.gradle.plugin-1.2.9.pom", - "path": "org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/1.2.9", + "id": { + "group": "org.codehaus.plexus", + "name": "plexus-utils", + "version": "3.0.24", + "type": "pom", + "extension": "pom" + }, + "name": "plexus-utils-3.0.24.pom", + "path": "org/codehaus/plexus/plexus-utils/3.0.24", "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/1.2.9/org.gradle.kotlin.kotlin-dsl.gradle.plugin-1.2.9.pom" + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.pom" ], - "sha256": "37867da2fe65d22ee3b63696b675b6ab8b27b1e1093a328f090c32c72a250297" + "sha256": "11067f6a75fded12bcdc8daf7a66ddd942ce289c3daf88a3fe0f8b12858a2ee6" }, { - "name": "org.gradle.kotlin-plugins-1.2.9-jar", - "filename": "plugins-1.2.9.jar", - "path": "org/gradle/kotlin/plugins/1.2.9", + "id": { + "group": "org.gradle.kotlin", + "name": "plugins", + "version": "1.3.3", + "type": "jar", + "extension": "jar" + }, + "name": "plugins-1.3.3.jar", + "path": "org/gradle/kotlin/plugins/1.3.3", "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.2.9/plugins-1.2.9.jar" + "https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.3/plugins-1.3.3.jar" ], - "sha256": "17511bafd8041ccb18f1ae599df001812d031fff8d39c1c6e350810d24c4ab0f" + "sha256": "3cfea44746f81625e403a72d41bedc2d57c6c1a7b56d525583151d36edb8c98c" }, { - "name": "org.gradle.kotlin-plugins-1.2.9-pom", - "filename": "plugins-1.2.9.pom", - "path": "org/gradle/kotlin/plugins/1.2.9", + "id": { + "group": "org.gradle.kotlin", + "name": "plugins", + "version": "1.3.3", + "type": "pom", + "extension": "pom" + }, + "name": "plugins-1.3.3.pom", + "path": "org/gradle/kotlin/plugins/1.3.3", "urls": [ - "https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.2.9/plugins-1.2.9.pom" + "https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.3/plugins-1.3.3.pom" ], - "sha256": "75977c1d3d199f1a733fdc9145c8e58be6c791c9ab501dc7fdf37c2eb760f37e" + "sha256": "485d12c1eb3b7f82ad8e9221c80f593a747450c37aa36c864571efe60d56ae10" }, { - "name": "org.jdom-jdom2-2.0.6-jar", - "filename": "jdom2-2.0.6.jar", + "id": { + "group": "org.gradle.kotlin.embedded-kotlin", + "name": "org.gradle.kotlin.embedded-kotlin.gradle.plugin", + "version": "1.3.3", + "type": "pom", + "extension": "pom" + }, + "name": "org.gradle.kotlin.embedded-kotlin.gradle.plugin-1.3.3.pom", + "path": "org/gradle/kotlin/embedded-kotlin/org.gradle.kotlin.embedded-kotlin.gradle.plugin/1.3.3", + "urls": [ + "https://plugins.gradle.org/m2/org/gradle/kotlin/embedded-kotlin/org.gradle.kotlin.embedded-kotlin.gradle.plugin/1.3.3/org.gradle.kotlin.embedded-kotlin.gradle.plugin-1.3.3.pom" + ], + "sha256": "b116713c7d9ef48c4239b0972faacbbf79c9fd9184cf7fa85bf816a2253cf896" + }, + { + "id": { + "group": "org.gradle.kotlin.kotlin-dsl", + "name": "org.gradle.kotlin.kotlin-dsl.gradle.plugin", + "version": "1.3.3", + "type": "pom", + "extension": "pom" + }, + "name": "org.gradle.kotlin.kotlin-dsl.gradle.plugin-1.3.3.pom", + "path": "org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/1.3.3", + "urls": [ + "https://plugins.gradle.org/m2/org/gradle/kotlin/kotlin-dsl/org.gradle.kotlin.kotlin-dsl.gradle.plugin/1.3.3/org.gradle.kotlin.kotlin-dsl.gradle.plugin-1.3.3.pom" + ], + "sha256": "565317f2b01ab45d71fc28654d05507f186f5d68dbac00acb46997e4107b5c6e" + }, + { + "id": { + "group": "org.jdom", + "name": "jdom2", + "version": "2.0.6", + "type": "jar", + "extension": "jar" + }, + "name": "jdom2-2.0.6.jar", "path": "org/jdom/jdom2/2.0.6", "urls": [ "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar" @@ -553,8 +883,14 @@ "sha256": "1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5" }, { - "name": "org.jdom-jdom2-2.0.6-pom", - "filename": "jdom2-2.0.6.pom", + "id": { + "group": "org.jdom", + "name": "jdom2", + "version": "2.0.6", + "type": "pom", + "extension": "pom" + }, + "name": "jdom2-2.0.6.pom", "path": "org/jdom/jdom2/2.0.6", "urls": [ "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom" @@ -562,422 +898,14 @@ "sha256": "47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d" }, { - "name": "org.jetbrains.intellij.deps-trove4j-1.0.20181211-jar", - "filename": "trove4j-1.0.20181211.jar", - "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar" - ], - "sha256": "affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601" - }, - { - "name": "org.jetbrains.intellij.deps-trove4j-1.0.20181211-pom", - "filename": "trove4j-1.0.20181211.pom", - "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom" - ], - "sha256": "310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a" - }, - { - "name": "org.jetbrains.kotlin.jvm-org.jetbrains.kotlin.jvm.gradle.plugin-1.3.41-pom", - "filename": "org.jetbrains.kotlin.jvm.gradle.plugin-1.3.41.pom", - "path": "org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.3.41/org.jetbrains.kotlin.jvm.gradle.plugin-1.3.41.pom" - ], - "sha256": "76dc213c6065dd9d9eb4852545ab572b995fc7f79bd441e04315bb609eebb7ec" - }, - { - "name": "org.jetbrains.kotlin.kapt-org.jetbrains.kotlin.kapt.gradle.plugin-1.3.41-pom", - "filename": "org.jetbrains.kotlin.kapt.gradle.plugin-1.3.41.pom", - "path": "org/jetbrains/kotlin/kapt/org.jetbrains.kotlin.kapt.gradle.plugin/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kapt/org.jetbrains.kotlin.kapt.gradle.plugin/1.3.41/org.jetbrains.kotlin.kapt.gradle.plugin-1.3.41.pom" - ], - "sha256": "dab2947117a75101623434fa3268b65103cb99708996201dd6b52d65d9cb5e59" - }, - { - "name": "org.jetbrains.kotlin-kotlin-android-extensions-1.3.41-jar", - "filename": "kotlin-android-extensions-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-android-extensions/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.3.41/kotlin-android-extensions-1.3.41.jar" - ], - "sha256": "26d3a8cfaf833c7c463d681e60a9887dff6819d9960936317f0b615b19a11e4f" - }, - { - "name": "org.jetbrains.kotlin-kotlin-android-extensions-1.3.41-pom", - "filename": "kotlin-android-extensions-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-android-extensions/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.3.41/kotlin-android-extensions-1.3.41.pom" - ], - "sha256": "d83267404f53b7d95995cfac7723991e4761e702ae41a88703b1bd202bfcfa21" - }, - { - "name": "org.jetbrains.kotlin-kotlin-annotation-processing-gradle-1.3.41-jar", - "filename": "kotlin-annotation-processing-gradle-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41/kotlin-annotation-processing-gradle-1.3.41.jar" - ], - "sha256": "980965a550c50f424a2c6306dec7d5a0ac94a21e1aa8dbe87f7224774d44113c" - }, - { - "name": "org.jetbrains.kotlin-kotlin-annotation-processing-gradle-1.3.41-pom", - "filename": "kotlin-annotation-processing-gradle-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41/kotlin-annotation-processing-gradle-1.3.41.pom" - ], - "sha256": "f00bc1f5e8d853238d7225ef503f3cc931d91dd1b37007d360f2c2d1b1eaad27" - }, - { - "name": "org.jetbrains.kotlin-kotlin-build-common-1.3.41-jar", - "filename": "kotlin-build-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-build-common/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.41/kotlin-build-common-1.3.41.jar" - ], - "sha256": "602766a64424203122e9657545da958718f6dbda019081a4cd75047404d32363" - }, - { - "name": "org.jetbrains.kotlin-kotlin-build-common-1.3.41-pom", - "filename": "kotlin-build-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-build-common/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.41/kotlin-build-common-1.3.41.pom" - ], - "sha256": "fc33d0df31e9bbe6b67ff20dc211f396ac55dc350202834b85ecba0df81242e2" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-embeddable-1.3.41-jar", - "filename": "kotlin-compiler-embeddable-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-compiler-embeddable-1.3.41.jar" - ], - "sha256": "ea6ab03286a534ab24f123b845a107c7a53b679f6ee56bdc34b5dd1b0fd7b6f4" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-embeddable-1.3.41-pom", - "filename": "kotlin-compiler-embeddable-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-compiler-embeddable-1.3.41.pom" - ], - "sha256": "a630bdc69212fc0ac4a24059089eb246bd4f04f334a6f1e77952b373d0cdad8e" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-runner-1.3.41-jar", - "filename": "kotlin-compiler-runner-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-compiler-runner/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.3.41/kotlin-compiler-runner-1.3.41.jar" - ], - "sha256": "f58cffaec052685c4b7985532c1bf52d9006b2b4ed9679d9c78df8867fc50d57" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-runner-1.3.41-pom", - "filename": "kotlin-compiler-runner-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-compiler-runner/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.3.41/kotlin-compiler-runner-1.3.41.pom" - ], - "sha256": "83918960ee396c0e38132552c48cac0aa3f542ac09ffa974d6f106b5ddf07647" - }, - { - "name": "org.jetbrains.kotlin-kotlin-daemon-client-1.3.41-jar", - "filename": "kotlin-daemon-client-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-daemon-client/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3.41/kotlin-daemon-client-1.3.41.jar" - ], - "sha256": "d59d7f617feef6beb880bc9aa6d4c838ebc6f15317e5a98c427815cce8ecfe84" - }, - { - "name": "org.jetbrains.kotlin-kotlin-daemon-client-1.3.41-pom", - "filename": "kotlin-daemon-client-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-daemon-client/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3.41/kotlin-daemon-client-1.3.41.pom" - ], - "sha256": "e05bebcf2d42073d145e12df19de3163320fbf876986bb53df82b7478679455b" - }, - { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-api-1.3.41-jar", - "filename": "kotlin-gradle-plugin-api-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41/kotlin-gradle-plugin-api-1.3.41.jar" - ], - "sha256": "57b0e2951fde88baf8ffb92d72c5682c101a7c2c12c6c501a5b47f88f5b08696" - }, - { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-api-1.3.41-pom", - "filename": "kotlin-gradle-plugin-api-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41/kotlin-gradle-plugin-api-1.3.41.pom" - ], - "sha256": "dc338b55085bfc4cc2a98dc83c8365dbee976b9d9134ca845d42d0a3d4767937" - }, - { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-model-1.3.41-jar", - "filename": "kotlin-gradle-plugin-model-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41/kotlin-gradle-plugin-model-1.3.41.jar" - ], - "sha256": "8a703d706c44996993f9df34b916162b99b81417f7f9d351ca8d205f0325936d" - }, - { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-model-1.3.41-pom", - "filename": "kotlin-gradle-plugin-model-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41/kotlin-gradle-plugin-model-1.3.41.pom" - ], - "sha256": "8763bd09455cecf1c9fabea3653bd2ac17bf31a1291a153fefca8e4f28de9043" - }, - { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-1.3.41-jar", - "filename": "kotlin-gradle-plugin-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.41/kotlin-gradle-plugin-1.3.41.jar" - ], - "sha256": "380b16b2ab673bb9d9341142b51484f97e6614952cc530a48ce34583952ab84f" - }, - { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-1.3.41-pom", - "filename": "kotlin-gradle-plugin-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.41/kotlin-gradle-plugin-1.3.41.pom" - ], - "sha256": "0eff171c99c60a5a26702e8e407d7af2ad2fdb5078b4c02519716ae3dc0b2594" - }, - { - "name": "org.jetbrains.kotlin-kotlin-reflect-1.3.41-jar", - "filename": "kotlin-reflect-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.41/kotlin-reflect-1.3.41.jar" - ], - "sha256": "01d469878c6853a607baaadf869c7474b971abe6dd2cb74f244bea0ffb453c76" - }, - { - "name": "org.jetbrains.kotlin-kotlin-reflect-1.3.41-pom", - "filename": "kotlin-reflect-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.41/kotlin-reflect-1.3.41.pom" - ], - "sha256": "4d0e8480bf227cd23d21d245dc9fe47e92056af5a6f367bc886bf43278c44146" - }, - { - "name": "org.jetbrains.kotlin-kotlin-sam-with-receiver-1.3.41-jar", - "filename": "kotlin-sam-with-receiver-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41/kotlin-sam-with-receiver-1.3.41.jar" - ], - "sha256": "52ba0a7557a05f383983018818fa54389e985e1782f5d580a5f5190689fd217d" - }, - { - "name": "org.jetbrains.kotlin-kotlin-sam-with-receiver-1.3.41-pom", - "filename": "kotlin-sam-with-receiver-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41/kotlin-sam-with-receiver-1.3.41.pom" - ], - "sha256": "b2d7cd94ffce942ddd379db99044bff03f24863fcf41534d7c7be3d0e16bc34c" - }, - { - "name": "org.jetbrains.kotlin-kotlin-script-runtime-1.3.41-jar", - "filename": "kotlin-script-runtime-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.3.41/kotlin-script-runtime-1.3.41.jar" - ], - "sha256": "ac184612f258b460b5af4ca47f6bee0bab20a46fa818b86697ba41ef29626a31" - }, - { - "name": "org.jetbrains.kotlin-kotlin-script-runtime-1.3.41-pom", - "filename": "kotlin-script-runtime-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.3.41/kotlin-script-runtime-1.3.41.pom" - ], - "sha256": "9bd39a256bdd9f7a8689f095c7eff85f8504ae03789e12cf20e6bbc689baefd1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-common-1.3.41-jar", - "filename": "kotlin-scripting-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.3.41/kotlin-scripting-common-1.3.41.jar" - ], - "sha256": "fe9033bf39eb38d3daed1649f54b3321478901b9891c24482a4a06603d5b137f" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-common-1.3.41-pom", - "filename": "kotlin-scripting-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.3.41/kotlin-scripting-common-1.3.41.pom" - ], - "sha256": "21253e34109f982b0b1586367e47b5c91bc630f5071e77f5bf3228bb4d4d86de" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-embeddable-1.3.41-jar", - "filename": "kotlin-scripting-compiler-embeddable-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41/kotlin-scripting-compiler-embeddable-1.3.41.jar" - ], - "sha256": "c2da2d19f569e8369c2f55affa0dee5f50771bc3685697ee948ee29a16d0c3c1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-embeddable-1.3.41-pom", - "filename": "kotlin-scripting-compiler-embeddable-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41/kotlin-scripting-compiler-embeddable-1.3.41.pom" - ], - "sha256": "024b8b34dbbda4c657bf4c9f68acb45174f9350d4c6542278855124442d491d3" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-impl-embeddable-1.3.41-jar", - "filename": "kotlin-scripting-compiler-impl-embeddable-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41/kotlin-scripting-compiler-impl-embeddable-1.3.41.jar" - ], - "sha256": "854c39cdd705be01956439ae70f44a785cd0ba66388299f98bc0af75db328f29" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-impl-embeddable-1.3.41-pom", - "filename": "kotlin-scripting-compiler-impl-embeddable-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41/kotlin-scripting-compiler-impl-embeddable-1.3.41.pom" - ], - "sha256": "bd29d1efdfcd51ae20d252ca66f2ea84cf3671ce323cd25518ff44a52c9a5dc1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-jvm-1.3.41-jar", - "filename": "kotlin-scripting-jvm-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41/kotlin-scripting-jvm-1.3.41.jar" - ], - "sha256": "50ad890f1dfa33e9cdeba550fab2e98e88e6f03624461cd11c7f5eb4a41de7a1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-jvm-1.3.41-pom", - "filename": "kotlin-scripting-jvm-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41/kotlin-scripting-jvm-1.3.41.pom" - ], - "sha256": "fda06e8c1b1c47e720a80176f2269e43fc95b849045bf4006b7003c964f68a49" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.3.41-jar", - "filename": "kotlin-stdlib-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41/kotlin-stdlib-common-1.3.41.jar" - ], - "sha256": "6c91dea17d7dce5f0b550c3de3305767e5fb46247b6d1eb7eca0ca1fe18458de" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.3.41-pom", - "filename": "kotlin-stdlib-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41/kotlin-stdlib-common-1.3.41.pom" - ], - "sha256": "d2e537cd1f7705276242d8cc903a0286b6dc86b41b6e728e967ef719022f2e15" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.3.41-jar", - "filename": "kotlin-stdlib-jdk7-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41/kotlin-stdlib-jdk7-1.3.41.jar" - ], - "sha256": "25e2409aba0ec37d2fd7c77727d7835b511879de8d9bf4862af0b493aabbe39e" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.3.41-pom", - "filename": "kotlin-stdlib-jdk7-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41/kotlin-stdlib-jdk7-1.3.41.pom" - ], - "sha256": "54c3962d2cf839d41bbee8b4817a6b2d06990c305c2efea655f64973d468a5fd" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.3.41-jar", - "filename": "kotlin-stdlib-jdk8-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41/kotlin-stdlib-jdk8-1.3.41.jar" - ], - "sha256": "f7dbbaee3e0841758187a213c052388a4e619e11c87ab16f4bc229cfe7ce5fed" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.3.41-pom", - "filename": "kotlin-stdlib-jdk8-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41/kotlin-stdlib-jdk8-1.3.41.pom" - ], - "sha256": "e3856758c3bb08b7c97ddcd493521c5e0bd0741717c93b292bf1a541513af082" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.3.41-jar", - "filename": "kotlin-stdlib-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.41/kotlin-stdlib-1.3.41.jar" - ], - "sha256": "6ea3d0921b26919b286f05cbdb906266666a36f9a7c096197114f7495708ffbc" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.3.41-pom", - "filename": "kotlin-stdlib-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.41", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.41/kotlin-stdlib-1.3.41.pom" - ], - "sha256": "785b5b66f1146317d5ed5b18c8e0c10f83cd5c909434c799a4da9823f028cd63" - }, - { - "name": "org.jetbrains.kotlinx-kotlinx-coroutines-core-1.1.1-jar", - "filename": "kotlinx-coroutines-core-1.1.1.jar", - "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.jar" - ], - "sha256": "ac423f8a0aa4b4e74529696ff82c0171f81a8c8ab182a1965dff25e69c1f7844" - }, - { - "name": "org.jetbrains.kotlinx-kotlinx-coroutines-core-1.1.1-pom", - "filename": "kotlinx-coroutines-core-1.1.1.pom", - "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1", - "urls": [ - "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.pom" - ], - "sha256": "82fe57e97f3f91561fe29bca615d45908ecb0ddea3e8d2cb0affd06de964872f" - }, - { - "name": "org.jetbrains-annotations-13.0-jar", - "filename": "annotations-13.0.jar", + "id": { + "group": "org.jetbrains", + "name": "annotations", + "version": "13.0", + "type": "jar", + "extension": "jar" + }, + "name": "annotations-13.0.jar", "path": "org/jetbrains/annotations/13.0", "urls": [ "https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.jar" @@ -985,8 +913,14 @@ "sha256": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478" }, { - "name": "org.jetbrains-annotations-13.0-pom", - "filename": "annotations-13.0.pom", + "id": { + "group": "org.jetbrains", + "name": "annotations", + "version": "13.0", + "type": "pom", + "extension": "pom" + }, + "name": "annotations-13.0.pom", "path": "org/jetbrains/annotations/13.0", "urls": [ "https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13.0.pom" @@ -994,80 +928,794 @@ "sha256": "965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397" }, { - "name": "org.ow2.asm-asm-analysis-7.0-beta-jar", - "filename": "asm-analysis-7.0-beta.jar", - "path": "org/ow2/asm/asm-analysis/7.0-beta", + "id": { + "group": "org.jetbrains.intellij.deps", + "name": "trove4j", + "version": "1.0.20181211", + "type": "jar", + "extension": "jar" + }, + "name": "trove4j-1.0.20181211.jar", + "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-analysis/7.0-beta/asm-analysis-7.0-beta.jar" + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar" ], - "sha256": "4d2b20a1fb44acb33b0ddb80be58b2ad7838c1fb520282a655a1217b3c6acf19" + "sha256": "affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601" }, { - "name": "org.ow2.asm-asm-analysis-7.0-beta-pom", - "filename": "asm-analysis-7.0-beta.pom", - "path": "org/ow2/asm/asm-analysis/7.0-beta", + "id": { + "group": "org.jetbrains.intellij.deps", + "name": "trove4j", + "version": "1.0.20181211", + "type": "pom", + "extension": "pom" + }, + "name": "trove4j-1.0.20181211.pom", + "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-analysis/7.0-beta/asm-analysis-7.0-beta.pom" + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom" ], - "sha256": "7a068ba0c921fe69824731f6a1b14f86ff0828a0c5941e5c24b6b501e2f6e69f" + "sha256": "310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a" }, { - "name": "org.ow2.asm-asm-commons-7.0-beta-jar", - "filename": "asm-commons-7.0-beta.jar", - "path": "org/ow2/asm/asm-commons/7.0-beta", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-android-extensions", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-android-extensions-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-android-extensions/1.3.61", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/7.0-beta/asm-commons-7.0-beta.jar" + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.3.61/kotlin-android-extensions-1.3.61.jar" ], - "sha256": "3d8ec2534b883541b966e6dde9004967d34f7311789028afc92e2e066867dac4" + "sha256": "bfe9bb2e4b45a8f29136ccddfcf811d952230373c2231c5d4e5310840177f518" }, { - "name": "org.ow2.asm-asm-commons-7.0-beta-pom", - "filename": "asm-commons-7.0-beta.pom", - "path": "org/ow2/asm/asm-commons/7.0-beta", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-android-extensions", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-android-extensions-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-android-extensions/1.3.61", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/7.0-beta/asm-commons-7.0-beta.pom" + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.3.61/kotlin-android-extensions-1.3.61.pom" ], - "sha256": "2b30b9d132f43dfba6ebced3c9661b1b5c60187dfc4d5cb7e759224fea7a279e" + "sha256": "ee8052596ba4ba7e3b4e2156285bf639a67b5f8bb8f736bfde9e4535adffa5b9" }, { - "name": "org.ow2.asm-asm-tree-7.0-beta-jar", - "filename": "asm-tree-7.0-beta.jar", - "path": "org/ow2/asm/asm-tree/7.0-beta", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-annotation-processing-gradle", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-annotation-processing-gradle-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/7.0-beta/asm-tree-7.0-beta.jar" + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61/kotlin-annotation-processing-gradle-1.3.61.jar" ], - "sha256": "a2ec5b55ceb359c324ad48b15e912e33c75889237413976d1505fe32ecde82f2" + "sha256": "77ec8e3031145c8952ee3881bd53a243d8d928a69358f7262e585b8aaa08098b" }, { - "name": "org.ow2.asm-asm-tree-7.0-beta-pom", - "filename": "asm-tree-7.0-beta.pom", - "path": "org/ow2/asm/asm-tree/7.0-beta", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-annotation-processing-gradle", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-annotation-processing-gradle-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/7.0-beta/asm-tree-7.0-beta.pom" + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61/kotlin-annotation-processing-gradle-1.3.61.pom" ], - "sha256": "56e37d6b54903ca842eef8fe6c8863bc7f405186bc43e74a21575a3f2428ba70" + "sha256": "af91455f4dfe60bf68b3b3480cb6eaf89ba9ef0d834e70fc5c6d5004b25e6f67" }, { - "name": "org.ow2.asm-asm-7.0-beta-jar", - "filename": "asm-7.0-beta.jar", - "path": "org/ow2/asm/asm/7.0-beta", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-build-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-build-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-build-common/1.3.61", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm/7.0-beta/asm-7.0-beta.jar" + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.61/kotlin-build-common-1.3.61.jar" ], - "sha256": "ba84438f0f08ae2c2f85423dc3628361d20197c46a194687defdf63ed1896a3a" + "sha256": "4e84f7dea34401552a5ab42053f5e521fbd1fafa7b211302ac5cc74242f10249" }, { - "name": "org.ow2.asm-asm-7.0-beta-pom", - "filename": "asm-7.0-beta.pom", - "path": "org/ow2/asm/asm/7.0-beta", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-build-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-build-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-build-common/1.3.61", "urls": [ - "https://plugins.gradle.org/m2/org/ow2/asm/asm/7.0-beta/asm-7.0-beta.pom" + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.61/kotlin-build-common-1.3.61.pom" ], - "sha256": "2d85484e0c0dd935e38edec52a33267ea1d50eb06d4c2ffb90d444c089571f86" + "sha256": "1895b38723fc930cb78ad204558f63385bcda234a6be2c93a5689dccaa3ce679" }, { - "name": "org.ow2-ow2-1.5-pom", - "filename": "ow2-1.5.pom", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-compiler-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-compiler-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61/kotlin-compiler-embeddable-1.3.61.jar" + ], + "sha256": "05a964b4dfcfca057dbcfc352c6a394ba411b9914d956af4cc69f4e64da818e9" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-compiler-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-compiler-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61/kotlin-compiler-embeddable-1.3.61.pom" + ], + "sha256": "281123163ddc5aa8eda536046ce059be9cb6fe24e6307d1fa76585944f9fce80" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-compiler-runner", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-compiler-runner-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-compiler-runner/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.3.61/kotlin-compiler-runner-1.3.61.jar" + ], + "sha256": "2cd0c78e8505c8f162a6de56a083a1cf5bf2f8e7f9781cc34769b969e235c862" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-compiler-runner", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-compiler-runner-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-compiler-runner/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.3.61/kotlin-compiler-runner-1.3.61.pom" + ], + "sha256": "d658aba8a55af3296bb003d8618608c1772e490c0c37b09fee731ff602b059d3" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-daemon-client", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-daemon-client-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-daemon-client/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3.61/kotlin-daemon-client-1.3.61.jar" + ], + "sha256": "1613dfe55c1bfb4b888bdf741525451bf3449834eeae07d66771bd944fdd2940" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-daemon-client", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-daemon-client-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-daemon-client/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3.61/kotlin-daemon-client-1.3.61.pom" + ], + "sha256": "09ad6bcead4c6398140b0676bd891f9b1fd10138d0b5def731e1fd5d049286eb" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-daemon-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-daemon-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61/kotlin-daemon-embeddable-1.3.61.jar" + ], + "sha256": "81ac228adb7c4d39bc4640ece66573ec6f752cbfa13d9b6959e010de55df97af" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-daemon-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-daemon-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61/kotlin-daemon-embeddable-1.3.61.pom" + ], + "sha256": "5e4fca06368d95aa68783bb24b74a2176ba25846b581be290a79ef06be722169" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-gradle-plugin-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.61/kotlin-gradle-plugin-1.3.61.jar" + ], + "sha256": "f702bd95b5a108717f5086e6fa5cc1be4d86f8be7de20a30ce71b2cc64a4d6b5" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-gradle-plugin-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3.61/kotlin-gradle-plugin-1.3.61.pom" + ], + "sha256": "92511642b4b886ccdb1ff0bd24c376adbfa6683ea9147851954a45d061b1020c" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-api", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-gradle-plugin-api-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61/kotlin-gradle-plugin-api-1.3.61.jar" + ], + "sha256": "37523a505f0a7e524a9fd86b763175ceeeed29c331676c8e4a6c21d760e3543e" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-api", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-gradle-plugin-api-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61/kotlin-gradle-plugin-api-1.3.61.pom" + ], + "sha256": "7b70f22cf83bbc6a7aa2a219b5e96e66ea7d9a5f630d4a48a2423af72294d5a9" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-model", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-gradle-plugin-model-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61/kotlin-gradle-plugin-model-1.3.61.jar" + ], + "sha256": "128eb2c9800f38ff62ae8b9ec11d75004f39b7d32a3cf89751fcbffcdd4da6b5" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-model", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-gradle-plugin-model-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61/kotlin-gradle-plugin-model-1.3.61.pom" + ], + "sha256": "19d73513165a436a832e3e898c6e872fd28b6ade8ccfcb3baa51049f364b486c" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-native-utils", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-native-utils-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-native-utils/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.3.61/kotlin-native-utils-1.3.61.jar" + ], + "sha256": "9780246da9087f5052b93af54d0165eb0a5fa1964761b4f1243a45ce02743b6f" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-native-utils", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-native-utils-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-native-utils/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.3.61/kotlin-native-utils-1.3.61.pom" + ], + "sha256": "15f4627d4d22eef959e2710036c49b64b50ac77f535041fd2dfcf401b3fbd731" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-reflect-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.61/kotlin-reflect-1.3.61.jar" + ], + "sha256": "143e715c10ff6d65eb5a7695be7b696c6e013702dff103d23ba54760bf93867b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-reflect-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.61/kotlin-reflect-1.3.61.pom" + ], + "sha256": "b2b8add63c5ce9b67571ed469f7c37fd043ee2420206255e96a146018d8e2fa0" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-sam-with-receiver", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-sam-with-receiver-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61/kotlin-sam-with-receiver-1.3.61.jar" + ], + "sha256": "b654b0c0fde9ea9f68d9aaf993064791070fc7d35274961095f5458c031ef559" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-sam-with-receiver", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-sam-with-receiver-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61/kotlin-sam-with-receiver-1.3.61.pom" + ], + "sha256": "8fa74d745c92f4c106d4652209a67a817ce703ce87b9d563fe01a9b305eb4214" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-script-runtime", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-script-runtime-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61/kotlin-script-runtime-1.3.61.jar" + ], + "sha256": "14ac9a3db7e85983f51f80e5ba027f21575ce2241be1c05f029dd836ac38ec48" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-script-runtime", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-script-runtime-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61/kotlin-script-runtime-1.3.61.pom" + ], + "sha256": "ea189ef8e59b70fd538693a85aa3bf2fb83b08bf7e1d06b3a5dfcbff75e792c0" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.3.61/kotlin-scripting-common-1.3.61.jar" + ], + "sha256": "3041dbb12b63e46c9f4b43db012381b89109e313208b583ce66a1e622294c1ec" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.3.61/kotlin-scripting-common-1.3.61.pom" + ], + "sha256": "f13054cff12fa6d70452f24825b09db5cd0547a00e91a8e5dff74a3e9b4afa69" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-compiler-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61/kotlin-scripting-compiler-embeddable-1.3.61.jar" + ], + "sha256": "190d1bb496a56642bdb49f07f48bc64c67d6e71c951124b8a88d4f69d5edd50b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-compiler-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61/kotlin-scripting-compiler-embeddable-1.3.61.pom" + ], + "sha256": "35f7b58c379dfe7afc7e3c0715de49c17a75900e144ccc63578df3a4ac5e78c1" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-impl-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-compiler-impl-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61/kotlin-scripting-compiler-impl-embeddable-1.3.61.jar" + ], + "sha256": "3885815dfaad81221a55b5c5332664ab596fd76159c6e1b4c85d866af0048255" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-impl-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-compiler-impl-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61/kotlin-scripting-compiler-impl-embeddable-1.3.61.pom" + ], + "sha256": "a3a4d698bbdb2e99d3486b214ddcf97d1b8c7f40adcc62f4ebc251f2553e717d" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-jvm", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-jvm-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61/kotlin-scripting-jvm-1.3.61.jar" + ], + "sha256": "b76fddd6d9a7cfb5de9037048677520baec0547210b82d3c3f26d170396414b8" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-jvm", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-jvm-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61/kotlin-scripting-jvm-1.3.61.pom" + ], + "sha256": "558c9db4916819c7b33c2bad718ce2dca22250bb3ce84f049edbeae9bb2ff1cd" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.jar" + ], + "sha256": "e51e512619a7e7650a30eb4eb3e9c03e6909c7b5e3c026404e076254c098b932" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom" + ], + "sha256": "dbe5babcd8d43e9b08c2845680b53fc1bb3e051c4805802ddd0ed3e8e2c50a84" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.jar" + ], + "sha256": "a2e7f341cf3047b5f00a1917ef777d323cdab2a57377468b8ed62aa31469cf7f" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom" + ], + "sha256": "e22db009bb1a61636d9425635989736db5e3fca494809abf244468dc474cfc04" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk7-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.jar" + ], + "sha256": "11f4a57e3e7d81f3f152d5dcefe39bd77614b5a94125ff3b11526b0a19ac3989" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk7-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.pom" + ], + "sha256": "c416080aeabdb9118a08ee78c28e2856038cd85858422a71f7c46bf276f667a7" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk8-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.jar" + ], + "sha256": "3839ba7deb798375da1807bc469d1cf315db7a6275599f733184374772ec3b21" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk8-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.pom" + ], + "sha256": "e30187e5720ca640b8e68686f20dd0250dcef0193d56e5569c3c4a61277312b6" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-util-io", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-util-io-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-util-io/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.3.61/kotlin-util-io-1.3.61.jar" + ], + "sha256": "4f13b88cdd9f8c992ab1065f176d4eb33b7d1803dd30309f4769b2e64c9af008" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-util-io", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-util-io-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-util-io/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.3.61/kotlin-util-io-1.3.61.pom" + ], + "sha256": "4d0ee73ef6d24d19fc908bf616daf3daa3a070db9aeb00006a36d08dc0989df1" + }, + { + "id": { + "group": "org.jetbrains.kotlin.jvm", + "name": "org.jetbrains.kotlin.jvm.gradle.plugin", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "org.jetbrains.kotlin.jvm.gradle.plugin-1.3.61.pom", + "path": "org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.3.61/org.jetbrains.kotlin.jvm.gradle.plugin-1.3.61.pom" + ], + "sha256": "e0a2e76a4b3a21a0b25944346d9300bfd45c9feb94841ea2a87d81df6e369d40" + }, + { + "id": { + "group": "org.jetbrains.kotlin.kapt", + "name": "org.jetbrains.kotlin.kapt.gradle.plugin", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "org.jetbrains.kotlin.kapt.gradle.plugin-1.3.61.pom", + "path": "org/jetbrains/kotlin/kapt/org.jetbrains.kotlin.kapt.gradle.plugin/1.3.61", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kapt/org.jetbrains.kotlin.kapt.gradle.plugin/1.3.61/org.jetbrains.kotlin.kapt.gradle.plugin-1.3.61.pom" + ], + "sha256": "20984c05c1b1a764ae11296e19e94efcfc90063165af77b527871ef71e5fa10e" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.2.1", + "type": "jar", + "extension": "jar" + }, + "name": "kotlinx-coroutines-core-1.2.1.jar", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1/kotlinx-coroutines-core-1.2.1.jar" + ], + "sha256": "7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.2.1", + "type": "pom", + "extension": "pom" + }, + "name": "kotlinx-coroutines-core-1.2.1.pom", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1", + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1/kotlinx-coroutines-core-1.2.1.pom" + ], + "sha256": "6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c" + }, + { + "id": { + "group": "org.ow2", + "name": "ow2", + "version": "1.5", + "type": "pom", + "extension": "pom" + }, + "name": "ow2-1.5.pom", "path": "org/ow2/ow2/1.5", "urls": [ "https://plugins.gradle.org/m2/org/ow2/ow2/1.5/ow2-1.5.pom" @@ -1075,8 +1723,134 @@ "sha256": "0f8a1b116e760b8fe6389c51b84e4b07a70fc11082d4f936e453b583dd50b43b" }, { - "name": "org.sonatype.forge-forge-parent-10-pom", - "filename": "forge-parent-10.pom", + "id": { + "group": "org.ow2.asm", + "name": "asm", + "version": "7.0-beta", + "type": "jar", + "extension": "jar" + }, + "name": "asm-7.0-beta.jar", + "path": "org/ow2/asm/asm/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm/7.0-beta/asm-7.0-beta.jar" + ], + "sha256": "ba84438f0f08ae2c2f85423dc3628361d20197c46a194687defdf63ed1896a3a" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm", + "version": "7.0-beta", + "type": "pom", + "extension": "pom" + }, + "name": "asm-7.0-beta.pom", + "path": "org/ow2/asm/asm/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm/7.0-beta/asm-7.0-beta.pom" + ], + "sha256": "2d85484e0c0dd935e38edec52a33267ea1d50eb06d4c2ffb90d444c089571f86" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm-analysis", + "version": "7.0-beta", + "type": "jar", + "extension": "jar" + }, + "name": "asm-analysis-7.0-beta.jar", + "path": "org/ow2/asm/asm-analysis/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-analysis/7.0-beta/asm-analysis-7.0-beta.jar" + ], + "sha256": "4d2b20a1fb44acb33b0ddb80be58b2ad7838c1fb520282a655a1217b3c6acf19" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm-analysis", + "version": "7.0-beta", + "type": "pom", + "extension": "pom" + }, + "name": "asm-analysis-7.0-beta.pom", + "path": "org/ow2/asm/asm-analysis/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-analysis/7.0-beta/asm-analysis-7.0-beta.pom" + ], + "sha256": "7a068ba0c921fe69824731f6a1b14f86ff0828a0c5941e5c24b6b501e2f6e69f" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm-commons", + "version": "7.0-beta", + "type": "jar", + "extension": "jar" + }, + "name": "asm-commons-7.0-beta.jar", + "path": "org/ow2/asm/asm-commons/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/7.0-beta/asm-commons-7.0-beta.jar" + ], + "sha256": "3d8ec2534b883541b966e6dde9004967d34f7311789028afc92e2e066867dac4" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm-commons", + "version": "7.0-beta", + "type": "pom", + "extension": "pom" + }, + "name": "asm-commons-7.0-beta.pom", + "path": "org/ow2/asm/asm-commons/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/7.0-beta/asm-commons-7.0-beta.pom" + ], + "sha256": "2b30b9d132f43dfba6ebced3c9661b1b5c60187dfc4d5cb7e759224fea7a279e" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm-tree", + "version": "7.0-beta", + "type": "jar", + "extension": "jar" + }, + "name": "asm-tree-7.0-beta.jar", + "path": "org/ow2/asm/asm-tree/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/7.0-beta/asm-tree-7.0-beta.jar" + ], + "sha256": "a2ec5b55ceb359c324ad48b15e912e33c75889237413976d1505fe32ecde82f2" + }, + { + "id": { + "group": "org.ow2.asm", + "name": "asm-tree", + "version": "7.0-beta", + "type": "pom", + "extension": "pom" + }, + "name": "asm-tree-7.0-beta.pom", + "path": "org/ow2/asm/asm-tree/7.0-beta", + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/7.0-beta/asm-tree-7.0-beta.pom" + ], + "sha256": "56e37d6b54903ca842eef8fe6c8863bc7f405186bc43e74a21575a3f2428ba70" + }, + { + "id": { + "group": "org.sonatype.forge", + "name": "forge-parent", + "version": "10", + "type": "pom", + "extension": "pom" + }, + "name": "forge-parent-10.pom", "path": "org/sonatype/forge/forge-parent/10", "urls": [ "https://plugins.gradle.org/m2/org/sonatype/forge/forge-parent/10/forge-parent-10.pom" @@ -1084,8 +1858,14 @@ "sha256": "c14fb9c32b59cc03251f609416db7c0cff01f811edcccb4f6a865d6e7046bd0b" }, { - "name": "org.sonatype.oss-oss-parent-7-pom", - "filename": "oss-parent-7.pom", + "id": { + "group": "org.sonatype.oss", + "name": "oss-parent", + "version": "7", + "type": "pom", + "extension": "pom" + }, + "name": "oss-parent-7.pom", "path": "org/sonatype/oss/oss-parent/7", "urls": [ "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" @@ -1093,8 +1873,14 @@ "sha256": "b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454" }, { - "name": "org.vafer-jdependency-2.1.1-jar", - "filename": "jdependency-2.1.1.jar", + "id": { + "group": "org.vafer", + "name": "jdependency", + "version": "2.1.1", + "type": "jar", + "extension": "jar" + }, + "name": "jdependency-2.1.1.jar", "path": "org/vafer/jdependency/2.1.1", "urls": [ "https://plugins.gradle.org/m2/org/vafer/jdependency/2.1.1/jdependency-2.1.1.jar" @@ -1102,8 +1888,14 @@ "sha256": "642d23a86217850721d9fa80671683d8308fd03114f0da7af553d43b82013a09" }, { - "name": "org.vafer-jdependency-2.1.1-pom", - "filename": "jdependency-2.1.1.pom", + "id": { + "group": "org.vafer", + "name": "jdependency", + "version": "2.1.1", + "type": "pom", + "extension": "pom" + }, + "name": "jdependency-2.1.1.pom", "path": "org/vafer/jdependency/2.1.1", "urls": [ "https://plugins.gradle.org/m2/org/vafer/jdependency/2.1.1/jdependency-2.1.1.pom" @@ -1114,278 +1906,222 @@ "buildscript": [], "project": [ { - "name": "com.github.ajalt-clikt-2.2.0-jar", - "filename": "clikt-2.2.0.jar", - "path": "com/github/ajalt/clikt/2.2.0", + "id": { + "group": "com.github.ajalt", + "name": "clikt", + "version": "2.3.0", + "type": "jar", + "extension": "jar" + }, + "name": "clikt-2.3.0.jar", + "path": "com/github/ajalt/clikt/2.3.0", "urls": [ - "https://jcenter.bintray.com/com/github/ajalt/clikt/2.2.0/clikt-2.2.0.jar", - "https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.2.0/clikt-2.2.0.jar" + "https://jcenter.bintray.com/com/github/ajalt/clikt/2.3.0/clikt-2.3.0.jar", + "https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.3.0/clikt-2.3.0.jar" ], - "sha256": "beb3136d06764ec8ce0810a8fd6c8b7b49d04287d1deef3a07c016e43a458d33" + "sha256": "f305b7f2467bebd95c9dce0f7ae30e7ea0984ba336dcf99a9fad321e87c98900" }, { - "name": "com.github.ajalt-clikt-2.2.0-pom", - "filename": "clikt-2.2.0.pom", - "path": "com/github/ajalt/clikt/2.2.0", + "id": { + "group": "com.github.ajalt", + "name": "clikt", + "version": "2.3.0", + "type": "pom", + "extension": "pom" + }, + "name": "clikt-2.3.0.pom", + "path": "com/github/ajalt/clikt/2.3.0", "urls": [ - "https://jcenter.bintray.com/com/github/ajalt/clikt/2.2.0/clikt-2.2.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.2.0/clikt-2.2.0.pom" + "https://jcenter.bintray.com/com/github/ajalt/clikt/2.3.0/clikt-2.3.0.pom", + "https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.3.0/clikt-2.3.0.pom" ], - "sha256": "f78f39938875be9b744752a50bab9478ac2acae072e71fbfee6d4e2ca56013c8" + "sha256": "621ab7f33d23dae0b190b16d840271643202bb888cfb5395a8cf775777a9d5b7" }, { - "name": "com.google.auto-auto-common-0.10-jar", - "filename": "auto-common-0.10.jar", - "path": "com/google/auto/auto-common/0.10", + "id": { + "group": "com.squareup", + "name": "kotlinpoet", + "version": "1.4.4", + "type": "jar", + "extension": "jar" + }, + "name": "kotlinpoet-1.4.4.jar", + "path": "com/squareup/kotlinpoet/1.4.4", "urls": [ - "https://jcenter.bintray.com/com/google/auto/auto-common/0.10/auto-common-0.10.jar", - "https://repo.gradle.org/gradle/libs-releases/com/google/auto/auto-common/0.10/auto-common-0.10.jar" + "https://jcenter.bintray.com/com/squareup/kotlinpoet/1.4.4/kotlinpoet-1.4.4.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/kotlinpoet/1.4.4/kotlinpoet-1.4.4.jar" ], - "sha256": "b876b5fddaceeba7d359667f6c4fb8c6f8658da1ab902ffb79ec9a415deede5f" + "sha256": "b3e35adfdf5d4fae4e0ed6a0d1347e0ed7c8bdf034f1d66193e6165d6ec4e21d" }, { - "name": "com.google.auto-auto-common-0.10-pom", - "filename": "auto-common-0.10.pom", - "path": "com/google/auto/auto-common/0.10", + "id": { + "group": "com.squareup", + "name": "kotlinpoet", + "version": "1.4.4", + "type": "pom", + "extension": "pom" + }, + "name": "kotlinpoet-1.4.4.pom", + "path": "com/squareup/kotlinpoet/1.4.4", "urls": [ - "https://jcenter.bintray.com/com/google/auto/auto-common/0.10/auto-common-0.10.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/auto/auto-common/0.10/auto-common-0.10.pom" + "https://jcenter.bintray.com/com/squareup/kotlinpoet/1.4.4/kotlinpoet-1.4.4.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/kotlinpoet/1.4.4/kotlinpoet-1.4.4.pom" ], - "sha256": "467ade17a0709d7b1d5c461e67f359e4effc5230fc62bd0be280ece1a08f0332" + "sha256": "ee1a58f2289be8971ce0f2b8f520a3c6507c94a76f9742e000f227c62d93dc47" }, { - "name": "com.google.auto-auto-parent-6-pom", - "filename": "auto-parent-6.pom", - "path": "com/google/auto/auto-parent/6", + "id": { + "group": "com.squareup.moshi", + "name": "moshi", + "version": "1.9.2", + "type": "jar", + "extension": "jar" + }, + "name": "moshi-1.9.2.jar", + "path": "com/squareup/moshi/moshi/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/auto/auto-parent/6/auto-parent-6.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/auto/auto-parent/6/auto-parent-6.pom" + "https://jcenter.bintray.com/com/squareup/moshi/moshi/1.9.2/moshi-1.9.2.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi/1.9.2/moshi-1.9.2.jar" ], - "sha256": "05f740c6648165db00cf618dd56c200c4725e358e6d54f5853e0bec15734ea0a" + "sha256": "48d73cc1fcef935635442700cf50a1174a3dcd2535c9fee320b70df0a83587bc" }, { - "name": "com.google.code.findbugs-jsr305-1.3.9-jar", - "filename": "jsr305-1.3.9.jar", - "path": "com/google/code/findbugs/jsr305/1.3.9", + "id": { + "group": "com.squareup.moshi", + "name": "moshi", + "version": "1.9.2", + "type": "pom", + "extension": "pom" + }, + "name": "moshi-1.9.2.pom", + "path": "com/squareup/moshi/moshi/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar", - "https://repo.gradle.org/gradle/libs-releases/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar" + "https://jcenter.bintray.com/com/squareup/moshi/moshi/1.9.2/moshi-1.9.2.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi/1.9.2/moshi-1.9.2.pom" ], - "sha256": "905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed" + "sha256": "6dfb37f452309d97561a64f4f20df967a3acd72d74fde43af6de75180881ac1c" }, { - "name": "com.google.code.findbugs-jsr305-1.3.9-pom", - "filename": "jsr305-1.3.9.pom", - "path": "com/google/code/findbugs/jsr305/1.3.9", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-adapters", + "version": "1.9.2", + "type": "jar", + "extension": "jar" + }, + "name": "moshi-adapters-1.9.2.jar", + "path": "com/squareup/moshi/moshi-adapters/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-adapters/1.9.2/moshi-adapters-1.9.2.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-adapters/1.9.2/moshi-adapters-1.9.2.jar" ], - "sha256": "feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a" + "sha256": "142f03ef3750ff6e4c46f71e709559bfc8b5cb623d9e68fa59a600a936ff5ca6" }, { - "name": "com.google.errorprone-error_prone_annotations-2.0.18-jar", - "filename": "error_prone_annotations-2.0.18.jar", - "path": "com/google/errorprone/error_prone_annotations/2.0.18", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-adapters", + "version": "1.9.2", + "type": "pom", + "extension": "pom" + }, + "name": "moshi-adapters-1.9.2.pom", + "path": "com/squareup/moshi/moshi-adapters/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar", - "https://repo.gradle.org/gradle/libs-releases/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-adapters/1.9.2/moshi-adapters-1.9.2.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-adapters/1.9.2/moshi-adapters-1.9.2.pom" ], - "sha256": "cb4cfad870bf563a07199f3ebea5763f0dec440fcda0b318640b1feaa788656b" + "sha256": "e98377c868bdd53d7850b9dc47ac3b843532fa59a8c959ed0ff0e92c5e7b576d" }, { - "name": "com.google.errorprone-error_prone_annotations-2.0.18-pom", - "filename": "error_prone_annotations-2.0.18.pom", - "path": "com/google/errorprone/error_prone_annotations/2.0.18", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-kotlin", + "version": "1.9.2", + "type": "jar", + "extension": "jar" + }, + "name": "moshi-kotlin-1.9.2.jar", + "path": "com/squareup/moshi/moshi-kotlin/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.pom" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin/1.9.2/moshi-kotlin-1.9.2.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin/1.9.2/moshi-kotlin-1.9.2.jar" ], - "sha256": "9144127192d6f612c2366825dceaeb23b0d53130b83e0bf1ffe107d1470a8487" + "sha256": "97a91bd93234a5991a79ee67858b512bc63040031e694622547762b1448b6ed4" }, { - "name": "com.google.errorprone-error_prone_parent-2.0.18-pom", - "filename": "error_prone_parent-2.0.18.pom", - "path": "com/google/errorprone/error_prone_parent/2.0.18", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-kotlin", + "version": "1.9.2", + "type": "pom", + "extension": "pom" + }, + "name": "moshi-kotlin-1.9.2.pom", + "path": "com/squareup/moshi/moshi-kotlin/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin/1.9.2/moshi-kotlin-1.9.2.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin/1.9.2/moshi-kotlin-1.9.2.pom" ], - "sha256": "cf149955279b07d4f11e817985c1164a69e930d73db7441b43a6ef53bbd286c4" + "sha256": "8bcf8168a793e4e32545d2a26968c9b0780d356f3d190fca06a373b97ebf8331" }, { - "name": "com.google.guava-guava-parent-23.5-jre-pom", - "filename": "guava-parent-23.5-jre.pom", - "path": "com/google/guava/guava-parent/23.5-jre", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-kotlin-codegen", + "version": "1.9.2", + "type": "jar", + "extension": "jar" + }, + "name": "moshi-kotlin-codegen-1.9.2.jar", + "path": "com/squareup/moshi/moshi-kotlin-codegen/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/guava/guava-parent/23.5-jre/guava-parent-23.5-jre.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/guava/guava-parent/23.5-jre/guava-parent-23.5-jre.pom" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin-codegen/1.9.2/moshi-kotlin-codegen-1.9.2.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin-codegen/1.9.2/moshi-kotlin-codegen-1.9.2.jar" ], - "sha256": "d69af85990f77ef54b4aa8e744c014de811cad8a62e790b177c219b59c75d918" + "sha256": "39d8e9631ec807682dbebc68b1ec9929ddac665939fd543bf434e3f6212272f3" }, { - "name": "com.google.guava-guava-23.5-jre-jar", - "filename": "guava-23.5-jre.jar", - "path": "com/google/guava/guava/23.5-jre", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-kotlin-codegen", + "version": "1.9.2", + "type": "pom", + "extension": "pom" + }, + "name": "moshi-kotlin-codegen-1.9.2.pom", + "path": "com/squareup/moshi/moshi-kotlin-codegen/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/guava/guava/23.5-jre/guava-23.5-jre.jar", - "https://repo.gradle.org/gradle/libs-releases/com/google/guava/guava/23.5-jre/guava-23.5-jre.jar" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin-codegen/1.9.2/moshi-kotlin-codegen-1.9.2.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin-codegen/1.9.2/moshi-kotlin-codegen-1.9.2.pom" ], - "sha256": "c9467788effbc7e6b0654a3fd7c7e0444d704664a322d218ea8c7276b16422bb" + "sha256": "70ccb176c4b019676973ad94e6b95c71be11474b5b75c6709cd3bfbc94c105e8" }, { - "name": "com.google.guava-guava-23.5-jre-pom", - "filename": "guava-23.5-jre.pom", - "path": "com/google/guava/guava/23.5-jre", + "id": { + "group": "com.squareup.moshi", + "name": "moshi-parent", + "version": "1.9.2", + "type": "pom", + "extension": "pom" + }, + "name": "moshi-parent-1.9.2.pom", + "path": "com/squareup/moshi/moshi-parent/1.9.2", "urls": [ - "https://jcenter.bintray.com/com/google/guava/guava/23.5-jre/guava-23.5-jre.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/guava/guava/23.5-jre/guava-23.5-jre.pom" + "https://jcenter.bintray.com/com/squareup/moshi/moshi-parent/1.9.2/moshi-parent-1.9.2.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-parent/1.9.2/moshi-parent-1.9.2.pom" ], - "sha256": "4cb119d8d4f8a5fe29bab420483bd548e1df1df7e73a6f687b566a8283ba23d9" + "sha256": "20065081c581782668f6523da4582dec2e87bc753c7ed0bfff3ae7e1b5db641a" }, { - "name": "com.google.j2objc-j2objc-annotations-1.1-jar", - "filename": "j2objc-annotations-1.1.jar", - "path": "com/google/j2objc/j2objc-annotations/1.1", - "urls": [ - "https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar", - "https://repo.gradle.org/gradle/libs-releases/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar" - ], - "sha256": "2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6" - }, - { - "name": "com.google.j2objc-j2objc-annotations-1.1-pom", - "filename": "j2objc-annotations-1.1.pom", - "path": "com/google/j2objc/j2objc-annotations/1.1", - "urls": [ - "https://jcenter.bintray.com/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom", - "https://repo.gradle.org/gradle/libs-releases/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom" - ], - "sha256": "f0c98c571e93a7cb4dd18df0fa308f0963e7a0620ac2d4244e61e709d03ad6be" - }, - { - "name": "com.squareup.moshi-moshi-adapters-1.8.0-jar", - "filename": "moshi-adapters-1.8.0.jar", - "path": "com/squareup/moshi/moshi-adapters/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-adapters/1.8.0/moshi-adapters-1.8.0.jar", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-adapters/1.8.0/moshi-adapters-1.8.0.jar" - ], - "sha256": "b19e8cf6840dd6106044f89d0df1004fdcf7658695c8e56e7219c1d9d639be01" - }, - { - "name": "com.squareup.moshi-moshi-adapters-1.8.0-pom", - "filename": "moshi-adapters-1.8.0.pom", - "path": "com/squareup/moshi/moshi-adapters/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-adapters/1.8.0/moshi-adapters-1.8.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-adapters/1.8.0/moshi-adapters-1.8.0.pom" - ], - "sha256": "0084fb6692b86e625de32f9b58f4e4cd756ddc7acee1daee944267c75e31c370" - }, - { - "name": "com.squareup.moshi-moshi-kotlin-codegen-1.8.0-jar", - "filename": "moshi-kotlin-codegen-1.8.0.jar", - "path": "com/squareup/moshi/moshi-kotlin-codegen/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin-codegen/1.8.0/moshi-kotlin-codegen-1.8.0.jar", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin-codegen/1.8.0/moshi-kotlin-codegen-1.8.0.jar" - ], - "sha256": "f67b5a28f4705a982ab395930414f4583529ae4f42790e246757db4a6f4cb265" - }, - { - "name": "com.squareup.moshi-moshi-kotlin-codegen-1.8.0-pom", - "filename": "moshi-kotlin-codegen-1.8.0.pom", - "path": "com/squareup/moshi/moshi-kotlin-codegen/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin-codegen/1.8.0/moshi-kotlin-codegen-1.8.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin-codegen/1.8.0/moshi-kotlin-codegen-1.8.0.pom" - ], - "sha256": "5b9bd63af00c85c22c9f482bb9b7d5cfb0789984041e41687a0af755dd0a360f" - }, - { - "name": "com.squareup.moshi-moshi-kotlin-1.8.0-jar", - "filename": "moshi-kotlin-1.8.0.jar", - "path": "com/squareup/moshi/moshi-kotlin/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin/1.8.0/moshi-kotlin-1.8.0.jar", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin/1.8.0/moshi-kotlin-1.8.0.jar" - ], - "sha256": "820a13c37253ea8c51db7e1af02b6af6f38a4bd3b75648f4fb93ba20ebdb50ba" - }, - { - "name": "com.squareup.moshi-moshi-kotlin-1.8.0-pom", - "filename": "moshi-kotlin-1.8.0.pom", - "path": "com/squareup/moshi/moshi-kotlin/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-kotlin/1.8.0/moshi-kotlin-1.8.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-kotlin/1.8.0/moshi-kotlin-1.8.0.pom" - ], - "sha256": "6a65f7d4a3c635c17c246e9b7a1b7e35ca20270f1e939052d2976a9ab30600c2" - }, - { - "name": "com.squareup.moshi-moshi-parent-1.8.0-pom", - "filename": "moshi-parent-1.8.0.pom", - "path": "com/squareup/moshi/moshi-parent/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom" - ], - "sha256": "dadf14cd7fee49ec6b82a90e45d71cc1ac758a65531701ad94dcbef7cc603fb7" - }, - { - "name": "com.squareup.moshi-moshi-1.8.0-jar", - "filename": "moshi-1.8.0.jar", - "path": "com/squareup/moshi/moshi/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar" - ], - "sha256": "42fe746d2694ea11fe6a02becd9da2ca3dafe97c9efd50a0f9af5c4596e74a6a" - }, - { - "name": "com.squareup.moshi-moshi-1.8.0-pom", - "filename": "moshi-1.8.0.pom", - "path": "com/squareup/moshi/moshi/1.8.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom" - ], - "sha256": "14bb8059b9dd76200259290df887e37e669a074aac9c899401e3c8102fe5208f" - }, - { - "name": "com.squareup.okio-okio-metadata-2.4.1-jar", - "filename": "okio-metadata-2.4.1.jar", - "path": "com/squareup/okio/okio-metadata/2.4.1", - "urls": [ - "https://jcenter.bintray.com/com/squareup/okio/okio-metadata/2.4.1/okio-metadata-2.4.1.jar", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-metadata/2.4.1/okio-metadata-2.4.1.jar" - ], - "sha256": "425b2b369dec893cffb69fce08bf465a8d2aa01d0455e388ca63d1a1b35c6483" - }, - { - "name": "com.squareup.okio-okio-metadata-2.4.1-pom", - "filename": "okio-metadata-2.4.1.pom", - "path": "com/squareup/okio/okio-metadata/2.4.1", - "urls": [ - "https://jcenter.bintray.com/com/squareup/okio/okio-metadata/2.4.1/okio-metadata-2.4.1.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-metadata/2.4.1/okio-metadata-2.4.1.pom" - ], - "sha256": "21e36ace2b30fdb06c2896a0561aad4d180af5918d6ab92f6c252d433564273d" - }, - { - "name": "com.squareup.okio-okio-parent-1.16.0-pom", - "filename": "okio-parent-1.16.0.pom", - "path": "com/squareup/okio/okio-parent/1.16.0", - "urls": [ - "https://jcenter.bintray.com/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom" - ], - "sha256": "0b7424c3faab3bb5333096e39957f88f8d50ce0c98bfba71a3fcfaa0aaf0552c" - }, - { - "name": "com.squareup.okio-okio-1.16.0-jar", - "filename": "okio-1.16.0.jar", + "id": { + "group": "com.squareup.okio", + "name": "okio", + "version": "1.16.0", + "type": "jar", + "extension": "jar" + }, + "name": "okio-1.16.0.jar", "path": "com/squareup/okio/okio/1.16.0", "urls": [ "https://jcenter.bintray.com/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar", @@ -1394,8 +2130,14 @@ "sha256": "ec0484ff1903640e3845c2b10abb99eff2d32308ffe3459e5f92309a451b9c7e" }, { - "name": "com.squareup.okio-okio-1.16.0-pom", - "filename": "okio-1.16.0.pom", + "id": { + "group": "com.squareup.okio", + "name": "okio", + "version": "1.16.0", + "type": "pom", + "extension": "pom" + }, + "name": "okio-1.16.0.pom", "path": "com/squareup/okio/okio/1.16.0", "urls": [ "https://jcenter.bintray.com/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom", @@ -1404,598 +2146,188 @@ "sha256": "1d2521621c0875123aa91311b2fe8edefd0ed93f66be6dfea18cc61bc5c99e36" }, { - "name": "com.squareup.okio-okio-2.4.1-jar", - "filename": "okio-2.4.1.jar", - "path": "com/squareup/okio/okio/2.4.1", + "id": { + "group": "com.squareup.okio", + "name": "okio", + "version": "2.4.3", + "type": "jar", + "extension": "jar" + }, + "name": "okio-2.4.3.jar", + "path": "com/squareup/okio/okio/2.4.3", "urls": [ - "https://jcenter.bintray.com/com/squareup/okio/okio/2.4.1/okio-2.4.1.jar", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio/2.4.1/okio-2.4.1.jar" + "https://jcenter.bintray.com/com/squareup/okio/okio/2.4.3/okio-2.4.3.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio/2.4.3/okio-2.4.3.jar" ], - "sha256": "8b3ca9c9fb516ab2623bb4a3cfef0a5fa8580188eed9127cdefc1a0088d1fa7e" + "sha256": "183339dcac9b85dc1d192654fdfc0e473bff3b5edcba7d3a8086ea9ae683457e" }, { - "name": "com.squareup.okio-okio-2.4.1-pom", - "filename": "okio-2.4.1.pom", - "path": "com/squareup/okio/okio/2.4.1", + "id": { + "group": "com.squareup.okio", + "name": "okio", + "version": "2.4.3", + "type": "module", + "extension": "module" + }, + "name": "okio-2.4.3.module", + "path": "com/squareup/okio/okio/2.4.3", "urls": [ - "https://jcenter.bintray.com/com/squareup/okio/okio/2.4.1/okio-2.4.1.pom", - "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio/2.4.1/okio-2.4.1.pom" + "https://jcenter.bintray.com/com/squareup/okio/okio/2.4.3/okio-2.4.3.module", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio/2.4.3/okio-2.4.3.module" ], - "sha256": "c6ec2b53cb2baa4db98ed2b9f5c844d64a8b9b09aa59cdaa1460e5feec56b464" + "sha256": "9e4e05f01fe535b9db86ac67b62ea23e93427eae0e62e6b12e9991fbb7b20964" }, { - "name": "me.eugeniomarletti.kotlin.metadata-kotlin-compiler-lite-1.0.3-k-1.2.40-jar", - "filename": "kotlin-compiler-lite-1.0.3-k-1.2.40.jar", - "path": "me/eugeniomarletti/kotlin/metadata/kotlin-compiler-lite/1.0.3-k-1.2.40", + "id": { + "group": "com.squareup.okio", + "name": "okio", + "version": "2.4.3", + "type": "pom", + "extension": "pom" + }, + "name": "okio-2.4.3.pom", + "path": "com/squareup/okio/okio/2.4.3", "urls": [ - "https://jcenter.bintray.com/me/eugeniomarletti/kotlin/metadata/kotlin-compiler-lite/1.0.3-k-1.2.40/kotlin-compiler-lite-1.0.3-k-1.2.40.jar", - "https://repo.gradle.org/gradle/libs-releases/me/eugeniomarletti/kotlin/metadata/kotlin-compiler-lite/1.0.3-k-1.2.40/kotlin-compiler-lite-1.0.3-k-1.2.40.jar" + "https://jcenter.bintray.com/com/squareup/okio/okio/2.4.3/okio-2.4.3.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio/2.4.3/okio-2.4.3.pom" ], - "sha256": "7d0e1e47dc984ffc0f4bc4285e6298f8515a68d2a6cec28f107af95916b42f40" + "sha256": "b2d1aabc28cb364df6636e33d54be4570ab731634a12e79f153d5734437bb82c" }, { - "name": "me.eugeniomarletti.kotlin.metadata-kotlin-compiler-lite-1.0.3-k-1.2.40-pom", - "filename": "kotlin-compiler-lite-1.0.3-k-1.2.40.pom", - "path": "me/eugeniomarletti/kotlin/metadata/kotlin-compiler-lite/1.0.3-k-1.2.40", + "id": { + "group": "com.squareup.okio", + "name": "okio-metadata", + "version": "2.4.3", + "type": "jar", + "extension": "jar" + }, + "name": "okio-metadata-2.4.3.jar", + "path": "com/squareup/okio/okio-metadata/2.4.3", "urls": [ - "https://jcenter.bintray.com/me/eugeniomarletti/kotlin/metadata/kotlin-compiler-lite/1.0.3-k-1.2.40/kotlin-compiler-lite-1.0.3-k-1.2.40.pom", - "https://repo.gradle.org/gradle/libs-releases/me/eugeniomarletti/kotlin/metadata/kotlin-compiler-lite/1.0.3-k-1.2.40/kotlin-compiler-lite-1.0.3-k-1.2.40.pom" + "https://jcenter.bintray.com/com/squareup/okio/okio-metadata/2.4.3/okio-metadata-2.4.3.jar", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-metadata/2.4.3/okio-metadata-2.4.3.jar" ], - "sha256": "459cce6089ea6dc9ae71e554baac51d16375126fe8b4600008157932156de8b6" + "sha256": "2be9e58c4e69a08eee5b2248a3e2e88383c3a42b72b7976ddcf87f0f74cca099" }, { - "name": "me.eugeniomarletti.kotlin.metadata-kotlin-metadata-1.4.0-jar", - "filename": "kotlin-metadata-1.4.0.jar", - "path": "me/eugeniomarletti/kotlin/metadata/kotlin-metadata/1.4.0", + "id": { + "group": "com.squareup.okio", + "name": "okio-metadata", + "version": "2.4.3", + "type": "module", + "extension": "module" + }, + "name": "okio-metadata-2.4.3.module", + "path": "com/squareup/okio/okio-metadata/2.4.3", "urls": [ - "https://jcenter.bintray.com/me/eugeniomarletti/kotlin/metadata/kotlin-metadata/1.4.0/kotlin-metadata-1.4.0.jar", - "https://repo.gradle.org/gradle/libs-releases/me/eugeniomarletti/kotlin/metadata/kotlin-metadata/1.4.0/kotlin-metadata-1.4.0.jar" + "https://jcenter.bintray.com/com/squareup/okio/okio-metadata/2.4.3/okio-metadata-2.4.3.module", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-metadata/2.4.3/okio-metadata-2.4.3.module" ], - "sha256": "82e70eef0d1482dae059e951dece1286d6032196316a8143eb2c6d2d2959e48d" + "sha256": "481b982b4a6eba03e5b87bc699f47595814cd9ae72c74bd230040a3243c72f3a" }, { - "name": "me.eugeniomarletti.kotlin.metadata-kotlin-metadata-1.4.0-pom", - "filename": "kotlin-metadata-1.4.0.pom", - "path": "me/eugeniomarletti/kotlin/metadata/kotlin-metadata/1.4.0", + "id": { + "group": "com.squareup.okio", + "name": "okio-metadata", + "version": "2.4.3", + "type": "pom", + "extension": "pom" + }, + "name": "okio-metadata-2.4.3.pom", + "path": "com/squareup/okio/okio-metadata/2.4.3", "urls": [ - "https://jcenter.bintray.com/me/eugeniomarletti/kotlin/metadata/kotlin-metadata/1.4.0/kotlin-metadata-1.4.0.pom", - "https://repo.gradle.org/gradle/libs-releases/me/eugeniomarletti/kotlin/metadata/kotlin-metadata/1.4.0/kotlin-metadata-1.4.0.pom" + "https://jcenter.bintray.com/com/squareup/okio/okio-metadata/2.4.3/okio-metadata-2.4.3.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-metadata/2.4.3/okio-metadata-2.4.3.pom" ], - "sha256": "d492555bb4d11ece1d0456d27d189ffefb588be186f417430b4485c7f41ff8e6" + "sha256": "86bcb210e3b62b90a1f66a00d7cd53415fba5d7cbd42b26279bf323df2dff7d0" }, { - "name": "org.checkerframework-checker-qual-2.0.0-jar", - "filename": "checker-qual-2.0.0.jar", - "path": "org/checkerframework/checker-qual/2.0.0", + "id": { + "group": "com.squareup.okio", + "name": "okio-parent", + "version": "1.16.0", + "type": "pom", + "extension": "pom" + }, + "name": "okio-parent-1.16.0.pom", + "path": "com/squareup/okio/okio-parent/1.16.0", "urls": [ - "https://jcenter.bintray.com/org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0.jar", - "https://repo.gradle.org/gradle/libs-releases/org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0.jar" + "https://jcenter.bintray.com/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom", + "https://repo.gradle.org/gradle/libs-releases/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom" ], - "sha256": "fc8441632f5fa5537492c9f026d1c8b1adb6a7796f46031b04b4cc0622427995" + "sha256": "0b7424c3faab3bb5333096e39957f88f8d50ce0c98bfba71a3fcfaa0aaf0552c" }, { - "name": "org.checkerframework-checker-qual-2.0.0-pom", - "filename": "checker-qual-2.0.0.pom", - "path": "org/checkerframework/checker-qual/2.0.0", + "id": { + "group": "net.swiftzer.semver", + "name": "semver", + "version": "1.1.1", + "type": "jar", + "extension": "jar" + }, + "name": "semver-1.1.1.jar", + "path": "net/swiftzer/semver/semver/1.1.1", "urls": [ - "https://jcenter.bintray.com/org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0.pom", - "https://repo.gradle.org/gradle/libs-releases/org/checkerframework/checker-qual/2.0.0/checker-qual-2.0.0.pom" + "https://jcenter.bintray.com/net/swiftzer/semver/semver/1.1.1/semver-1.1.1.jar", + "https://repo.gradle.org/gradle/libs-releases/net/swiftzer/semver/semver/1.1.1/semver-1.1.1.jar" ], - "sha256": "deb10353dd2b1bee0e548b74014d80a1179a8faaf8d0d886c01b4d6ca9300068" + "sha256": "757eeb1c6703b81fa3bb6bc2eae7a5fe6ddac5d833b977aa1ce08979d7c2de5a" }, { - "name": "org.codehaus.mojo-animal-sniffer-annotations-1.14-jar", - "filename": "animal-sniffer-annotations-1.14.jar", - "path": "org/codehaus/mojo/animal-sniffer-annotations/1.14", + "id": { + "group": "net.swiftzer.semver", + "name": "semver", + "version": "1.1.1", + "type": "pom", + "extension": "pom" + }, + "name": "semver-1.1.1.pom", + "path": "net/swiftzer/semver/semver/1.1.1", "urls": [ - "https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar" + "https://jcenter.bintray.com/net/swiftzer/semver/semver/1.1.1/semver-1.1.1.pom", + "https://repo.gradle.org/gradle/libs-releases/net/swiftzer/semver/semver/1.1.1/semver-1.1.1.pom" ], - "sha256": "2068320bd6bad744c3673ab048f67e30bef8f518996fa380033556600669905d" + "sha256": "5d65513ed1a37cc927e4261a1c9f198ea4b033dbf88930358c37b61fe63c00e7" }, { - "name": "org.codehaus.mojo-animal-sniffer-annotations-1.14-pom", - "filename": "animal-sniffer-annotations-1.14.pom", - "path": "org/codehaus/mojo/animal-sniffer-annotations/1.14", + "id": { + "group": "org.gradle", + "name": "gradle-tooling-api", + "version": "6.1", + "type": "jar", + "extension": "jar" + }, + "name": "gradle-tooling-api-6.1.jar", + "path": "org/gradle/gradle-tooling-api/6.1", "urls": [ - "https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.pom", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.pom" + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/6.1/gradle-tooling-api-6.1.jar" ], - "sha256": "1879f19a05991e3ed95910b96689333396b0c467a215dc4d1f90018404b72a26" + "sha256": "a53e4ed4f5495c3656a438e684e3604cfcd9f21963385b4c1ba67540e3c0a105" }, { - "name": "org.codehaus.mojo-animal-sniffer-parent-1.14-pom", - "filename": "animal-sniffer-parent-1.14.pom", - "path": "org/codehaus/mojo/animal-sniffer-parent/1.14", + "id": { + "group": "org.gradle", + "name": "gradle-tooling-api", + "version": "6.1", + "type": "pom", + "extension": "pom" + }, + "name": "gradle-tooling-api-6.1.pom", + "path": "org/gradle/gradle-tooling-api/6.1", "urls": [ - "https://jcenter.bintray.com/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14.pom", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14.pom" + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/6.1/gradle-tooling-api-6.1.pom" ], - "sha256": "f51550a06b1410bd4962cb0e71df0b921a60a7ef47bfa9c4825a14be72316eea" + "sha256": "b01078d8a2beed5ec68e459156f99daf9be89b1819bcd9744dcba2793276cb02" }, { - "name": "org.codehaus.mojo-mojo-parent-34-pom", - "filename": "mojo-parent-34.pom", - "path": "org/codehaus/mojo/mojo-parent/34", - "urls": [ - "https://jcenter.bintray.com/org/codehaus/mojo/mojo-parent/34/mojo-parent-34.pom", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/mojo/mojo-parent/34/mojo-parent-34.pom" - ], - "sha256": "3e395d6fbc43c09a3774cac8694ce527398305ea3fd5492d80e25af27d382a9c" - }, - { - "name": "org.codehaus-codehaus-parent-4-pom", - "filename": "codehaus-parent-4.pom", - "path": "org/codehaus/codehaus-parent/4", - "urls": [ - "https://jcenter.bintray.com/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom" - ], - "sha256": "6b87237de8c2e1740cf80627c7f3ce3e15de1930bb250c55a1eca94fa3e014df" - }, - { - "name": "org.gradle-gradle-tooling-api-5.6.2-jar", - "filename": "gradle-tooling-api-5.6.2.jar", - "path": "org/gradle/gradle-tooling-api/5.6.2", - "urls": [ - "https://jcenter.bintray.com/org/gradle/gradle-tooling-api/5.6.2/gradle-tooling-api-5.6.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/5.6.2/gradle-tooling-api-5.6.2.jar" - ], - "sha256": "0c363c82b6096643901a5ded9be9cc6b99f85de61baaaa9d6a7cf2450e3ad6c6" - }, - { - "name": "org.gradle-gradle-tooling-api-5.6.2-pom", - "filename": "gradle-tooling-api-5.6.2.pom", - "path": "org/gradle/gradle-tooling-api/5.6.2", - "urls": [ - "https://jcenter.bintray.com/org/gradle/gradle-tooling-api/5.6.2/gradle-tooling-api-5.6.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/5.6.2/gradle-tooling-api-5.6.2.pom" - ], - "sha256": "541b7921833198b0aa1673909df4bd297006f2b2c912d66bcd3c76410f80b657" - }, - { - "name": "org.jetbrains.intellij.deps-trove4j-1.0.20181211-jar", - "filename": "trove4j-1.0.20181211.jar", - "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar" - ], - "sha256": "affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601" - }, - { - "name": "org.jetbrains.intellij.deps-trove4j-1.0.20181211-pom", - "filename": "trove4j-1.0.20181211.pom", - "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom" - ], - "sha256": "310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a" - }, - { - "name": "org.jetbrains.kotlin-kotlin-annotation-processing-embeddable-1.2.71-jar", - "filename": "kotlin-annotation-processing-embeddable-1.2.71.jar", - "path": "org/jetbrains/kotlin/kotlin-annotation-processing-embeddable/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processing-embeddable/1.2.71/kotlin-annotation-processing-embeddable-1.2.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-annotation-processing-embeddable/1.2.71/kotlin-annotation-processing-embeddable-1.2.71.jar" - ], - "sha256": "acfa1827a88a7c9e551e4caaa735ab9fbb6c54285ee32fb06b0276fec2c6c7a7" - }, - { - "name": "org.jetbrains.kotlin-kotlin-annotation-processing-embeddable-1.2.71-pom", - "filename": "kotlin-annotation-processing-embeddable-1.2.71.pom", - "path": "org/jetbrains/kotlin/kotlin-annotation-processing-embeddable/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processing-embeddable/1.2.71/kotlin-annotation-processing-embeddable-1.2.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-annotation-processing-embeddable/1.2.71/kotlin-annotation-processing-embeddable-1.2.71.pom" - ], - "sha256": "b83b4e4f9136faebfa7ec90b8c9d75bd2eb1c294c492eddae9f80da54bc9aae1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-annotation-processing-gradle-1.3.41-jar", - "filename": "kotlin-annotation-processing-gradle-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41/kotlin-annotation-processing-gradle-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41/kotlin-annotation-processing-gradle-1.3.41.jar" - ], - "sha256": "980965a550c50f424a2c6306dec7d5a0ac94a21e1aa8dbe87f7224774d44113c" - }, - { - "name": "org.jetbrains.kotlin-kotlin-annotation-processing-gradle-1.3.41-pom", - "filename": "kotlin-annotation-processing-gradle-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41/kotlin-annotation-processing-gradle-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.41/kotlin-annotation-processing-gradle-1.3.41.pom" - ], - "sha256": "f00bc1f5e8d853238d7225ef503f3cc931d91dd1b37007d360f2c2d1b1eaad27" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-embeddable-1.2.71-jar", - "filename": "kotlin-compiler-embeddable-1.2.71.jar", - "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.71/kotlin-compiler-embeddable-1.2.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.71/kotlin-compiler-embeddable-1.2.71.jar" - ], - "sha256": "623e546310d3da89ed2bc0cf9f7fedd78fadd9cd65d2ff798fa894c14e527665" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-embeddable-1.2.71-pom", - "filename": "kotlin-compiler-embeddable-1.2.71.pom", - "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.71/kotlin-compiler-embeddable-1.2.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.2.71/kotlin-compiler-embeddable-1.2.71.pom" - ], - "sha256": "e17201fb6ba88818bc2b756ce179d6198262693a0bef7048519be73ea8f4db4d" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-embeddable-1.3.41-jar", - "filename": "kotlin-compiler-embeddable-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-compiler-embeddable-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-compiler-embeddable-1.3.41.jar" - ], - "sha256": "ea6ab03286a534ab24f123b845a107c7a53b679f6ee56bdc34b5dd1b0fd7b6f4" - }, - { - "name": "org.jetbrains.kotlin-kotlin-compiler-embeddable-1.3.41-pom", - "filename": "kotlin-compiler-embeddable-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-compiler-embeddable-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.41/kotlin-compiler-embeddable-1.3.41.pom" - ], - "sha256": "a630bdc69212fc0ac4a24059089eb246bd4f04f334a6f1e77952b373d0cdad8e" - }, - { - "name": "org.jetbrains.kotlin-kotlin-reflect-1.2.71-jar", - "filename": "kotlin-reflect-1.2.71.jar", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.2.71/kotlin-reflect-1.2.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.2.71/kotlin-reflect-1.2.71.jar" - ], - "sha256": "1f3e10abd68d0b0816bddab7314f61269e01d8aa2ca1cbd120c12d3b4dc94b0f" - }, - { - "name": "org.jetbrains.kotlin-kotlin-reflect-1.2.71-pom", - "filename": "kotlin-reflect-1.2.71.pom", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.2.71/kotlin-reflect-1.2.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.2.71/kotlin-reflect-1.2.71.pom" - ], - "sha256": "3a251e4c4b967127b480ed5f4d51ada9e6f2cf621bc33eaabe422576e24c692b" - }, - { - "name": "org.jetbrains.kotlin-kotlin-reflect-1.3.41-jar", - "filename": "kotlin-reflect-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.41/kotlin-reflect-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.41/kotlin-reflect-1.3.41.jar" - ], - "sha256": "01d469878c6853a607baaadf869c7474b971abe6dd2cb74f244bea0ffb453c76" - }, - { - "name": "org.jetbrains.kotlin-kotlin-reflect-1.3.41-pom", - "filename": "kotlin-reflect-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.41/kotlin-reflect-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.41/kotlin-reflect-1.3.41.pom" - ], - "sha256": "4d0e8480bf227cd23d21d245dc9fe47e92056af5a6f367bc886bf43278c44146" - }, - { - "name": "org.jetbrains.kotlin-kotlin-script-runtime-1.2.71-jar", - "filename": "kotlin-script-runtime-1.2.71.jar", - "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.2.71/kotlin-script-runtime-1.2.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-script-runtime/1.2.71/kotlin-script-runtime-1.2.71.jar" - ], - "sha256": "307d0a56734458a5e57e3ea788c15b22591912ba39f81b2cc8b0a090944012bb" - }, - { - "name": "org.jetbrains.kotlin-kotlin-script-runtime-1.2.71-pom", - "filename": "kotlin-script-runtime-1.2.71.pom", - "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.2.71/kotlin-script-runtime-1.2.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-script-runtime/1.2.71/kotlin-script-runtime-1.2.71.pom" - ], - "sha256": "36fb9694f0d26d6da52ba2a498f2dae1ea17d12af41d955fe5c2f02d044423d7" - }, - { - "name": "org.jetbrains.kotlin-kotlin-script-runtime-1.3.41-jar", - "filename": "kotlin-script-runtime-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.41/kotlin-script-runtime-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-script-runtime/1.3.41/kotlin-script-runtime-1.3.41.jar" - ], - "sha256": "ac184612f258b460b5af4ca47f6bee0bab20a46fa818b86697ba41ef29626a31" - }, - { - "name": "org.jetbrains.kotlin-kotlin-script-runtime-1.3.41-pom", - "filename": "kotlin-script-runtime-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.41/kotlin-script-runtime-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-script-runtime/1.3.41/kotlin-script-runtime-1.3.41.pom" - ], - "sha256": "9bd39a256bdd9f7a8689f095c7eff85f8504ae03789e12cf20e6bbc689baefd1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-common-1.3.41-jar", - "filename": "kotlin-scripting-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.3.41/kotlin-scripting-common-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-common/1.3.41/kotlin-scripting-common-1.3.41.jar" - ], - "sha256": "fe9033bf39eb38d3daed1649f54b3321478901b9891c24482a4a06603d5b137f" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-common-1.3.41-pom", - "filename": "kotlin-scripting-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.3.41/kotlin-scripting-common-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-common/1.3.41/kotlin-scripting-common-1.3.41.pom" - ], - "sha256": "21253e34109f982b0b1586367e47b5c91bc630f5071e77f5bf3228bb4d4d86de" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-embeddable-1.3.41-jar", - "filename": "kotlin-scripting-compiler-embeddable-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41/kotlin-scripting-compiler-embeddable-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41/kotlin-scripting-compiler-embeddable-1.3.41.jar" - ], - "sha256": "c2da2d19f569e8369c2f55affa0dee5f50771bc3685697ee948ee29a16d0c3c1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-embeddable-1.3.41-pom", - "filename": "kotlin-scripting-compiler-embeddable-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41/kotlin-scripting-compiler-embeddable-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.41/kotlin-scripting-compiler-embeddable-1.3.41.pom" - ], - "sha256": "024b8b34dbbda4c657bf4c9f68acb45174f9350d4c6542278855124442d491d3" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-impl-embeddable-1.3.41-jar", - "filename": "kotlin-scripting-compiler-impl-embeddable-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41/kotlin-scripting-compiler-impl-embeddable-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41/kotlin-scripting-compiler-impl-embeddable-1.3.41.jar" - ], - "sha256": "854c39cdd705be01956439ae70f44a785cd0ba66388299f98bc0af75db328f29" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-compiler-impl-embeddable-1.3.41-pom", - "filename": "kotlin-scripting-compiler-impl-embeddable-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41/kotlin-scripting-compiler-impl-embeddable-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.41/kotlin-scripting-compiler-impl-embeddable-1.3.41.pom" - ], - "sha256": "bd29d1efdfcd51ae20d252ca66f2ea84cf3671ce323cd25518ff44a52c9a5dc1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-jvm-1.3.41-jar", - "filename": "kotlin-scripting-jvm-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41/kotlin-scripting-jvm-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41/kotlin-scripting-jvm-1.3.41.jar" - ], - "sha256": "50ad890f1dfa33e9cdeba550fab2e98e88e6f03624461cd11c7f5eb4a41de7a1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-scripting-jvm-1.3.41-pom", - "filename": "kotlin-scripting-jvm-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41/kotlin-scripting-jvm-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.41/kotlin-scripting-jvm-1.3.41.pom" - ], - "sha256": "fda06e8c1b1c47e720a80176f2269e43fc95b849045bf4006b7003c964f68a49" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.2.71-jar", - "filename": "kotlin-stdlib-common-1.2.71.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71/kotlin-stdlib-common-1.2.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71/kotlin-stdlib-common-1.2.71.jar" - ], - "sha256": "63999687ff2fce8a592dd180ffbbf8f1d21c26b4044c55cdc74ff3cf3b3cf328" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.2.71-pom", - "filename": "kotlin-stdlib-common-1.2.71.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71/kotlin-stdlib-common-1.2.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71/kotlin-stdlib-common-1.2.71.pom" - ], - "sha256": "a8c3ed5892032b9e9395524a4da2953975c99628b932df3336b25d546e7c6693" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.3.41-jar", - "filename": "kotlin-stdlib-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41/kotlin-stdlib-common-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41/kotlin-stdlib-common-1.3.41.jar" - ], - "sha256": "6c91dea17d7dce5f0b550c3de3305767e5fb46247b6d1eb7eca0ca1fe18458de" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.3.41-pom", - "filename": "kotlin-stdlib-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41/kotlin-stdlib-common-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.41/kotlin-stdlib-common-1.3.41.pom" - ], - "sha256": "d2e537cd1f7705276242d8cc903a0286b6dc86b41b6e728e967ef719022f2e15" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.3.50-jar", - "filename": "kotlin-stdlib-common-1.3.50.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar" - ], - "sha256": "8ce678e88e4ba018b66dacecf952471e4d7dfee156a8a819760a5a5ff29d323c" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-common-1.3.50-pom", - "filename": "kotlin-stdlib-common-1.3.50.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom" - ], - "sha256": "b6396fe802d7bc76a381485e266cb975f3b2f2d3dd9bf7213aab6ca27a561fc1" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.3.41-jar", - "filename": "kotlin-stdlib-jdk7-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41/kotlin-stdlib-jdk7-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41/kotlin-stdlib-jdk7-1.3.41.jar" - ], - "sha256": "25e2409aba0ec37d2fd7c77727d7835b511879de8d9bf4862af0b493aabbe39e" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk7-1.3.41-pom", - "filename": "kotlin-stdlib-jdk7-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41/kotlin-stdlib-jdk7-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.41/kotlin-stdlib-jdk7-1.3.41.pom" - ], - "sha256": "54c3962d2cf839d41bbee8b4817a6b2d06990c305c2efea655f64973d468a5fd" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.3.41-jar", - "filename": "kotlin-stdlib-jdk8-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41/kotlin-stdlib-jdk8-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41/kotlin-stdlib-jdk8-1.3.41.jar" - ], - "sha256": "f7dbbaee3e0841758187a213c052388a4e619e11c87ab16f4bc229cfe7ce5fed" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.3.41-pom", - "filename": "kotlin-stdlib-jdk8-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41/kotlin-stdlib-jdk8-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.41/kotlin-stdlib-jdk8-1.3.41.pom" - ], - "sha256": "e3856758c3bb08b7c97ddcd493521c5e0bd0741717c93b292bf1a541513af082" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.2.71-jar", - "filename": "kotlin-stdlib-1.2.71.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.71/kotlin-stdlib-1.2.71.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.2.71/kotlin-stdlib-1.2.71.jar" - ], - "sha256": "4c895c270b87f5fec2a2796e1d89c15407ee821de961527c28588bb46afbc68b" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.2.71-pom", - "filename": "kotlin-stdlib-1.2.71.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.2.71", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.71/kotlin-stdlib-1.2.71.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.2.71/kotlin-stdlib-1.2.71.pom" - ], - "sha256": "713db77c9a0c47a670f95c23b0051b9bd942b3a0ea1f6cc9bb5d9eaba1fa75ae" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.3.41-jar", - "filename": "kotlin-stdlib-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.41/kotlin-stdlib-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.41/kotlin-stdlib-1.3.41.jar" - ], - "sha256": "6ea3d0921b26919b286f05cbdb906266666a36f9a7c096197114f7495708ffbc" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.3.41-pom", - "filename": "kotlin-stdlib-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.41", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.41/kotlin-stdlib-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.41/kotlin-stdlib-1.3.41.pom" - ], - "sha256": "785b5b66f1146317d5ed5b18c8e0c10f83cd5c909434c799a4da9823f028cd63" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.3.50-jar", - "filename": "kotlin-stdlib-1.3.50.jar", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.50", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar" - ], - "sha256": "e6f05746ee0366d0b52825a090fac474dcf44082c9083bbb205bd16976488d6c" - }, - { - "name": "org.jetbrains.kotlin-kotlin-stdlib-1.3.50-pom", - "filename": "kotlin-stdlib-1.3.50.pom", - "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.50", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom" - ], - "sha256": "704fd78960ae046428f69bcd5b951c122e4c180c9400238a866e12cb18494a61" - }, - { - "name": "org.jetbrains.kotlinx-kotlinx-coroutines-core-1.1.1-jar", - "filename": "kotlinx-coroutines-core-1.1.1.jar", - "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.jar" - ], - "sha256": "ac423f8a0aa4b4e74529696ff82c0171f81a8c8ab182a1965dff25e69c1f7844" - }, - { - "name": "org.jetbrains.kotlinx-kotlinx-coroutines-core-1.1.1-pom", - "filename": "kotlinx-coroutines-core-1.1.1.pom", - "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1", - "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.1.1/kotlinx-coroutines-core-1.1.1.pom" - ], - "sha256": "82fe57e97f3f91561fe29bca615d45908ecb0ddea3e8d2cb0affd06de964872f" - }, - { - "name": "org.jetbrains-annotations-13.0-jar", - "filename": "annotations-13.0.jar", + "id": { + "group": "org.jetbrains", + "name": "annotations", + "version": "13.0", + "type": "jar", + "extension": "jar" + }, + "name": "annotations-13.0.jar", "path": "org/jetbrains/annotations/13.0", "urls": [ "https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0.jar", @@ -2004,8 +2336,14 @@ "sha256": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478" }, { - "name": "org.jetbrains-annotations-13.0-pom", - "filename": "annotations-13.0.pom", + "id": { + "group": "org.jetbrains", + "name": "annotations", + "version": "13.0", + "type": "pom", + "extension": "pom" + }, + "name": "annotations-13.0.pom", "path": "org/jetbrains/annotations/13.0", "urls": [ "https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0.pom", @@ -2014,8 +2352,622 @@ "sha256": "965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397" }, { - "name": "org.slf4j-slf4j-api-2.0.0-alpha1-jar", - "filename": "slf4j-api-2.0.0-alpha1.jar", + "id": { + "group": "org.jetbrains.intellij.deps", + "name": "trove4j", + "version": "1.0.20181211", + "type": "jar", + "extension": "jar" + }, + "name": "trove4j-1.0.20181211.jar", + "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar" + ], + "sha256": "affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601" + }, + { + "id": { + "group": "org.jetbrains.intellij.deps", + "name": "trove4j", + "version": "1.0.20181211", + "type": "pom", + "extension": "pom" + }, + "name": "trove4j-1.0.20181211.pom", + "path": "org/jetbrains/intellij/deps/trove4j/1.0.20181211", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.pom" + ], + "sha256": "310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-annotation-processing-gradle", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-annotation-processing-gradle-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61/kotlin-annotation-processing-gradle-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61/kotlin-annotation-processing-gradle-1.3.61.jar" + ], + "sha256": "77ec8e3031145c8952ee3881bd53a243d8d928a69358f7262e585b8aaa08098b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-annotation-processing-gradle", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-annotation-processing-gradle-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61/kotlin-annotation-processing-gradle-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.3.61/kotlin-annotation-processing-gradle-1.3.61.pom" + ], + "sha256": "af91455f4dfe60bf68b3b3480cb6eaf89ba9ef0d834e70fc5c6d5004b25e6f67" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-compiler-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-compiler-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61/kotlin-compiler-embeddable-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61/kotlin-compiler-embeddable-1.3.61.jar" + ], + "sha256": "05a964b4dfcfca057dbcfc352c6a394ba411b9914d956af4cc69f4e64da818e9" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-compiler-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-compiler-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61/kotlin-compiler-embeddable-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.61/kotlin-compiler-embeddable-1.3.61.pom" + ], + "sha256": "281123163ddc5aa8eda536046ce059be9cb6fe24e6307d1fa76585944f9fce80" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-daemon-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-daemon-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61/kotlin-daemon-embeddable-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61/kotlin-daemon-embeddable-1.3.61.jar" + ], + "sha256": "81ac228adb7c4d39bc4640ece66573ec6f752cbfa13d9b6959e010de55df97af" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-daemon-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-daemon-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61/kotlin-daemon-embeddable-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.61/kotlin-daemon-embeddable-1.3.61.pom" + ], + "sha256": "5e4fca06368d95aa68783bb24b74a2176ba25846b581be290a79ef06be722169" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.50", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-reflect-1.3.50.jar", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.jar" + ], + "sha256": "64583199ea5a54aefd1bd1595288925f784226ee562d1dd279011c6075b3d7a4" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.50", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-reflect-1.3.50.pom", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.50/kotlin-reflect-1.3.50.pom" + ], + "sha256": "8745181e5a3e0bafefd46309c6b810df7253f379feb985131eaf8d4d9c302635" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-reflect-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.61/kotlin-reflect-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.61/kotlin-reflect-1.3.61.jar" + ], + "sha256": "143e715c10ff6d65eb5a7695be7b696c6e013702dff103d23ba54760bf93867b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-reflect-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-reflect/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.61/kotlin-reflect-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-reflect/1.3.61/kotlin-reflect-1.3.61.pom" + ], + "sha256": "b2b8add63c5ce9b67571ed469f7c37fd043ee2420206255e96a146018d8e2fa0" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-script-runtime", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-script-runtime-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61/kotlin-script-runtime-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61/kotlin-script-runtime-1.3.61.jar" + ], + "sha256": "14ac9a3db7e85983f51f80e5ba027f21575ce2241be1c05f029dd836ac38ec48" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-script-runtime", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-script-runtime-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61/kotlin-script-runtime-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61/kotlin-script-runtime-1.3.61.pom" + ], + "sha256": "ea189ef8e59b70fd538693a85aa3bf2fb83b08bf7e1d06b3a5dfcbff75e792c0" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.3.61/kotlin-scripting-common-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-common/1.3.61/kotlin-scripting-common-1.3.61.jar" + ], + "sha256": "3041dbb12b63e46c9f4b43db012381b89109e313208b583ce66a1e622294c1ec" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.3.61/kotlin-scripting-common-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-common/1.3.61/kotlin-scripting-common-1.3.61.pom" + ], + "sha256": "f13054cff12fa6d70452f24825b09db5cd0547a00e91a8e5dff74a3e9b4afa69" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-compiler-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61/kotlin-scripting-compiler-embeddable-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61/kotlin-scripting-compiler-embeddable-1.3.61.jar" + ], + "sha256": "190d1bb496a56642bdb49f07f48bc64c67d6e71c951124b8a88d4f69d5edd50b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-compiler-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61/kotlin-scripting-compiler-embeddable-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.3.61/kotlin-scripting-compiler-embeddable-1.3.61.pom" + ], + "sha256": "35f7b58c379dfe7afc7e3c0715de49c17a75900e144ccc63578df3a4ac5e78c1" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-impl-embeddable", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-compiler-impl-embeddable-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61/kotlin-scripting-compiler-impl-embeddable-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61/kotlin-scripting-compiler-impl-embeddable-1.3.61.jar" + ], + "sha256": "3885815dfaad81221a55b5c5332664ab596fd76159c6e1b4c85d866af0048255" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-compiler-impl-embeddable", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-compiler-impl-embeddable-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61/kotlin-scripting-compiler-impl-embeddable-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.3.61/kotlin-scripting-compiler-impl-embeddable-1.3.61.pom" + ], + "sha256": "a3a4d698bbdb2e99d3486b214ddcf97d1b8c7f40adcc62f4ebc251f2553e717d" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-jvm", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-scripting-jvm-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61/kotlin-scripting-jvm-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61/kotlin-scripting-jvm-1.3.61.jar" + ], + "sha256": "b76fddd6d9a7cfb5de9037048677520baec0547210b82d3c3f26d170396414b8" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-scripting-jvm", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-scripting-jvm-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61/kotlin-scripting-jvm-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.61/kotlin-scripting-jvm-1.3.61.pom" + ], + "sha256": "558c9db4916819c7b33c2bad718ce2dca22250bb3ce84f049edbeae9bb2ff1cd" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.50", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-1.3.50.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar" + ], + "sha256": "e6f05746ee0366d0b52825a090fac474dcf44082c9083bbb205bd16976488d6c" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.50", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-1.3.50.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.pom" + ], + "sha256": "704fd78960ae046428f69bcd5b951c122e4c180c9400238a866e12cb18494a61" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.jar" + ], + "sha256": "e51e512619a7e7650a30eb4eb3e9c03e6909c7b5e3c026404e076254c098b932" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib/1.3.61/kotlin-stdlib-1.3.61.pom" + ], + "sha256": "dbe5babcd8d43e9b08c2845680b53fc1bb3e051c4805802ddd0ed3e8e2c50a84" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.50", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-common-1.3.50.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar" + ], + "sha256": "8ce678e88e4ba018b66dacecf952471e4d7dfee156a8a819760a5a5ff29d323c" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.50", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-common-1.3.50.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.pom" + ], + "sha256": "b6396fe802d7bc76a381485e266cb975f3b2f2d3dd9bf7213aab6ca27a561fc1" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.jar" + ], + "sha256": "a2e7f341cf3047b5f00a1917ef777d323cdab2a57377468b8ed62aa31469cf7f" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.61/kotlin-stdlib-common-1.3.61.pom" + ], + "sha256": "e22db009bb1a61636d9425635989736db5e3fca494809abf244468dc474cfc04" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.50", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk7-1.3.50.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.jar" + ], + "sha256": "9a026639e76212f8d57b86d55b075394c2e009f1979110751d34c05c5f75d57b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.50", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk7-1.3.50.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.pom" + ], + "sha256": "a3aef46388ee96e975110db51df3ab794c87d892bdbc6d5a49bf926e4779438b" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk7-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.jar" + ], + "sha256": "11f4a57e3e7d81f3f152d5dcefe39bd77614b5a94125ff3b11526b0a19ac3989" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk7-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.61/kotlin-stdlib-jdk7-1.3.61.pom" + ], + "sha256": "c416080aeabdb9118a08ee78c28e2856038cd85858422a71f7c46bf276f667a7" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-stdlib-jdk8-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.jar" + ], + "sha256": "3839ba7deb798375da1807bc469d1cf315db7a6275599f733184374772ec3b21" + }, + { + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-stdlib-jdk8-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.61/kotlin-stdlib-jdk8-1.3.61.pom" + ], + "sha256": "e30187e5720ca640b8e68686f20dd0250dcef0193d56e5569c3c4a61277312b6" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.2.1", + "type": "jar", + "extension": "jar" + }, + "name": "kotlinx-coroutines-core-1.2.1.jar", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1/kotlinx-coroutines-core-1.2.1.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1/kotlinx-coroutines-core-1.2.1.jar" + ], + "sha256": "7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394" + }, + { + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.2.1", + "type": "pom", + "extension": "pom" + }, + "name": "kotlinx-coroutines-core-1.2.1.pom", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1", + "urls": [ + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1/kotlinx-coroutines-core-1.2.1.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.2.1/kotlinx-coroutines-core-1.2.1.pom" + ], + "sha256": "6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c" + }, + { + "id": { + "group": "org.slf4j", + "name": "slf4j-api", + "version": "2.0.0-alpha1", + "type": "jar", + "extension": "jar" + }, + "name": "slf4j-api-2.0.0-alpha1.jar", "path": "org/slf4j/slf4j-api/2.0.0-alpha1", "urls": [ "https://jcenter.bintray.com/org/slf4j/slf4j-api/2.0.0-alpha1/slf4j-api-2.0.0-alpha1.jar", @@ -2024,8 +2976,14 @@ "sha256": "8df06cc146b8638a24cefb669d20f4bdb2c4497d5047c548a0a190df6f97c3a5" }, { - "name": "org.slf4j-slf4j-api-2.0.0-alpha1-pom", - "filename": "slf4j-api-2.0.0-alpha1.pom", + "id": { + "group": "org.slf4j", + "name": "slf4j-api", + "version": "2.0.0-alpha1", + "type": "pom", + "extension": "pom" + }, + "name": "slf4j-api-2.0.0-alpha1.pom", "path": "org/slf4j/slf4j-api/2.0.0-alpha1", "urls": [ "https://jcenter.bintray.com/org/slf4j/slf4j-api/2.0.0-alpha1/slf4j-api-2.0.0-alpha1.pom", @@ -2034,8 +2992,14 @@ "sha256": "a775e6bbf89895978ea3b702aa759fd42c0f128e63d0a589fd5cf5d8afbf5451" }, { - "name": "org.slf4j-slf4j-parent-2.0.0-alpha1-pom", - "filename": "slf4j-parent-2.0.0-alpha1.pom", + "id": { + "group": "org.slf4j", + "name": "slf4j-parent", + "version": "2.0.0-alpha1", + "type": "pom", + "extension": "pom" + }, + "name": "slf4j-parent-2.0.0-alpha1.pom", "path": "org/slf4j/slf4j-parent/2.0.0-alpha1", "urls": [ "https://jcenter.bintray.com/org/slf4j/slf4j-parent/2.0.0-alpha1/slf4j-parent-2.0.0-alpha1.pom", @@ -2044,8 +3008,14 @@ "sha256": "fd3edb9fd9b7cabd67a0c29c0c9c0a6d1ae7a40053956aec281f42ccad1bdcf1" }, { - "name": "org.slf4j-slf4j-simple-2.0.0-alpha1-jar", - "filename": "slf4j-simple-2.0.0-alpha1.jar", + "id": { + "group": "org.slf4j", + "name": "slf4j-simple", + "version": "2.0.0-alpha1", + "type": "jar", + "extension": "jar" + }, + "name": "slf4j-simple-2.0.0-alpha1.jar", "path": "org/slf4j/slf4j-simple/2.0.0-alpha1", "urls": [ "https://jcenter.bintray.com/org/slf4j/slf4j-simple/2.0.0-alpha1/slf4j-simple-2.0.0-alpha1.jar", @@ -2054,8 +3024,14 @@ "sha256": "3b6f446dec6cb5e8a6b1c1e85d7d756cdc934fec688464cc6bd201d95cd387cf" }, { - "name": "org.slf4j-slf4j-simple-2.0.0-alpha1-pom", - "filename": "slf4j-simple-2.0.0-alpha1.pom", + "id": { + "group": "org.slf4j", + "name": "slf4j-simple", + "version": "2.0.0-alpha1", + "type": "pom", + "extension": "pom" + }, + "name": "slf4j-simple-2.0.0-alpha1.pom", "path": "org/slf4j/slf4j-simple/2.0.0-alpha1", "urls": [ "https://jcenter.bintray.com/org/slf4j/slf4j-simple/2.0.0-alpha1/slf4j-simple-2.0.0-alpha1.pom", @@ -2064,8 +3040,14 @@ "sha256": "df3a810360871ab8c6c3c852446a162613dba3184f99e26082cc5d7b9138c475" }, { - "name": "org.sonatype.oss-oss-parent-7-pom", - "filename": "oss-parent-7.pom", + "id": { + "group": "org.sonatype.oss", + "name": "oss-parent", + "version": "7", + "type": "pom", + "extension": "pom" + }, + "name": "oss-parent-7.pom", "path": "org/sonatype/oss/oss-parent/7", "urls": [ "https://jcenter.bintray.com/org/sonatype/oss/oss-parent/7/oss-parent-7.pom", @@ -2074,168 +3056,158 @@ "sha256": "b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454" }, { - "name": "javax.inject-javax.inject-1-jar", - "filename": "javax.inject-1.jar", - "path": "javax/inject/javax.inject/1", + "id": { + "group": "com.christophsturm", + "name": "filepeek", + "version": "0.1.1", + "type": "jar", + "extension": "jar" + }, + "name": "filepeek-0.1.1.jar", + "path": "com/christophsturm/filepeek/0.1.1", "urls": [ - "https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.jar", - "https://repo.gradle.org/gradle/libs-releases/javax/inject/javax.inject/1/javax.inject-1.jar" + "https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.1/filepeek-0.1.1.jar", + "https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.1/filepeek-0.1.1.jar" ], - "sha256": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff" + "sha256": "fbc8ee25f6a7ddf47d9ff62565af414c4b20356f5bd8a679586de1654ff99987" }, { - "name": "javax.inject-javax.inject-1-pom", - "filename": "javax.inject-1.pom", - "path": "javax/inject/javax.inject/1", + "id": { + "group": "com.christophsturm", + "name": "filepeek", + "version": "0.1.1", + "type": "pom", + "extension": "pom" + }, + "name": "filepeek-0.1.1.pom", + "path": "com/christophsturm/filepeek/0.1.1", "urls": [ - "https://jcenter.bintray.com/javax/inject/javax.inject/1/javax.inject-1.pom", - "https://repo.gradle.org/gradle/libs-releases/javax/inject/javax.inject/1/javax.inject-1.pom" + "https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.1/filepeek-0.1.1.pom", + "https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.1/filepeek-0.1.1.pom" ], - "sha256": "943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa" + "sha256": "719692dc9755d69a237c64b8ae365e4bdc7041a5424ecc853522954633208ad1" }, { - "name": "org.apache.commons-commons-lang3-3.8.1-jar", - "filename": "commons-lang3-3.8.1.jar", - "path": "org/apache/commons/commons-lang3/3.8.1", + "id": { + "group": "dev.minutest", + "name": "minutest", + "version": "1.10.0", + "type": "jar", + "extension": "jar" + }, + "name": "minutest-1.10.0.jar", + "path": "dev/minutest/minutest/1.10.0", "urls": [ - "https://jcenter.bintray.com/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar" + "https://jcenter.bintray.com/dev/minutest/minutest/1.10.0/minutest-1.10.0.jar", + "https://repo.gradle.org/gradle/libs-releases/dev/minutest/minutest/1.10.0/minutest-1.10.0.jar" ], - "sha256": "dac807f65b07698ff39b1b07bfef3d87ae3fd46d91bbf8a2bc02b2a831616f68" + "sha256": "984ba01cdc340fba060c8ba6734bac45eb7936386b02c5244adfeefd2db2844e" }, { - "name": "org.apache.commons-commons-lang3-3.8.1-pom", - "filename": "commons-lang3-3.8.1.pom", - "path": "org/apache/commons/commons-lang3/3.8.1", + "id": { + "group": "dev.minutest", + "name": "minutest", + "version": "1.10.0", + "type": "pom", + "extension": "pom" + }, + "name": "minutest-1.10.0.pom", + "path": "dev/minutest/minutest/1.10.0", "urls": [ - "https://jcenter.bintray.com/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.pom" + "https://jcenter.bintray.com/dev/minutest/minutest/1.10.0/minutest-1.10.0.pom", + "https://repo.gradle.org/gradle/libs-releases/dev/minutest/minutest/1.10.0/minutest-1.10.0.pom" ], - "sha256": "ec8e09f75411685205bd0d9d7872cc3622e67c76df44a0a227b278bea04458d5" + "sha256": "d4fbca78beee70d50222bddcb7262c8f173f300581db783b42883f0d364ff151" }, { - "name": "org.apache.commons-commons-parent-47-pom", - "filename": "commons-parent-47.pom", - "path": "org/apache/commons/commons-parent/47", + "id": { + "group": "io.github.classgraph", + "name": "classgraph", + "version": "4.8.28", + "type": "jar", + "extension": "jar" + }, + "name": "classgraph-4.8.28.jar", + "path": "io/github/classgraph/classgraph/4.8.28", "urls": [ - "https://jcenter.bintray.com/org/apache/commons/commons-parent/47/commons-parent-47.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/commons/commons-parent/47/commons-parent-47.pom" + "https://jcenter.bintray.com/io/github/classgraph/classgraph/4.8.28/classgraph-4.8.28.jar", + "https://repo.gradle.org/gradle/libs-releases/io/github/classgraph/classgraph/4.8.28/classgraph-4.8.28.jar" ], - "sha256": "8a8ecb570553bf9f1ffae211a8d4ca9ee630c17afe59293368fba7bd9b42fcb7" + "sha256": "bddc6eb9bcd88d1054d362c4a870c18b0a6d74f4ce7961a527a03748a16f8e31" }, { - "name": "org.apache.maven-maven-artifact-3.6.2-jar", - "filename": "maven-artifact-3.6.2.jar", - "path": "org/apache/maven/maven-artifact/3.6.2", + "id": { + "group": "io.github.classgraph", + "name": "classgraph", + "version": "4.8.28", + "type": "pom", + "extension": "pom" + }, + "name": "classgraph-4.8.28.pom", + "path": "io/github/classgraph/classgraph/4.8.28", "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-artifact/3.6.2/maven-artifact-3.6.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-artifact/3.6.2/maven-artifact-3.6.2.jar" + "https://jcenter.bintray.com/io/github/classgraph/classgraph/4.8.28/classgraph-4.8.28.pom", + "https://repo.gradle.org/gradle/libs-releases/io/github/classgraph/classgraph/4.8.28/classgraph-4.8.28.pom" ], - "sha256": "66a5b056d2f19bf3ef2faf94e2a85da47a5051ac85a69688ce874ddc408fe52d" + "sha256": "75d61da98c46d79a3a548a952bd806020f808c75ccd21958a6c791cfbfa0481e" }, { - "name": "org.apache.maven-maven-artifact-3.6.2-pom", - "filename": "maven-artifact-3.6.2.pom", - "path": "org/apache/maven/maven-artifact/3.6.2", + "id": { + "group": "io.strikt", + "name": "strikt-core", + "version": "0.23.4", + "type": "jar", + "extension": "jar" + }, + "name": "strikt-core-0.23.4.jar", + "path": "io/strikt/strikt-core/0.23.4", "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-artifact/3.6.2/maven-artifact-3.6.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-artifact/3.6.2/maven-artifact-3.6.2.pom" + "https://jcenter.bintray.com/io/strikt/strikt-core/0.23.4/strikt-core-0.23.4.jar", + "https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.23.4/strikt-core-0.23.4.jar" ], - "sha256": "70cbd5cb06884e7e338337c96ea9fa00cd1c6d08c5233c3f560132fc00a0b369" + "sha256": "e64a49730554f779064638f169d83925b2f00bfdd7b647bc275f9460c9c97d8f" }, { - "name": "org.apache.maven-maven-builder-support-3.6.2-jar", - "filename": "maven-builder-support-3.6.2.jar", - "path": "org/apache/maven/maven-builder-support/3.6.2", + "id": { + "group": "io.strikt", + "name": "strikt-core", + "version": "0.23.4", + "type": "pom", + "extension": "pom" + }, + "name": "strikt-core-0.23.4.pom", + "path": "io/strikt/strikt-core/0.23.4", "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-builder-support/3.6.2/maven-builder-support-3.6.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-builder-support/3.6.2/maven-builder-support-3.6.2.jar" + "https://jcenter.bintray.com/io/strikt/strikt-core/0.23.4/strikt-core-0.23.4.pom", + "https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.23.4/strikt-core-0.23.4.pom" ], - "sha256": "e78f8627a9c342182c31f05cfb39e92c11ccb41cc03f06a9ec81f29cf5959817" + "sha256": "e4280689a4843bcca02327f575084eb48468f387308ba01789fac19aa57483b7" }, { - "name": "org.apache.maven-maven-builder-support-3.6.2-pom", - "filename": "maven-builder-support-3.6.2.pom", - "path": "org/apache/maven/maven-builder-support/3.6.2", + "id": { + "group": "org.apache", + "name": "apache", + "version": "7", + "type": "pom", + "extension": "pom" + }, + "name": "apache-7.pom", + "path": "org/apache/apache/7", "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-builder-support/3.6.2/maven-builder-support-3.6.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-builder-support/3.6.2/maven-builder-support-3.6.2.pom" + "https://jcenter.bintray.com/org/apache/apache/7/apache-7.pom", + "https://repo.gradle.org/gradle/libs-releases/org/apache/apache/7/apache-7.pom" ], - "sha256": "08a8b8968373d2927d677c721747a966a9ab92adf8fc0cdfafa83f9002988734" + "sha256": "1397ce1db433adc9f223dbf07496d133681448751f4ae29e58f68e78fb4b6c25" }, { - "name": "org.apache.maven-maven-model-builder-3.6.2-jar", - "filename": "maven-model-builder-3.6.2.jar", - "path": "org/apache/maven/maven-model-builder/3.6.2", - "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-model-builder/3.6.2/maven-model-builder-3.6.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-model-builder/3.6.2/maven-model-builder-3.6.2.jar" - ], - "sha256": "378d8a6a9ad170c219fa1afa28e6179c85bbc7fd652d59be25aae07e33978e99" - }, - { - "name": "org.apache.maven-maven-model-builder-3.6.2-pom", - "filename": "maven-model-builder-3.6.2.pom", - "path": "org/apache/maven/maven-model-builder/3.6.2", - "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-model-builder/3.6.2/maven-model-builder-3.6.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-model-builder/3.6.2/maven-model-builder-3.6.2.pom" - ], - "sha256": "56e4c174a5011d1ea468a62fbe5353f51810d682a57cad8b66859d01d549b454" - }, - { - "name": "org.apache.maven-maven-model-3.6.2-jar", - "filename": "maven-model-3.6.2.jar", - "path": "org/apache/maven/maven-model/3.6.2", - "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-model/3.6.2/maven-model-3.6.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-model/3.6.2/maven-model-3.6.2.jar" - ], - "sha256": "f4ada31d7217efc11d2264dec3716623cefa3440cfb2b6b1dcc640a825159a7d" - }, - { - "name": "org.apache.maven-maven-model-3.6.2-pom", - "filename": "maven-model-3.6.2.pom", - "path": "org/apache/maven/maven-model/3.6.2", - "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-model/3.6.2/maven-model-3.6.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-model/3.6.2/maven-model-3.6.2.pom" - ], - "sha256": "23049400bad289caa081bc5d28617ae0c2c14c67d35158903112063a9a44ab7b" - }, - { - "name": "org.apache.maven-maven-parent-33-pom", - "filename": "maven-parent-33.pom", - "path": "org/apache/maven/maven-parent/33", - "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven-parent/33/maven-parent-33.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-parent/33/maven-parent-33.pom" - ], - "sha256": "3856e3fcd169502d5f12fe2452604ebf6c7c025f15656bfa558ea99ed29d73ea" - }, - { - "name": "org.apache.maven-maven-3.6.2-pom", - "filename": "maven-3.6.2.pom", - "path": "org/apache/maven/maven/3.6.2", - "urls": [ - "https://jcenter.bintray.com/org/apache/maven/maven/3.6.2/maven-3.6.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven/3.6.2/maven-3.6.2.pom" - ], - "sha256": "60850dafebc746b5ce04ae1cc0073d81d346c0d54c32917d1357e8fd6960e0d1" - }, - { - "name": "org.apache-apache-19-pom", - "filename": "apache-19.pom", - "path": "org/apache/apache/19", - "urls": [ - "https://jcenter.bintray.com/org/apache/apache/19/apache-19.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apache/apache/19/apache-19.pom" - ], - "sha256": "91f7a33096ea69bac2cbaf6d01feb934cac002c48d8c8cfa9c240b40f1ec21df" - }, - { - "name": "org.apache-apache-21-pom", - "filename": "apache-21.pom", + "id": { + "group": "org.apache", + "name": "apache", + "version": "21", + "type": "pom", + "extension": "pom" + }, + "name": "apache-21.pom", "path": "org/apache/apache/21", "urls": [ "https://jcenter.bintray.com/org/apache/apache/21/apache-21.pom", @@ -2244,68 +3216,142 @@ "sha256": "af10c108da014f17cafac7b52b2b4b5a3a1c18265fa2af97a325d9143537b380" }, { - "name": "org.apiguardian-apiguardian-api-1.0.0-jar", - "filename": "apiguardian-api-1.0.0.jar", - "path": "org/apiguardian/apiguardian-api/1.0.0", + "id": { + "group": "org.apache.ivy", + "name": "ivy", + "version": "2.5.0", + "type": "jar", + "extension": "jar" + }, + "name": "ivy-2.5.0.jar", + "path": "org/apache/ivy/ivy/2.5.0", "urls": [ - "https://jcenter.bintray.com/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.jar", - "https://repo.gradle.org/gradle/libs-releases/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.jar" + "https://jcenter.bintray.com/org/apache/ivy/ivy/2.5.0/ivy-2.5.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/apache/ivy/ivy/2.5.0/ivy-2.5.0.jar" ], - "sha256": "1f58b77470d8d147a0538d515347dd322f49a83b9e884b8970051160464b65b3" + "sha256": "2f4c835b52311df922f8a8eb057843de5485088b234ccd03e478b9066b5e6bfc" }, { - "name": "org.apiguardian-apiguardian-api-1.0.0-pom", - "filename": "apiguardian-api-1.0.0.pom", - "path": "org/apiguardian/apiguardian-api/1.0.0", + "id": { + "group": "org.apache.ivy", + "name": "ivy", + "version": "2.5.0", + "type": "pom", + "extension": "pom" + }, + "name": "ivy-2.5.0.pom", + "path": "org/apache/ivy/ivy/2.5.0", "urls": [ - "https://jcenter.bintray.com/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.pom", - "https://repo.gradle.org/gradle/libs-releases/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.pom" + "https://jcenter.bintray.com/org/apache/ivy/ivy/2.5.0/ivy-2.5.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/apache/ivy/ivy/2.5.0/ivy-2.5.0.pom" ], - "sha256": "2ecc15d2614124cb9630c7173efcae1776cf43588a8f3ab1b04684b8dbe02489" + "sha256": "516106ddc6a4fc14445e5ea309710faba423d4591ed7667fff5f8c074ace2f18" }, { - "name": "org.codehaus.plexus-plexus-interpolation-1.25-jar", - "filename": "plexus-interpolation-1.25.jar", - "path": "org/codehaus/plexus/plexus-interpolation/1.25", + "id": { + "group": "org.apache.maven", + "name": "maven", + "version": "3.6.3", + "type": "pom", + "extension": "pom" + }, + "name": "maven-3.6.3.pom", + "path": "org/apache/maven/maven/3.6.3", "urls": [ - "https://jcenter.bintray.com/org/codehaus/plexus/plexus-interpolation/1.25/plexus-interpolation-1.25.jar", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/plexus/plexus-interpolation/1.25/plexus-interpolation-1.25.jar" + "https://jcenter.bintray.com/org/apache/maven/maven/3.6.3/maven-3.6.3.pom", + "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven/3.6.3/maven-3.6.3.pom" ], - "sha256": "e003802501574637f7abdc4e83e6d509a31e9ff825d12da6d1e419acf9688705" + "sha256": "d2d86245ea66149bc14d2dd72bbb961f964dd658b809a0573252c06531eeec16" }, { - "name": "org.codehaus.plexus-plexus-interpolation-1.25-pom", - "filename": "plexus-interpolation-1.25.pom", - "path": "org/codehaus/plexus/plexus-interpolation/1.25", + "id": { + "group": "org.apache.maven", + "name": "maven-parent", + "version": "33", + "type": "pom", + "extension": "pom" + }, + "name": "maven-parent-33.pom", + "path": "org/apache/maven/maven-parent/33", "urls": [ - "https://jcenter.bintray.com/org/codehaus/plexus/plexus-interpolation/1.25/plexus-interpolation-1.25.pom", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/plexus/plexus-interpolation/1.25/plexus-interpolation-1.25.pom" + "https://jcenter.bintray.com/org/apache/maven/maven-parent/33/maven-parent-33.pom", + "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-parent/33/maven-parent-33.pom" ], - "sha256": "9eb551c0ca3ec1354f10bbc5a037a89809d4e32bac9f55a4431e4be0eb8f0d8f" + "sha256": "3856e3fcd169502d5f12fe2452604ebf6c7c025f15656bfa558ea99ed29d73ea" }, { - "name": "org.codehaus.plexus-plexus-utils-3.2.1-jar", - "filename": "plexus-utils-3.2.1.jar", - "path": "org/codehaus/plexus/plexus-utils/3.2.1", + "id": { + "group": "org.apache.maven", + "name": "maven-repository-metadata", + "version": "3.6.3", + "type": "jar", + "extension": "jar" + }, + "name": "maven-repository-metadata-3.6.3.jar", + "path": "org/apache/maven/maven-repository-metadata/3.6.3", "urls": [ - "https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.jar", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.jar" + "https://jcenter.bintray.com/org/apache/maven/maven-repository-metadata/3.6.3/maven-repository-metadata-3.6.3.jar", + "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-repository-metadata/3.6.3/maven-repository-metadata-3.6.3.jar" ], - "sha256": "8d07b497bb8deb167ee5329cae87ef2043833bf52e4f15a5a9379cec447a5b2b" + "sha256": "2e7f850b20664a151e6ca73dd3af34e639901435c2fe717717e3cbc7ddead3d4" }, { - "name": "org.codehaus.plexus-plexus-utils-3.2.1-pom", - "filename": "plexus-utils-3.2.1.pom", - "path": "org/codehaus/plexus/plexus-utils/3.2.1", + "id": { + "group": "org.apache.maven", + "name": "maven-repository-metadata", + "version": "3.6.3", + "type": "pom", + "extension": "pom" + }, + "name": "maven-repository-metadata-3.6.3.pom", + "path": "org/apache/maven/maven-repository-metadata/3.6.3", "urls": [ - "https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.pom", - "https://repo.gradle.org/gradle/libs-releases/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.pom" + "https://jcenter.bintray.com/org/apache/maven/maven-repository-metadata/3.6.3/maven-repository-metadata-3.6.3.pom", + "https://repo.gradle.org/gradle/libs-releases/org/apache/maven/maven-repository-metadata/3.6.3/maven-repository-metadata-3.6.3.pom" ], - "sha256": "7a5001ab88105b4f37c4fab3b62d977316290a13f8b14c6684f25f2a32efdef1" + "sha256": "5398b22da433ace2c836f76773d8ff48fa53fa09e2e7a1eba65ff922b03c665e" }, { - "name": "org.codehaus.plexus-plexus-5.1-pom", - "filename": "plexus-5.1.pom", + "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", + "name": "plexus", + "version": "5.1", + "type": "pom", + "extension": "pom" + }, + "name": "plexus-5.1.pom", "path": "org/codehaus/plexus/plexus/5.1", "urls": [ "https://jcenter.bintray.com/org/codehaus/plexus/plexus/5.1/plexus-5.1.pom", @@ -2314,314 +3360,724 @@ "sha256": "a343e44ff5796aed0ea60be11454c935ce20ab1c5f164acc8da574482dcbc7e9" }, { - "name": "org.eclipse.sisu-org.eclipse.sisu.inject-0.3.3-jar", - "filename": "org.eclipse.sisu.inject-0.3.3.jar", - "path": "org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3", + "id": { + "group": "org.codehaus.plexus", + "name": "plexus-utils", + "version": "3.2.1", + "type": "jar", + "extension": "jar" + }, + "name": "plexus-utils-3.2.1.jar", + "path": "org/codehaus/plexus/plexus-utils/3.2.1", "urls": [ - "https://jcenter.bintray.com/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar", - "https://repo.gradle.org/gradle/libs-releases/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar" + "https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.jar", + "https://repo.gradle.org/gradle/libs-releases/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.jar" ], - "sha256": "c6935e0b7d362ed4ca768c9b71d5d4d98788ff0a79c0d2bb954c221a078b166b" + "sha256": "8d07b497bb8deb167ee5329cae87ef2043833bf52e4f15a5a9379cec447a5b2b" }, { - "name": "org.eclipse.sisu-org.eclipse.sisu.inject-0.3.3-pom", - "filename": "org.eclipse.sisu.inject-0.3.3.pom", - "path": "org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3", + "id": { + "group": "org.codehaus.plexus", + "name": "plexus-utils", + "version": "3.2.1", + "type": "pom", + "extension": "pom" + }, + "name": "plexus-utils-3.2.1.pom", + "path": "org/codehaus/plexus/plexus-utils/3.2.1", "urls": [ - "https://jcenter.bintray.com/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.pom", - "https://repo.gradle.org/gradle/libs-releases/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.pom" + "https://jcenter.bintray.com/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.pom", + "https://repo.gradle.org/gradle/libs-releases/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.pom" ], - "sha256": "2d7c4eabba6f7158557819fd55d6b3085822ae94a3c3e009482ef58d0f716853" + "sha256": "7a5001ab88105b4f37c4fab3b62d977316290a13f8b14c6684f25f2a32efdef1" }, { - "name": "org.eclipse.sisu-sisu-inject-0.3.3-pom", - "filename": "sisu-inject-0.3.3.pom", - "path": "org/eclipse/sisu/sisu-inject/0.3.3", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-api", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-gradle-plugin-api-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/eclipse/sisu/sisu-inject/0.3.3/sisu-inject-0.3.3.pom", - "https://repo.gradle.org/gradle/libs-releases/org/eclipse/sisu/sisu-inject/0.3.3/sisu-inject-0.3.3.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61/kotlin-gradle-plugin-api-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61/kotlin-gradle-plugin-api-1.3.61.jar" ], - "sha256": "6476b9c3d9a0314226b6f4ea41c2f1e5db1ceb04d031ca9650c7b0b99fa0af3d" + "sha256": "37523a505f0a7e524a9fd86b763175ceeeed29c331676c8e4a6c21d760e3543e" }, { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-api-1.3.41-jar", - "filename": "kotlin-gradle-plugin-api-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-api", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-gradle-plugin-api-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41/kotlin-gradle-plugin-api-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41/kotlin-gradle-plugin-api-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61/kotlin-gradle-plugin-api-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.61/kotlin-gradle-plugin-api-1.3.61.pom" ], - "sha256": "57b0e2951fde88baf8ffb92d72c5682c101a7c2c12c6c501a5b47f88f5b08696" + "sha256": "7b70f22cf83bbc6a7aa2a219b5e96e66ea7d9a5f630d4a48a2423af72294d5a9" }, { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-api-1.3.41-pom", - "filename": "kotlin-gradle-plugin-api-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-model", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-gradle-plugin-model-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41/kotlin-gradle-plugin-api-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.3.41/kotlin-gradle-plugin-api-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61/kotlin-gradle-plugin-model-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61/kotlin-gradle-plugin-model-1.3.61.jar" ], - "sha256": "dc338b55085bfc4cc2a98dc83c8365dbee976b9d9134ca845d42d0a3d4767937" + "sha256": "128eb2c9800f38ff62ae8b9ec11d75004f39b7d32a3cf89751fcbffcdd4da6b5" }, { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-model-1.3.41-jar", - "filename": "kotlin-gradle-plugin-model-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-gradle-plugin-model", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-gradle-plugin-model-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41/kotlin-gradle-plugin-model-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41/kotlin-gradle-plugin-model-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61/kotlin-gradle-plugin-model-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.61/kotlin-gradle-plugin-model-1.3.61.pom" ], - "sha256": "8a703d706c44996993f9df34b916162b99b81417f7f9d351ca8d205f0325936d" + "sha256": "19d73513165a436a832e3e898c6e872fd28b6ade8ccfcb3baa51049f364b486c" }, { - "name": "org.jetbrains.kotlin-kotlin-gradle-plugin-model-1.3.41-pom", - "filename": "kotlin-gradle-plugin-model-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-native-utils", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-native-utils-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-native-utils/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41/kotlin-gradle-plugin-model-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.3.41/kotlin-gradle-plugin-model-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.61/kotlin-native-utils-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-native-utils/1.3.61/kotlin-native-utils-1.3.61.jar" ], - "sha256": "8763bd09455cecf1c9fabea3653bd2ac17bf31a1291a153fefca8e4f28de9043" + "sha256": "9780246da9087f5052b93af54d0165eb0a5fa1964761b4f1243a45ce02743b6f" }, { - "name": "org.jetbrains.kotlin-kotlin-sam-with-receiver-1.3.41-jar", - "filename": "kotlin-sam-with-receiver-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-native-utils", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-native-utils-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-native-utils/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41/kotlin-sam-with-receiver-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41/kotlin-sam-with-receiver-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.61/kotlin-native-utils-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-native-utils/1.3.61/kotlin-native-utils-1.3.61.pom" ], - "sha256": "52ba0a7557a05f383983018818fa54389e985e1782f5d580a5f5190689fd217d" + "sha256": "15f4627d4d22eef959e2710036c49b64b50ac77f535041fd2dfcf401b3fbd731" }, { - "name": "org.jetbrains.kotlin-kotlin-sam-with-receiver-1.3.41-pom", - "filename": "kotlin-sam-with-receiver-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-sam-with-receiver", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-sam-with-receiver-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41/kotlin-sam-with-receiver-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.41/kotlin-sam-with-receiver-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61/kotlin-sam-with-receiver-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61/kotlin-sam-with-receiver-1.3.61.jar" ], - "sha256": "b2d7cd94ffce942ddd379db99044bff03f24863fcf41534d7c7be3d0e16bc34c" + "sha256": "b654b0c0fde9ea9f68d9aaf993064791070fc7d35274961095f5458c031ef559" }, { - "name": "org.jetbrains.kotlin-kotlin-test-annotations-common-1.3.41-jar", - "filename": "kotlin-test-annotations-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-sam-with-receiver", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-sam-with-receiver-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.41/kotlin-test-annotations-common-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.41/kotlin-test-annotations-common-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61/kotlin-sam-with-receiver-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-sam-with-receiver/1.3.61/kotlin-sam-with-receiver-1.3.61.pom" ], - "sha256": "dcc66f8bc23101a9cc93c5b17673e361dde4455816ae8e5c431a5a5846f9b5d8" + "sha256": "8fa74d745c92f4c106d4652209a67a817ce703ce87b9d563fe01a9b305eb4214" }, { - "name": "org.jetbrains.kotlin-kotlin-test-annotations-common-1.3.41-pom", - "filename": "kotlin-test-annotations-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-test-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-test/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.41/kotlin-test-annotations-common-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.41/kotlin-test-annotations-common-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test/1.3.61/kotlin-test-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test/1.3.61/kotlin-test-1.3.61.jar" ], - "sha256": "c4ab8ebd22e665f3300738da1224f85bcb18fdffe1874bcef1a9d988ffb3ea4f" + "sha256": "b8d94c45400791a0b38381c13688408c24ff49ae0a4d0b409ce2199cc49485bd" }, { - "name": "org.jetbrains.kotlin-kotlin-test-common-1.3.41-jar", - "filename": "kotlin-test-common-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-test-common/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-test-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-test/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-common/1.3.41/kotlin-test-common-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-common/1.3.41/kotlin-test-common-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test/1.3.61/kotlin-test-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test/1.3.61/kotlin-test-1.3.61.pom" ], - "sha256": "e717b83cb55e9effc3424df17e8e5d988d0fc6006d8e48af227099e782c9dddb" + "sha256": "9adbbf07a98a2f9a02870721f44563b89d809e53dfa2c44281c7f111d5fbf1dd" }, { - "name": "org.jetbrains.kotlin-kotlin-test-common-1.3.41-pom", - "filename": "kotlin-test-common-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-test-common/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test-annotations-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-test-annotations-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-common/1.3.41/kotlin-test-common-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-common/1.3.41/kotlin-test-common-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.61/kotlin-test-annotations-common-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.61/kotlin-test-annotations-common-1.3.61.jar" ], - "sha256": "d531342717dd725d8cb9272d7257532d11af0ccf970d4b4f3a53fd76ec665df2" + "sha256": "6d9b2d684e5068c6b2ffc8e2f966e679a304113b65748c18cd971ee031e3cc17" }, { - "name": "org.jetbrains.kotlin-kotlin-test-junit5-1.3.41-jar", - "filename": "kotlin-test-junit5-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-test-junit5/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test-annotations-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-test-annotations-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-junit5/1.3.41/kotlin-test-junit5-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-junit5/1.3.41/kotlin-test-junit5-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.61/kotlin-test-annotations-common-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-annotations-common/1.3.61/kotlin-test-annotations-common-1.3.61.pom" ], - "sha256": "ae2cccb724ca695367673683afdb3bca00578b253b3136147ab2b6f45d25e445" + "sha256": "3a1750493b2ea1141154e5ba63d143e46c710c21222565c527058bcd14c7d8b6" }, { - "name": "org.jetbrains.kotlin-kotlin-test-junit5-1.3.41-pom", - "filename": "kotlin-test-junit5-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-test-junit5/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test-common", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-test-common-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-test-common/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-junit5/1.3.41/kotlin-test-junit5-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-junit5/1.3.41/kotlin-test-junit5-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-common/1.3.61/kotlin-test-common-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-common/1.3.61/kotlin-test-common-1.3.61.jar" ], - "sha256": "004fc669064a1f57e627789edc3865b6948eb421c0903a0439ffe48b9aa915fc" + "sha256": "6e8f7a553f7b3abc81e177c23a3fcb3aafaaa3eb480998b042d222ddd0d2f2b6" }, { - "name": "org.jetbrains.kotlin-kotlin-test-1.3.41-jar", - "filename": "kotlin-test-1.3.41.jar", - "path": "org/jetbrains/kotlin/kotlin-test/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test-common", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-test-common-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-test-common/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test/1.3.41/kotlin-test-1.3.41.jar", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test/1.3.41/kotlin-test-1.3.41.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-common/1.3.61/kotlin-test-common-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-common/1.3.61/kotlin-test-common-1.3.61.pom" ], - "sha256": "17ae0afba078e366bdf391cc68419fd52081c46d02879f13f3f7a55b12c5e9fa" + "sha256": "dc173d1fcc83f499407825c45afab60dc8a8578cf1fdf30f2be480d154756643" }, { - "name": "org.jetbrains.kotlin-kotlin-test-1.3.41-pom", - "filename": "kotlin-test-1.3.41.pom", - "path": "org/jetbrains/kotlin/kotlin-test/1.3.41", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test-junit5", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-test-junit5-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-test-junit5/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test/1.3.41/kotlin-test-1.3.41.pom", - "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test/1.3.41/kotlin-test-1.3.41.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-junit5/1.3.61/kotlin-test-junit5-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-junit5/1.3.61/kotlin-test-junit5-1.3.61.jar" ], - "sha256": "489d7452a48c797a2ff84335e5c52c7b6cfd2060330c195633fff1d634bdf325" + "sha256": "d87e9c6d61ed21a9647df9ab0105b1890508c56001fcf4fe48cfaa21cf94fe15" }, { - "name": "org.junit.jupiter-junit-jupiter-api-5.4.2-jar", - "filename": "junit-jupiter-api-5.4.2.jar", - "path": "org/junit/jupiter/junit-jupiter-api/5.4.2", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-test-junit5", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-test-junit5-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-test-junit5/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-api/5.4.2/junit-jupiter-api-5.4.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-api/5.4.2/junit-jupiter-api-5.4.2.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-test-junit5/1.3.61/kotlin-test-junit5-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-test-junit5/1.3.61/kotlin-test-junit5-1.3.61.pom" ], - "sha256": "cdfb355fee661633f15f2763b8c2029c2e1958585b97b9162d38a36b1754dc3e" + "sha256": "719c6081b17a41aae10b6b4b6d6331462bb1ea0f55a182fa54ced8f8099bd575" }, { - "name": "org.junit.jupiter-junit-jupiter-api-5.4.2-pom", - "filename": "junit-jupiter-api-5.4.2.pom", - "path": "org/junit/jupiter/junit-jupiter-api/5.4.2", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-util-io", + "version": "1.3.61", + "type": "jar", + "extension": "jar" + }, + "name": "kotlin-util-io-1.3.61.jar", + "path": "org/jetbrains/kotlin/kotlin-util-io/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-api/5.4.2/junit-jupiter-api-5.4.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-api/5.4.2/junit-jupiter-api-5.4.2.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.61/kotlin-util-io-1.3.61.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-util-io/1.3.61/kotlin-util-io-1.3.61.jar" ], - "sha256": "1d8de34f706edc691a2bd1dbb25162ed2bb5ef35b2604140776030a0cb3357ed" + "sha256": "4f13b88cdd9f8c992ab1065f176d4eb33b7d1803dd30309f4769b2e64c9af008" }, { - "name": "org.junit.jupiter-junit-jupiter-engine-5.4.2-jar", - "filename": "junit-jupiter-engine-5.4.2.jar", - "path": "org/junit/jupiter/junit-jupiter-engine/5.4.2", + "id": { + "group": "org.jetbrains.kotlin", + "name": "kotlin-util-io", + "version": "1.3.61", + "type": "pom", + "extension": "pom" + }, + "name": "kotlin-util-io-1.3.61.pom", + "path": "org/jetbrains/kotlin/kotlin-util-io/1.3.61", "urls": [ - "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-engine/5.4.2/junit-jupiter-engine-5.4.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-engine/5.4.2/junit-jupiter-engine-5.4.2.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.61/kotlin-util-io-1.3.61.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlin/kotlin-util-io/1.3.61/kotlin-util-io-1.3.61.pom" ], - "sha256": "42aead7c5c1b74e0ef775c374a9fc07c771fd61a3621e66df1793dba14e534fd" + "sha256": "4d0ee73ef6d24d19fc908bf616daf3daa3a070db9aeb00006a36d08dc0989df1" }, { - "name": "org.junit.jupiter-junit-jupiter-engine-5.4.2-pom", - "filename": "junit-jupiter-engine-5.4.2.pom", - "path": "org/junit/jupiter/junit-jupiter-engine/5.4.2", + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.3.3", + "type": "jar", + "extension": "jar" + }, + "name": "kotlinx-coroutines-core-1.3.3.jar", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3", "urls": [ - "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-engine/5.4.2/junit-jupiter-engine-5.4.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-engine/5.4.2/junit-jupiter-engine-5.4.2.pom" + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.jar", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.jar" ], - "sha256": "720e947732504db4f3722f768ff28924e807860f291b98b41af2381ca3702231" + "sha256": "f75f8b0f3260717d45359f9e96ff66613fa063e4065120b067cc907257a0866a" }, { - "name": "org.junit.platform-junit-platform-commons-1.4.2-jar", - "filename": "junit-platform-commons-1.4.2.jar", - "path": "org/junit/platform/junit-platform-commons/1.4.2", + "id": { + "group": "org.jetbrains.kotlinx", + "name": "kotlinx-coroutines-core", + "version": "1.3.3", + "type": "pom", + "extension": "pom" + }, + "name": "kotlinx-coroutines-core-1.3.3.pom", + "path": "org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3", "urls": [ - "https://jcenter.bintray.com/org/junit/platform/junit-platform-commons/1.4.2/junit-platform-commons-1.4.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-commons/1.4.2/junit-platform-commons-1.4.2.jar" + "https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.pom", + "https://repo.gradle.org/gradle/libs-releases/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.3/kotlinx-coroutines-core-1.3.3.pom" ], - "sha256": "104bfa65b30ceb425a6de19d66b976caf38443ff5978ae931c103fa0f99d04ce" + "sha256": "29999e5286c988a9b72b7c6dfeb984d9fa21c51718f5b6f93f5621e700a537fe" }, { - "name": "org.junit.platform-junit-platform-commons-1.4.2-pom", - "filename": "junit-platform-commons-1.4.2.pom", - "path": "org/junit/platform/junit-platform-commons/1.4.2", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-api", + "version": "5.6.0", + "type": "jar", + "extension": "jar" + }, + "name": "junit-jupiter-api-5.6.0.jar", + "path": "org/junit/jupiter/junit-jupiter-api/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/junit/platform/junit-platform-commons/1.4.2/junit-platform-commons-1.4.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-commons/1.4.2/junit-platform-commons-1.4.2.pom" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-api/5.6.0/junit-jupiter-api-5.6.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-api/5.6.0/junit-jupiter-api-5.6.0.jar" ], - "sha256": "c0b2a83d9a1925d14c42c3b34a82276a60db638a14cba26e5fd12a7c80a6ca7c" + "sha256": "128a9828798f978fadfcda255ba365f908e58f6c37275c9e5f671cbd660a9a33" }, { - "name": "org.junit.platform-junit-platform-engine-1.4.2-jar", - "filename": "junit-platform-engine-1.4.2.jar", - "path": "org/junit/platform/junit-platform-engine/1.4.2", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-api", + "version": "5.6.0", + "type": "module", + "extension": "module" + }, + "name": "junit-jupiter-api-5.6.0.module", + "path": "org/junit/jupiter/junit-jupiter-api/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/junit/platform/junit-platform-engine/1.4.2/junit-platform-engine-1.4.2.jar", - "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-engine/1.4.2/junit-platform-engine-1.4.2.jar" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-api/5.6.0/junit-jupiter-api-5.6.0.module", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-api/5.6.0/junit-jupiter-api-5.6.0.module" ], - "sha256": "7edb2ad879a338a84dbb09202b1399640ec0cacc5a95168539a9a74b5a2302e1" + "sha256": "97cd25d82b490d80b4582a338546156a8f45ecaa8766484145a72b9015a2fde6" }, { - "name": "org.junit.platform-junit-platform-engine-1.4.2-pom", - "filename": "junit-platform-engine-1.4.2.pom", - "path": "org/junit/platform/junit-platform-engine/1.4.2", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-api", + "version": "5.6.0", + "type": "pom", + "extension": "pom" + }, + "name": "junit-jupiter-api-5.6.0.pom", + "path": "org/junit/jupiter/junit-jupiter-api/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/junit/platform/junit-platform-engine/1.4.2/junit-platform-engine-1.4.2.pom", - "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-engine/1.4.2/junit-platform-engine-1.4.2.pom" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-api/5.6.0/junit-jupiter-api-5.6.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-api/5.6.0/junit-jupiter-api-5.6.0.pom" ], - "sha256": "fa128efe174cd68f403d06915c9c57a399d660dab2742bc2366fd07c45a7c1e1" + "sha256": "ae3f336008d36ca6a7a416ed704c8e57dab9b598705132e4ce465b4dbcbe725a" }, { - "name": "org.opentest4j-opentest4j-1.1.1-jar", - "filename": "opentest4j-1.1.1.jar", - "path": "org/opentest4j/opentest4j/1.1.1", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-engine", + "version": "5.6.0", + "type": "jar", + "extension": "jar" + }, + "name": "junit-jupiter-engine-5.6.0.jar", + "path": "org/junit/jupiter/junit-jupiter-engine/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.jar", - "https://repo.gradle.org/gradle/libs-releases/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.jar" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-engine/5.6.0/junit-jupiter-engine-5.6.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-engine/5.6.0/junit-jupiter-engine-5.6.0.jar" ], - "sha256": "f106351abd941110226745ed103c85863b3f04e9fa82ddea1084639ae0c5336c" + "sha256": "670c95d2e60099ce747e2ffefd716dbed5afedd0b995949a3592d7c88e796d2d" }, { - "name": "org.opentest4j-opentest4j-1.1.1-pom", - "filename": "opentest4j-1.1.1.pom", - "path": "org/opentest4j/opentest4j/1.1.1", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-engine", + "version": "5.6.0", + "type": "module", + "extension": "module" + }, + "name": "junit-jupiter-engine-5.6.0.module", + "path": "org/junit/jupiter/junit-jupiter-engine/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.pom", - "https://repo.gradle.org/gradle/libs-releases/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.pom" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-engine/5.6.0/junit-jupiter-engine-5.6.0.module", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-engine/5.6.0/junit-jupiter-engine-5.6.0.module" ], - "sha256": "d9ddb3babfbfc0a7b5b3a76e7ebd0e8f35854af9f6db0e949919b6f85b7dfd68" + "sha256": "10c2179b057a9d7b768ce3f4531415a2bb9472789a0d2ba2d7728eda70f92652" }, { - "name": "org.slf4j-slf4j-api-1.7.25-jar", - "filename": "slf4j-api-1.7.25.jar", - "path": "org/slf4j/slf4j-api/1.7.25", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-engine", + "version": "5.6.0", + "type": "pom", + "extension": "pom" + }, + "name": "junit-jupiter-engine-5.6.0.pom", + "path": "org/junit/jupiter/junit-jupiter-engine/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar", - "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-engine/5.6.0/junit-jupiter-engine-5.6.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-engine/5.6.0/junit-jupiter-engine-5.6.0.pom" ], - "sha256": "18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79" + "sha256": "2edff9ec02336f8ccb64b79a21d54f9f327b3e20078299fe7060d8bed9838bf0" }, { - "name": "org.slf4j-slf4j-api-1.7.25-pom", - "filename": "slf4j-api-1.7.25.pom", - "path": "org/slf4j/slf4j-api/1.7.25", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-params", + "version": "5.6.0", + "type": "jar", + "extension": "jar" + }, + "name": "junit-jupiter-params-5.6.0.jar", + "path": "org/junit/jupiter/junit-jupiter-params/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.pom", - "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.pom" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-params/5.6.0/junit-jupiter-params-5.6.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-params/5.6.0/junit-jupiter-params-5.6.0.jar" ], - "sha256": "7cd9d7a0b5d93dfd461a148891b43509cf403a9c7f9fb49060d3554df1c81e1e" + "sha256": "dadea8429e8c44774a85f67a511d3d13dab58e694b576f7fca73262484ae02c0" }, { - "name": "org.slf4j-slf4j-parent-1.7.25-pom", - "filename": "slf4j-parent-1.7.25.pom", - "path": "org/slf4j/slf4j-parent/1.7.25", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-params", + "version": "5.6.0", + "type": "module", + "extension": "module" + }, + "name": "junit-jupiter-params-5.6.0.module", + "path": "org/junit/jupiter/junit-jupiter-params/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/slf4j/slf4j-parent/1.7.25/slf4j-parent-1.7.25.pom", - "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-parent/1.7.25/slf4j-parent-1.7.25.pom" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-params/5.6.0/junit-jupiter-params-5.6.0.module", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-params/5.6.0/junit-jupiter-params-5.6.0.module" ], - "sha256": "18f5c52120db036e88d6136f8839c832d074bdda95c756c6f429249d2db54ac6" + "sha256": "d9248db327a72c4668e116a36d996491ddf936281bc10a99738c337676fd6c9d" }, { - "name": "org.sonatype.oss-oss-parent-9-pom", - "filename": "oss-parent-9.pom", - "path": "org/sonatype/oss/oss-parent/9", + "id": { + "group": "org.junit.jupiter", + "name": "junit-jupiter-params", + "version": "5.6.0", + "type": "pom", + "extension": "pom" + }, + "name": "junit-jupiter-params-5.6.0.pom", + "path": "org/junit/jupiter/junit-jupiter-params/5.6.0", "urls": [ - "https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom", - "https://repo.gradle.org/gradle/libs-releases/org/sonatype/oss/oss-parent/9/oss-parent-9.pom" + "https://jcenter.bintray.com/org/junit/jupiter/junit-jupiter-params/5.6.0/junit-jupiter-params-5.6.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/junit/jupiter/junit-jupiter-params/5.6.0/junit-jupiter-params-5.6.0.pom" ], - "sha256": "fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a" + "sha256": "148e123188333a04e7b9bd5108ce059fb3c62a9c17b903737f2d9be34ced9c94" + }, + { + "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.junit.platform", + "name": "junit-platform-launcher", + "version": "1.6.0", + "type": "jar", + "extension": "jar" + }, + "name": "junit-platform-launcher-1.6.0.jar", + "path": "org/junit/platform/junit-platform-launcher/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-launcher/1.6.0/junit-platform-launcher-1.6.0.jar", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-launcher/1.6.0/junit-platform-launcher-1.6.0.jar" + ], + "sha256": "11490be3f7488098fc460f0f754e95bbf6667473ab7f17d7d200557f9398c248" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-launcher", + "version": "1.6.0", + "type": "module", + "extension": "module" + }, + "name": "junit-platform-launcher-1.6.0.module", + "path": "org/junit/platform/junit-platform-launcher/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-launcher/1.6.0/junit-platform-launcher-1.6.0.module", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-launcher/1.6.0/junit-platform-launcher-1.6.0.module" + ], + "sha256": "c48b36d4b89444e53360786c64c3d556cffe3f0bd65c3eda47fbb197e8b16ab2" + }, + { + "id": { + "group": "org.junit.platform", + "name": "junit-platform-launcher", + "version": "1.6.0", + "type": "pom", + "extension": "pom" + }, + "name": "junit-platform-launcher-1.6.0.pom", + "path": "org/junit/platform/junit-platform-launcher/1.6.0", + "urls": [ + "https://jcenter.bintray.com/org/junit/platform/junit-platform-launcher/1.6.0/junit-platform-launcher-1.6.0.pom", + "https://repo.gradle.org/gradle/libs-releases/org/junit/platform/junit-platform-launcher/1.6.0/junit-platform-launcher-1.6.0.pom" + ], + "sha256": "61c2f71a2c19ee8c6368c19ef0abc43008ffc347b1c43b7753a7c594d916a5d9" + }, + { + "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", + "name": "slf4j-api", + "version": "1.7.28", + "type": "jar", + "extension": "jar" + }, + "name": "slf4j-api-1.7.28.jar", + "path": "org/slf4j/slf4j-api/1.7.28", + "urls": [ + "https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.28/slf4j-api-1.7.28.jar", + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/1.7.28/slf4j-api-1.7.28.jar" + ], + "sha256": "fb6e4f67a2a4689e3e713584db17a5d1090c1ebe6eec30e9e0349a6ee118141e" + }, + { + "id": { + "group": "org.slf4j", + "name": "slf4j-api", + "version": "1.7.28", + "type": "pom", + "extension": "pom" + }, + "name": "slf4j-api-1.7.28.pom", + "path": "org/slf4j/slf4j-api/1.7.28", + "urls": [ + "https://jcenter.bintray.com/org/slf4j/slf4j-api/1.7.28/slf4j-api-1.7.28.pom", + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/1.7.28/slf4j-api-1.7.28.pom" + ], + "sha256": "61f10feac576665b68caa6170cd423e8fb00055f1fad7ad9d7de2150e5f15caa" + }, + { + "id": { + "group": "org.slf4j", + "name": "slf4j-parent", + "version": "1.7.28", + "type": "pom", + "extension": "pom" + }, + "name": "slf4j-parent-1.7.28.pom", + "path": "org/slf4j/slf4j-parent/1.7.28", + "urls": [ + "https://jcenter.bintray.com/org/slf4j/slf4j-parent/1.7.28/slf4j-parent-1.7.28.pom", + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-parent/1.7.28/slf4j-parent-1.7.28.pom" + ], + "sha256": "919b5f42dde33ace036865d1e2b292d98a0627417ff756e0287f4a56ad3e544e" } ] } diff --git a/gradle-env.nix b/gradle-env.nix index 91b01cd..9c8c076 100644 --- a/gradle-env.nix +++ b/gradle-env.nix @@ -19,7 +19,7 @@ # ''; # } -{ stdenv, lib, buildEnv, fetchurl, gradleGen, writeText }: +{ stdenv, buildEnv, fetchurl, gradleGen, writeText, writeTextDir }: { envSpec , pname ? null @@ -27,9 +27,18 @@ , enableParallelBuilding ? true , gradleFlags ? [ "build" ] , gradlePackage ? null +, enableDebug ? false , ... } @ args: let + inherit (builtins) + filter sort replaceStrings attrValues match fromJSON + concatStringsSep; + + inherit (stdenv.lib) + versionOlder unique mapAttrs last concatMapStringsSep removeSuffix + optionalString groupBy' readFile hasSuffix; + mkDep = depSpec: stdenv.mkDerivation { inherit (depSpec) name; @@ -41,40 +50,171 @@ let installPhase = '' mkdir -p $out/${depSpec.path} - ln -s $src $out/${depSpec.path}/${depSpec.filename} + ln -s $src $out/${depSpec.path}/${depSpec.name} ''; }; + mkModuleMetadata = deps: + let + ids = filter + (id: id.type == "pom") + (map (dep: dep.id) deps); + + modules = groupBy' + (meta: id: + let + isNewer = versionOlder meta.latest id.version; + isNewerRelease = + !(hasSuffix "-SNAPSHOT" id.version) && + versionOlder meta.release id.version; + in { + groupId = id.group; + artifactId = id.name; + latest = if isNewer then id.version else meta.latest; + release = if isNewerRelease then id.version else meta.release; + versions = meta.versions ++ [id.version]; + } + ) + { + latest = ""; + release = ""; + versions = []; + } + (id: "${replaceStrings ["."] ["/"] id.group}/${id.name}/maven-metadata.xml") + ids; + + in + attrValues (mapAttrs (path: meta: + let + versions' = sort versionOlder (unique meta.versions); + in + with meta; writeTextDir path '' + + + ${groupId} + ${artifactId} + + ${optionalString (latest != "") "${latest}"} + ${optionalString (release != "") "${release}"} + + ${concatMapStringsSep "\n " (v: "${v}") versions'} + + + + '' + ) modules); + + mkSnapshotMetadata = deps: + let + snapshotDeps = filter (dep: dep ? build && dep ? timestamp) deps; + + modules = groupBy' + (meta: dep: + let + id = dep.id; + isNewer = dep.build > meta.buildNumber; + # Timestamp values can be bogus, e.g. jitpack.io + updated = if (match "[0-9]{8}\.[0-9]{6}" dep.timestamp) != null + then replaceStrings ["."] [""] dep.timestamp + else ""; + in { + groupId = id.group; + artifactId = id.name; + version = id.version; + timestamp = if isNewer then dep.timestamp else meta.timestamp; + buildNumber = if isNewer then dep.build else meta.buildNumber; + lastUpdated = if isNewer then updated else meta.lastUpdated; + versions = meta.versions or [] ++ [{ + classifier = id.classifier or ""; + extension = id.extension; + value = "${removeSuffix "-SNAPSHOT" id.version}-${dep.timestamp}-${toString dep.build}"; + updated = updated; + }]; + } + ) + { + timestamp = ""; + buildNumber = -1; + lastUpdated = ""; + } + (dep: "${replaceStrings ["."] ["/"] dep.id.group}/${dep.id.name}/${dep.id.version}/maven-metadata.xml") + snapshotDeps; + + mkSnapshotVersion = version: '' + + ${optionalString (version.classifier != "") "${version.classifier}"} + ${version.extension} + ${version.value} + ${optionalString (version.updated != "") "${version.updated}"} + + ''; + + in + attrValues (mapAttrs (path: meta: + with meta; writeTextDir path '' + + + ${groupId} + ${artifactId} + ${version} + + + ${optionalString (timestamp != "") "${timestamp}"} + ${optionalString (buildNumber != -1) "${toString buildNumber}"} + + ${optionalString (lastUpdated != "") "${lastUpdated}"} + + ${concatMapStringsSep "\n " mkSnapshotVersion versions} + + + + '' + ) modules); + mkRepo = project: type: deps: buildEnv { name = "${project}-gradle-${type}-env"; - paths = map mkDep deps; + paths = map mkDep deps ++ mkModuleMetadata deps ++ mkSnapshotMetadata deps; }; mkInitScript = projectSpec: let - repos = builtins.mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies; + repos = mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies; in writeText "init.gradle" '' + static def offlineRepo(RepositoryHandler repositories, String env, String path) { + repositories.clear() + repositories.maven { + name "Nix''${env.capitalize()}MavenOffline" + url path + metadataSources { + it.gradleMetadata() + it.mavenPom() + it.artifact() + } + } + repositories.ivy { + name "Nix''${env.capitalize()}IvyOffline" + url path + layout "maven" + metadataSources { + it.gradleMetadata() + it.ivyDescriptor() + it.artifact() + } + } + } + gradle.settingsEvaluated { - it.pluginManagement.repositories { - clear() - maven { url = uri("${repos.plugin}") } - } + offlineRepo(it.pluginManagement.repositories, "plugin", "${repos.plugin}") } gradle.projectsLoaded { - allprojects { - buildscript { - repositories { - clear() - maven { url = uri("${repos.buildscript}") } - } + allprojects { + buildscript { + offlineRepo(repositories, "buildscript", "${repos.buildscript}") + } + offlineRepo(repositories, "project", "${repos.project}") } - repositories { - clear() - maven { url = uri("${repos.project}") } - } - } } ''; @@ -95,9 +235,9 @@ let gradle = args.gradlePackage or mkGradle projectSpec.gradle; }; - gradleEnv = builtins.mapAttrs + gradleEnv = mapAttrs (_: p: mkProjectEnv p) - (builtins.fromJSON (builtins.readFile envSpec)); + (fromJSON (readFile envSpec)); projectEnv = gradleEnv.""; pname = args.pname or projectEnv.name; @@ -118,9 +258,10 @@ in stdenv.mkDerivation (args // { "GRADLE_USER_HOME=$(mktemp -d)" \ gradle --offline --no-daemon --no-build-cache \ --info --full-stacktrace --warning-mode=all \ - ${lib.optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ --init-script ${projectEnv.initScript} \ - ${builtins.concatStringsSep " " gradleFlags} + ${concatStringsSep " " gradleFlags} ) runHook postBuild diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..b0cc9f8 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs='-Dfile.encoding=UTF-8' + +VERSION=1.0.0-rc1 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf..f3d88b1 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca9d628..31a0802 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-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 83f2acf..2fe81a7 100755 --- a/gradlew +++ b/gradlew @@ -154,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -175,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/model/build.gradle.kts b/model/build.gradle.kts index 4ecd9c1..f8a0080 100644 --- a/model/build.gradle.kts +++ b/model/build.gradle.kts @@ -4,11 +4,7 @@ plugins { } dependencies { - compileOnly("com.squareup.moshi:moshi:+") - compileOnly("com.squareup.okio:okio:+") - kapt("com.squareup.moshi:moshi-kotlin-codegen:+") - - // https://github.com/gradle/gradle/issues/10697 - compileOnly("org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41") - testImplementation("org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41") + api("com.squareup.moshi:moshi:latest.release") + kapt("com.squareup.moshi:moshi-kotlin-codegen:latest.release") + implementation("net.swiftzer.semver:semver:latest.release") } diff --git a/model/gradle/dependency-locks/compileClasspath.lockfile b/model/gradle/dependency-locks/compileClasspath.lockfile index f4ed712..c8f22a8 100644 --- a/model/gradle/dependency-locks/compileClasspath.lockfile +++ b/model/gradle/dependency-locks/compileClasspath.lockfile @@ -1,11 +1,12 @@ # 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.squareup.moshi:moshi:1.8.0 -com.squareup.okio:okio:2.4.1 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.50 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +net.swiftzer.semver:semver:1.1.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 diff --git a/model/gradle/dependency-locks/runtimeClasspath.lockfile b/model/gradle/dependency-locks/runtimeClasspath.lockfile index 656c5db..bcf4ce0 100644 --- a/model/gradle/dependency-locks/runtimeClasspath.lockfile +++ b/model/gradle/dependency-locks/runtimeClasspath.lockfile @@ -1,3 +1,6 @@ # 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.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +net.swiftzer.semver:semver:1.1.1 diff --git a/model/gradle/dependency-locks/testCompileClasspath.lockfile b/model/gradle/dependency-locks/testCompileClasspath.lockfile index b821f6f..c8f22a8 100644 --- a/model/gradle/dependency-locks/testCompileClasspath.lockfile +++ b/model/gradle/dependency-locks/testCompileClasspath.lockfile @@ -1,9 +1,12 @@ # 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. -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +net.swiftzer.semver:semver:1.1.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 diff --git a/model/gradle/dependency-locks/testRuntimeClasspath.lockfile b/model/gradle/dependency-locks/testRuntimeClasspath.lockfile index b821f6f..c8f22a8 100644 --- a/model/gradle/dependency-locks/testRuntimeClasspath.lockfile +++ b/model/gradle/dependency-locks/testRuntimeClasspath.lockfile @@ -1,9 +1,12 @@ # 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. -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +net.swiftzer.semver:semver:1.1.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/Impl.kt b/model/src/main/kotlin/org/nixos/gradle2nix/Impl.kt index 607f45a..8c76fef 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/Impl.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/Impl.kt @@ -1,20 +1,22 @@ package org.nixos.gradle2nix import com.squareup.moshi.JsonClass +import net.swiftzer.semver.SemVer import java.io.Serializable +import java.lang.IllegalArgumentException @JsonClass(generateAdapter = true) data class DefaultBuild( override val gradle: DefaultGradle, - override val pluginDependencies: DefaultDependencies, + override val pluginDependencies: List, override val rootProject: DefaultProject, override val includedBuilds: List ) : Build, Serializable { constructor(model: Build) : this( DefaultGradle(model.gradle), - DefaultDependencies(model.pluginDependencies), + model.pluginDependencies.map(::DefaultArtifact), DefaultProject(model.rootProject), - model.includedBuilds.map { DefaultIncludedBuild(it) } + model.includedBuilds.map(::DefaultIncludedBuild) ) } @@ -52,8 +54,8 @@ data class DefaultProject( override val version: String, override val path: String, override val projectDir: String, - override val buildscriptDependencies: DefaultDependencies, - override val projectDependencies: DefaultDependencies, + override val buildscriptDependencies: List, + override val projectDependencies: List, override val children: List ) : Project, Serializable { constructor(model: Project) : this( @@ -61,59 +63,75 @@ data class DefaultProject( model.version, model.path, model.projectDir, - DefaultDependencies(model.buildscriptDependencies), - DefaultDependencies(model.projectDependencies), + model.buildscriptDependencies.map(::DefaultArtifact), + model.projectDependencies.map(::DefaultArtifact), model.children.map { DefaultProject(it) } ) } -@JsonClass(generateAdapter = true) -data class DefaultDependencies( - override val repositories: DefaultRepositories, - override val artifacts: List -) : Dependencies, Serializable { - constructor(model: Dependencies) : this( - DefaultRepositories(model.repositories), - model.artifacts.map { DefaultArtifact(it) } - ) -} - -@JsonClass(generateAdapter = true) -data class DefaultRepositories( - override val maven: List -) : Repositories, Serializable { - constructor(model: Repositories) : this( - model.maven.map { DefaultMaven(it) } - ) -} - -@JsonClass(generateAdapter = true) -data class DefaultMaven( - override val urls: List -) : Maven, Serializable { - constructor(model: Maven) : this( - model.urls.toList() - ) -} - @JsonClass(generateAdapter = true) data class DefaultArtifact( - override val groupId: String, - override val artifactId: String, - override val version: String, - override val classifier: String, - override val extension: String, + override val id: DefaultArtifactIdentifier, + override val name: String, + override val path: String, + override val timestamp: String? = null, + override val build: Int? = null, + override val urls: List, override val sha256: String ) : Artifact, Comparable, Serializable { constructor(model: Artifact) : this( - model.groupId, - model.artifactId, - model.version, - model.classifier, - model.extension, + DefaultArtifactIdentifier(model.id), + model.name, + model.path, + model.timestamp, + model.build, + model.urls, model.sha256 ) - override fun toString() = "$groupId:$artifactId:$version:$classifier:$extension" - override fun compareTo(other: DefaultArtifact): Int = toString().compareTo(other.toString()) + override fun toString() = id.toString() + override fun compareTo(other: DefaultArtifact): Int = id.compareTo(other.id) } + +@JsonClass(generateAdapter = true) +data class DefaultArtifactIdentifier( + override val group: String, + override val name: String, + override val version: String, + override val type: String, + override val extension: String = type, + override val classifier: String? = null +) : ArtifactIdentifier, Comparable, Serializable { + constructor(model: ArtifactIdentifier) : this( + model.group, + model.name, + model.version, + model.type, + model.extension, + model.classifier + ) + + @delegate:Transient + private val semver: SemVer? by lazy { + try { + SemVer.parse(version) + } catch (_: IllegalArgumentException) { + null + } + } + + override fun compareTo(other: DefaultArtifactIdentifier): Int { + return group.compareTo(other.group).takeUnless { it == 0 } + ?: name.compareTo(other.name).takeUnless { it == 0 } + ?: other.semver?.let { semver?.compareTo(it) }?.takeUnless { it == 0 } + ?: type.compareTo(other.type).takeUnless { it == 0 } + ?: other.classifier?.let { classifier?.compareTo(it) }?.takeUnless { it == 0 } + ?: 0 + } + + override fun toString(): String = buildString { + append("$group:$name:$version") + if (classifier != null) append(":$classifier") + append("@$type") + } +} \ No newline at end of file diff --git a/model/src/main/kotlin/org/nixos/gradle2nix/Model.kt b/model/src/main/kotlin/org/nixos/gradle2nix/Model.kt index 90eb49e..cf7b57f 100644 --- a/model/src/main/kotlin/org/nixos/gradle2nix/Model.kt +++ b/model/src/main/kotlin/org/nixos/gradle2nix/Model.kt @@ -2,7 +2,7 @@ package org.nixos.gradle2nix interface Build { val gradle: Gradle - val pluginDependencies: Dependencies + val pluginDependencies: List val rootProject: Project val includedBuilds: List } @@ -25,29 +25,26 @@ interface Project { val version: String val path: String val projectDir: String - val buildscriptDependencies: Dependencies - val projectDependencies: Dependencies + val buildscriptDependencies: List + val projectDependencies: List val children: List } -interface Dependencies { - val repositories: Repositories - val artifacts: List -} - -interface Repositories { - val maven: List -} - -interface Maven { - val urls: List -} - interface Artifact { - val groupId: String - val artifactId: String - val version: String - val classifier: String - val extension: String + val id: ArtifactIdentifier + val name: String + val path: String + val timestamp: String? + val build: Int? + val urls: List val sha256: String } + +interface ArtifactIdentifier { + val group: String + val name: String + val version: String + val type: String + val extension: String + val classifier: String? +} \ No newline at end of file diff --git a/plugin/.stutter/java11.lock b/plugin/.stutter/java11.lock index c674363..9f3de2e 100644 --- a/plugin/.stutter/java11.lock +++ b/plugin/.stutter/java11.lock @@ -5,4 +5,6 @@ 5.3.1 5.4.1 5.5.1 -5.6.2 +5.6.4 +6.0.1 +6.1 diff --git a/plugin/.stutter/java8.lock b/plugin/.stutter/java8.lock index 528b0ca..bc04116 100644 --- a/plugin/.stutter/java8.lock +++ b/plugin/.stutter/java8.lock @@ -12,4 +12,6 @@ 5.3.1 5.4.1 5.5.1 -5.6.2 +5.6.4 +6.0.1 +6.1 diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index dd5fe55..affd82f 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -9,12 +9,14 @@ plugins { id("com.github.johnrengelman.shadow") id("org.ajoberstar.stutter") } -apply { - plugin("kotlin") -} -group = "org.nixos" -version = "1.0.0-SNAPSHOT" +sourceSets { + compatTest { + resources { + srcDir("$rootDir/fixtures") + } + } +} dependencyLocking { lockAllConfigurations() @@ -30,19 +32,21 @@ dependencies { implementation(project(":model")) shadow(gradleApi()) compileOnly("org.gradle:gradle-tooling-api:${gradle.gradleVersion}") - implementation("org.apache.maven:maven-model:latest.release") - implementation("org.apache.maven:maven-model-builder:latest.release") + implementation("org.apache.ivy:ivy:latest.release") + implementation("org.apache.maven:maven-repository-metadata:latest.release") compatTestImplementation(embeddedKotlin("stdlib-jdk8")) compatTestImplementation(embeddedKotlin("test-junit5")) - compatTestImplementation("org.junit.jupiter:junit-jupiter-api:5.4+") - compatTestRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.4+") + compatTestImplementation(embeddedKotlin("reflect")) + compatTestImplementation("org.junit.jupiter:junit-jupiter-api:latest.release") + compatTestRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:latest.release") + compatTestImplementation("org.junit.jupiter:junit-jupiter-params:latest.release") + compatTestRuntimeOnly("org.junit.platform:junit-platform-launcher:latest.release") + compatTestImplementation("dev.minutest:minutest:latest.release") compatTestImplementation(gradleTestKit()) compatTestImplementation(project(":model")) - - // https://github.com/gradle/gradle/issues/10697 - compileOnly("org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41") - testImplementation("org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41") + compatTestImplementation("io.strikt:strikt-core:latest.release") + compatTestImplementation("com.squareup.okio:okio:latest.release") } gradlePlugin { diff --git a/plugin/gradle/dependency-locks/buildscript-classpath.lockfile b/plugin/gradle/dependency-locks/buildscript-classpath.lockfile index be46018..775c121 100644 --- a/plugin/gradle/dependency-locks/buildscript-classpath.lockfile +++ b/plugin/gradle/dependency-locks/buildscript-classpath.lockfile @@ -7,28 +7,31 @@ commons-logging:commons-logging:1.2 de.undercouch:gradle-download-task:3.4.3 org.apache.httpcomponents:httpclient:4.5.3 org.apache.httpcomponents:httpcore:4.4.6 -org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:1.2.9 -org.gradle.kotlin:plugins:1.2.9 +org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:1.3.3 +org.gradle.kotlin:plugins:1.3.3 org.jetbrains.intellij.deps:trove4j:1.0.20181211 -org.jetbrains.kotlin:kotlin-android-extensions:1.3.41 -org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.3.41 -org.jetbrains.kotlin:kotlin-build-common:1.3.41 -org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.41 -org.jetbrains.kotlin:kotlin-compiler-runner:1.3.41 -org.jetbrains.kotlin:kotlin-daemon-client:1.3.41 -org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.3.41 -org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.3.41 -org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.41 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-sam-with-receiver:1.3.41 -org.jetbrains.kotlin:kotlin-script-runtime:1.3.41 -org.jetbrains.kotlin:kotlin-scripting-common:1.3.41 -org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.3.41 -org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.3.41 -org.jetbrains.kotlin:kotlin-scripting-jvm:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1 +org.jetbrains.kotlin:kotlin-android-extensions:1.3.61 +org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.3.61 +org.jetbrains.kotlin:kotlin-build-common:1.3.61 +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.61 +org.jetbrains.kotlin:kotlin-compiler-runner:1.3.61 +org.jetbrains.kotlin:kotlin-daemon-client:1.3.61 +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.3.61 +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.3.61 +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.3.61 +org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61 +org.jetbrains.kotlin:kotlin-native-utils:1.3.61 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-sam-with-receiver:1.3.61 +org.jetbrains.kotlin:kotlin-script-runtime:1.3.61 +org.jetbrains.kotlin:kotlin-scripting-common:1.3.61 +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.3.61 +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.3.61 +org.jetbrains.kotlin:kotlin-scripting-jvm:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 +org.jetbrains.kotlin:kotlin-util-io:1.3.61 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1 org.jetbrains:annotations:13.0 diff --git a/plugin/gradle/dependency-locks/compatTestCompileClasspath.lockfile b/plugin/gradle/dependency-locks/compatTestCompileClasspath.lockfile index 9eb43db..1394e97 100644 --- a/plugin/gradle/dependency-locks/compatTestCompileClasspath.lockfile +++ b/plugin/gradle/dependency-locks/compatTestCompileClasspath.lockfile @@ -1,16 +1,23 @@ # 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. -org.apiguardian:apiguardian-api:1.0.0 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 -org.jetbrains.kotlin:kotlin-test-annotations-common:1.3.41 -org.jetbrains.kotlin:kotlin-test-common:1.3.41 -org.jetbrains.kotlin:kotlin-test-junit5:1.3.41 -org.jetbrains.kotlin:kotlin-test:1.3.41 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:2.4.3 +dev.minutest:minutest:1.10.0 +io.strikt:strikt-core:0.23.4 +org.apiguardian:apiguardian-api:1.1.0 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 +org.jetbrains.kotlin:kotlin-test-annotations-common:1.3.61 +org.jetbrains.kotlin:kotlin-test-common:1.3.61 +org.jetbrains.kotlin:kotlin-test-junit5:1.3.61 +org.jetbrains.kotlin:kotlin-test:1.3.61 org.jetbrains:annotations:13.0 -org.junit.jupiter:junit-jupiter-api:5.4.2 -org.junit.platform:junit-platform-commons:1.4.2 -org.opentest4j:opentest4j:1.1.1 +org.junit.jupiter:junit-jupiter-api:5.6.0 +org.junit.jupiter:junit-jupiter-params:5.6.0 +org.junit.platform:junit-platform-commons:1.6.0 +org.junit:junit-bom:5.6.0 +org.opentest4j:opentest4j:1.2.0 diff --git a/plugin/gradle/dependency-locks/compatTestRuntimeClasspath.lockfile b/plugin/gradle/dependency-locks/compatTestRuntimeClasspath.lockfile index 44942f8..2eedc2f 100644 --- a/plugin/gradle/dependency-locks/compatTestRuntimeClasspath.lockfile +++ b/plugin/gradle/dependency-locks/compatTestRuntimeClasspath.lockfile @@ -1,18 +1,30 @@ # 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. -org.apiguardian:apiguardian-api:1.0.0 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 -org.jetbrains.kotlin:kotlin-test-annotations-common:1.3.41 -org.jetbrains.kotlin:kotlin-test-common:1.3.41 -org.jetbrains.kotlin:kotlin-test-junit5:1.3.41 -org.jetbrains.kotlin:kotlin-test:1.3.41 +com.christophsturm:filepeek:0.1.1 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:2.4.3 +dev.minutest:minutest:1.10.0 +io.github.classgraph:classgraph:4.8.28 +io.strikt:strikt-core:0.23.4 +net.swiftzer.semver:semver:1.1.1 +org.apiguardian:apiguardian-api:1.1.0 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 +org.jetbrains.kotlin:kotlin-test-annotations-common:1.3.61 +org.jetbrains.kotlin:kotlin-test-common:1.3.61 +org.jetbrains.kotlin:kotlin-test-junit5:1.3.61 +org.jetbrains.kotlin:kotlin-test:1.3.61 +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3 org.jetbrains:annotations:13.0 -org.junit.jupiter:junit-jupiter-api:5.4.2 -org.junit.jupiter:junit-jupiter-engine:5.4.2 -org.junit.platform:junit-platform-commons:1.4.2 -org.junit.platform:junit-platform-engine:1.4.2 -org.opentest4j:opentest4j:1.1.1 +org.junit.jupiter:junit-jupiter-api:5.6.0 +org.junit.jupiter:junit-jupiter-engine:5.6.0 +org.junit.jupiter:junit-jupiter-params:5.6.0 +org.junit.platform:junit-platform-commons:1.6.0 +org.junit.platform:junit-platform-engine:1.6.0 +org.junit.platform:junit-platform-launcher:1.6.0 +org.junit:junit-bom:5.6.0 +org.opentest4j:opentest4j:1.2.0 diff --git a/plugin/gradle/dependency-locks/compileClasspath.lockfile b/plugin/gradle/dependency-locks/compileClasspath.lockfile index 8bd5e16..1dc0e07 100644 --- a/plugin/gradle/dependency-locks/compileClasspath.lockfile +++ b/plugin/gradle/dependency-locks/compileClasspath.lockfile @@ -1,19 +1,15 @@ # 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. -javax.inject:javax.inject:1 -org.apache.commons:commons-lang3:3.8.1 -org.apache.maven:maven-artifact:3.6.2 -org.apache.maven:maven-builder-support:3.6.2 -org.apache.maven:maven-model-builder:3.6.2 -org.apache.maven:maven-model:3.6.2 -org.codehaus.plexus:plexus-interpolation:1.25 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +org.apache.ivy:ivy:2.5.0 +org.apache.maven:maven-repository-metadata:3.6.3 org.codehaus.plexus:plexus-utils:3.2.1 -org.eclipse.sisu:org.eclipse.sisu.inject:0.3.3 -org.gradle:gradle-tooling-api:5.6.2 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 +org.gradle:gradle-tooling-api:6.1 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 diff --git a/plugin/gradle/dependency-locks/runtimeClasspath.lockfile b/plugin/gradle/dependency-locks/runtimeClasspath.lockfile index 36052c4..42dc9b1 100644 --- a/plugin/gradle/dependency-locks/runtimeClasspath.lockfile +++ b/plugin/gradle/dependency-locks/runtimeClasspath.lockfile @@ -1,12 +1,9 @@ # 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. -javax.inject:javax.inject:1 -org.apache.commons:commons-lang3:3.8.1 -org.apache.maven:maven-artifact:3.6.2 -org.apache.maven:maven-builder-support:3.6.2 -org.apache.maven:maven-model-builder:3.6.2 -org.apache.maven:maven-model:3.6.2 -org.codehaus.plexus:plexus-interpolation:1.25 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +net.swiftzer.semver:semver:1.1.1 +org.apache.ivy:ivy:2.5.0 +org.apache.maven:maven-repository-metadata:3.6.3 org.codehaus.plexus:plexus-utils:3.2.1 -org.eclipse.sisu:org.eclipse.sisu.inject:0.3.3 diff --git a/plugin/gradle/dependency-locks/testCompileClasspath.lockfile b/plugin/gradle/dependency-locks/testCompileClasspath.lockfile index 5efe0a0..6d78c29 100644 --- a/plugin/gradle/dependency-locks/testCompileClasspath.lockfile +++ b/plugin/gradle/dependency-locks/testCompileClasspath.lockfile @@ -1,18 +1,14 @@ # 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. -javax.inject:javax.inject:1 -org.apache.commons:commons-lang3:3.8.1 -org.apache.maven:maven-artifact:3.6.2 -org.apache.maven:maven-builder-support:3.6.2 -org.apache.maven:maven-model-builder:3.6.2 -org.apache.maven:maven-model:3.6.2 -org.codehaus.plexus:plexus-interpolation:1.25 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +org.apache.ivy:ivy:2.5.0 +org.apache.maven:maven-repository-metadata:3.6.3 org.codehaus.plexus:plexus-utils:3.2.1 -org.eclipse.sisu:org.eclipse.sisu.inject:0.3.3 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 diff --git a/plugin/gradle/dependency-locks/testRuntimeClasspath.lockfile b/plugin/gradle/dependency-locks/testRuntimeClasspath.lockfile index 5efe0a0..8b9f163 100644 --- a/plugin/gradle/dependency-locks/testRuntimeClasspath.lockfile +++ b/plugin/gradle/dependency-locks/testRuntimeClasspath.lockfile @@ -1,18 +1,15 @@ # 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. -javax.inject:javax.inject:1 -org.apache.commons:commons-lang3:3.8.1 -org.apache.maven:maven-artifact:3.6.2 -org.apache.maven:maven-builder-support:3.6.2 -org.apache.maven:maven-model-builder:3.6.2 -org.apache.maven:maven-model:3.6.2 -org.codehaus.plexus:plexus-interpolation:1.25 +com.squareup.moshi:moshi:1.9.2 +com.squareup.okio:okio:1.16.0 +net.swiftzer.semver:semver:1.1.1 +org.apache.ivy:ivy:2.5.0 +org.apache.maven:maven-repository-metadata:3.6.3 org.codehaus.plexus:plexus-utils:3.2.1 -org.eclipse.sisu:org.eclipse.sisu.inject:0.3.3 -org.jetbrains.kotlin:kotlin-reflect:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-common:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41 -org.jetbrains.kotlin:kotlin-stdlib:1.3.41 +org.jetbrains.kotlin:kotlin-reflect:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61 +org.jetbrains.kotlin:kotlin-stdlib:1.3.61 org.jetbrains:annotations:13.0 diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt index f337ea5..28ee39f 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt @@ -1,97 +1,51 @@ package org.nixos.gradle2nix -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.io.TempDir -import java.io.File -import kotlin.test.assertEquals +import dev.minutest.Tests +import dev.minutest.junit.JUnit5Minutests +import dev.minutest.rootContext +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 +import strikt.assertions.all +import strikt.assertions.containsExactly +import strikt.assertions.get +import strikt.assertions.hasSize +import strikt.assertions.isEqualTo +import strikt.assertions.map +import strikt.assertions.startsWith +class BasicTest : JUnit5Minutests { + @Tests + fun tests() = rootContext("basic tests") { + withFixture("basic/basic-java-project") { + test("builds basic java project") { + expectThat(build()) { + get("gradle version") { gradle.version }.isEqualTo(System.getProperty("compat.gradle.version")) -class BasicTest { - @TempDir lateinit var projectDir: File + get("root project dependencies") { rootProject.projectDependencies }.and { + ids.containsExactly( + "com.squareup.moshi:moshi:1.8.0@jar", + "com.squareup.moshi:moshi:1.8.0@pom", + "com.squareup.moshi:moshi-parent:1.8.0@pom", + "com.squareup.okio:okio:2.2.2@jar", + "com.squareup.okio:okio:2.2.2@pom", + "org.jetbrains:annotations:13.0@jar", + "org.jetbrains:annotations:13.0@pom", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@pom", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@pom", + "org.sonatype.oss:oss-parent:7@pom" + ) - @Test - fun `builds basic project with kotlin dsl`() { - val model = projectDir.buildKotlin(""" - plugins { - java + map { it.urls }.all { + hasSize(2) + get(0).startsWith(BINTRAY_JCENTER_URL) + get(1).startsWith(MAVEN_CENTRAL_URL) + } + } + } } - - repositories { - jcenter() - } - - dependencies { - implementation("com.squareup.okio:okio:2.2.2") - implementation("com.squareup.moshi:moshi:1.8.0") - } - """.trimIndent()) - - assertEquals(model.gradle.version, System.getProperty("compat.gradle.version")) - - with(model.rootProject.projectDependencies) { - with(repositories) { - assertEquals(1, maven.size) - assertEquals(maven[0].urls[0], "https://jcenter.bintray.com/") - } - - assertArtifacts( - pom("com.squareup.moshi:moshi-parent:1.8.0"), - jar("com.squareup.moshi:moshi:1.8.0"), - pom("com.squareup.moshi:moshi:1.8.0"), - jar("com.squareup.okio:okio:2.2.2"), - pom("com.squareup.okio:okio:2.2.2"), - jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - jar("org.jetbrains:annotations:13.0"), - pom("org.jetbrains:annotations:13.0"), - pom("org.sonatype.oss:oss-parent:7"), - actual = artifacts - ) - } - } - - @Test - fun `builds basic project with groovy dsl`() { - val model = projectDir.buildGroovy(""" - plugins { - id("java") - } - - repositories { - jcenter() - } - - dependencies { - implementation 'com.squareup.okio:okio:2.2.2' - implementation 'com.squareup.moshi:moshi:1.8.0' - } - """.trimIndent()) - - assertEquals(model.gradle.version, System.getProperty("compat.gradle.version")) - - with(model.rootProject.projectDependencies) { - with(repositories) { - assertEquals(1, maven.size) - assertEquals(maven[0].urls[0], "https://jcenter.bintray.com/") - } - - assertArtifacts( - pom("com.squareup.moshi:moshi-parent:1.8.0"), - jar("com.squareup.moshi:moshi:1.8.0"), - pom("com.squareup.moshi:moshi:1.8.0"), - jar("com.squareup.okio:okio:2.2.2"), - pom("com.squareup.okio:okio:2.2.2"), - jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - jar("org.jetbrains:annotations:13.0"), - pom("org.jetbrains:annotations:13.0"), - pom("org.sonatype.oss:oss-parent:7"), - actual = artifacts - ) } } } diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt new file mode 100644 index 0000000..1d572f0 --- /dev/null +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/DependencyTest.kt @@ -0,0 +1,69 @@ +package org.nixos.gradle2nix + +import dev.minutest.Tests +import dev.minutest.junit.JUnit5Minutests +import dev.minutest.rootContext +import strikt.api.expectThat +import strikt.assertions.all +import strikt.assertions.contains +import strikt.assertions.containsExactly +import strikt.assertions.filter +import strikt.assertions.isEqualTo +import strikt.assertions.isNotEqualTo +import strikt.assertions.isNotNull +import strikt.assertions.single +import strikt.assertions.startsWith + +class DependencyTest : JUnit5Minutests { + @Tests + fun tests() = rootContext("dependency tests") { + + withFixture("dependency/classifier") { + test("resolves dependency with classifier") { + expectThat(build()) { + get("root project dependencies") { rootProject.projectDependencies }.ids.containsExactly( + "com.badlogicgames.gdx:gdx-parent:1.9.9@pom", + "com.badlogicgames.gdx:gdx-platform:1.9.9:natives-desktop@jar", + "com.badlogicgames.gdx:gdx-platform:1.9.9@pom", + "org.sonatype.oss:oss-parent:5@pom" + ) + } + } + } + + withFixture("dependency/dynamic-snapshot") { + test("resolves snapshot dependency with dynamic version") { + expectThat(build()) { + get("root project dependencies") { rootProject.projectDependencies } + .filter { it.id.name == "packr" } + .all { + get("id.version") { id.version }.isEqualTo("-SNAPSHOT") + get("timestamp") { timestamp }.isNotNull() + get("build") { build }.isNotNull() + } + } + } + } + + withFixture("dependency/snapshot") { + test("resolves snapshot dependency") { + expectThat(build()) { + get("root project dependencies") { rootProject.projectDependencies } + .filter { it.id.name == "okio" } + .and { + ids.containsExactly( + "com.squareup.okio:okio:2.5.0-SNAPSHOT@jar", + "com.squareup.okio:okio:2.5.0-SNAPSHOT@module", + "com.squareup.okio:okio:2.5.0-SNAPSHOT@pom" + ) + all { + get("timestamp") { timestamp }.isNotNull() + get("build") { build }.isNotNull() + get("urls") { urls }.single().startsWith(SONATYPE_OSS_URL) + } + } + } + } + } + } +} \ No newline at end of file diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt new file mode 100644 index 0000000..345dc05 --- /dev/null +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/IvyTest.kt @@ -0,0 +1,33 @@ +package org.nixos.gradle2nix + +import dev.minutest.Tests +import dev.minutest.junit.JUnit5Minutests +import dev.minutest.rootContext +import strikt.api.expectThat +import strikt.assertions.all +import strikt.assertions.containsExactly +import strikt.assertions.map +import strikt.assertions.single +import strikt.assertions.startsWith + +class IvyTest : JUnit5Minutests { + @Tests + fun tests() = rootContext("ivy tests") { + withFixture("ivy/basic") { + test("resolves ivy dependencies") { + expectThat(build()) { + get("root project dependencies") { rootProject.projectDependencies }.and { + ids.containsExactly( + "org.opendof.core-java:dof-cipher-sms4:1.0@jar", + "org.opendof.core-java:dof-oal:7.0.2@jar" + ) + + map { it.urls }.all { + single().startsWith("https://asset.opendof.org/artifact") + } + } + } + } + } + } +} \ No newline at end of file diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt new file mode 100644 index 0000000..73339a0 --- /dev/null +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/PluginTest.kt @@ -0,0 +1,21 @@ +package org.nixos.gradle2nix + +import dev.minutest.Tests +import dev.minutest.junit.JUnit5Minutests +import dev.minutest.rootContext +import strikt.api.expectThat +import strikt.assertions.contains + +class PluginTest : JUnit5Minutests { + @Tests + fun tests() = rootContext("plugin tests") { + withFixture("plugin/resolves-from-default-repo") { + test("resolves plugin from default repo") { + expectThat(build()) { + get("plugin dependencies") { pluginDependencies }.ids + .contains("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.3.50@pom") + } + } + } + } +} \ No newline at end of file diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt index af692d1..39b55d3 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt @@ -1,242 +1,149 @@ package org.nixos.gradle2nix -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.io.TempDir -import java.io.File -import kotlin.test.assertEquals +import dev.minutest.Tests +import dev.minutest.junit.JUnit5Minutests +import dev.minutest.rootContext +import org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.BINTRAY_JCENTER_URL +import strikt.api.expectThat +import strikt.assertions.all +import strikt.assertions.containsExactly +import strikt.assertions.containsExactlyInAnyOrder +import strikt.assertions.get +import strikt.assertions.hasSize +import strikt.assertions.isEqualTo +import strikt.assertions.map +import strikt.assertions.single +import strikt.assertions.startsWith -class SubprojectsTest { - @TempDir - lateinit var root: File +class SubprojectsTest : JUnit5Minutests { + @Tests + fun tests() = rootContext("subproject tests") { + withFixture("subprojects/multi-module") { + test("builds multi-module project") { + expectThat(build().rootProject) { + get("root project dependencies") { projectDependencies }.and { + ids.containsExactly( + "junit:junit:4.12@jar", + "junit:junit:4.12@pom", + "org.hamcrest:hamcrest-core:1.3@jar", + "org.hamcrest:hamcrest-core:1.3@pom", + "org.hamcrest:hamcrest-parent:1.3@pom" + ) + all { + get("urls") { urls }.single().startsWith(BINTRAY_JCENTER_URL) + } + } - @Test - fun `builds multi-module project with kotlin dsl`() { - root.resolve("child-a").also { it.mkdirs() } - .resolve("build.gradle.kts").writeText(""" - plugins { - java - } + get("children") { children }.and { + hasSize(2) - dependencies { - implementation("com.squareup.okio:okio:2.2.2") - } - """.trimIndent()) + get(0).and { + get("name") { name }.isEqualTo("child-a") + get("projectDir") { projectDir }.isEqualTo("child-a") - root.resolve("child-b").also { it.mkdirs() } - .resolve("build.gradle.kts").writeText(""" - plugins { - java - } + get("child-a project dependencies") { projectDependencies }.and { + ids.containsExactly( + "com.squareup.okio:okio:2.2.2@jar", + "com.squareup.okio:okio:2.2.2@pom", + "org.jetbrains:annotations:13.0@jar", + "org.jetbrains:annotations:13.0@pom", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@pom", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@pom" + ) - dependencies { - implementation(project(":child-a")) - implementation("com.squareup.moshi:moshi:1.8.0") - } - """.trimIndent()) + all { + get("urls") { urls }.single().startsWith(BINTRAY_JCENTER_URL) + } + } + } - root.resolve("settings.gradle.kts").writeText(""" - include(":child-a", ":child-b") - """.trimIndent()) + get(1).and { + get("name") { name }.isEqualTo("child-b") + get("projectDir") { projectDir }.isEqualTo("child-b") - val model = root.buildKotlin(""" - plugins { - java - } + get("child-b project dependencies") { projectDependencies }.and { + ids.containsExactly( + "com.squareup.moshi:moshi:1.8.0@jar", + "com.squareup.moshi:moshi:1.8.0@pom", + "com.squareup.moshi:moshi-parent:1.8.0@pom", + "com.squareup.okio:okio:1.16.0@jar", // compileClasspath + "com.squareup.okio:okio:1.16.0@pom", // compileClasspath + "com.squareup.okio:okio:2.2.2@jar", // runtimeClasspath + "com.squareup.okio:okio:2.2.2@pom", // runtimeClasspath + "com.squareup.okio:okio-parent:1.16.0@pom", // compileClasspath + "org.jetbrains:annotations:13.0@jar", + "org.jetbrains:annotations:13.0@pom", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@pom", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@pom", + "org.sonatype.oss:oss-parent:7@pom" + ) - allprojects { - repositories { - jcenter() + all { + get("urls") { urls }.single().startsWith(BINTRAY_JCENTER_URL) + } + } + } + } } } - dependencies { - testImplementation("junit:junit:4.12") - } - """.trimIndent()) + test("builds single subproject") { + expectThat(build(subprojects = listOf(":child-a")).rootProject) { + get("root project dependencies") { projectDependencies }.and { + ids.containsExactly( + "junit:junit:4.12@jar", + "junit:junit:4.12@pom", + "org.hamcrest:hamcrest-core:1.3@jar", + "org.hamcrest:hamcrest-core:1.3@pom", + "org.hamcrest:hamcrest-parent:1.3@pom" + ) - with(model.rootProject) { - with(projectDependencies) { - assertEquals(listOf(DefaultMaven(urls = listOf("https://jcenter.bintray.com/"))), - repositories.maven) + all { + get("urls") { urls }.single().startsWith(BINTRAY_JCENTER_URL) + } + } - assertArtifacts( - jar("junit:junit:4.12"), - pom("junit:junit:4.12"), - jar("org.hamcrest:hamcrest-core:1.3"), - pom("org.hamcrest:hamcrest-core:1.3"), - pom("org.hamcrest:hamcrest-parent:1.3"), - actual = artifacts) - } + get("children") { children }.single().and { + get("name") { name }.isEqualTo("child-a") + get("projectDir") { projectDir }.isEqualTo("child-a") - assertEquals(2, children.size) + get("child-a project dependencies") { projectDependencies }.and { + ids.containsExactly( + "com.squareup.okio:okio:2.2.2@jar", + "com.squareup.okio:okio:2.2.2@pom", + "org.jetbrains:annotations:13.0@jar", + "org.jetbrains:annotations:13.0@pom", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib:1.2.60@pom", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@jar", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60@pom" + ) - with(children[0]) { - assertEquals("child-a", name) - assertEquals(root.resolve("child-a").toRelativeString(root), projectDir) - - with(projectDependencies) { - assertEquals( - listOf(DefaultMaven(urls = listOf("https://jcenter.bintray.com/"))), - repositories.maven - ) - - assertArtifacts( - jar("com.squareup.okio:okio:2.2.2"), - pom("com.squareup.okio:okio:2.2.2"), - jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - jar("org.jetbrains:annotations:13.0"), - pom("org.jetbrains:annotations:13.0"), - actual = artifacts - ) - } - } - - with(children[1]) { - assertEquals("child-b", name) - assertEquals(root.resolve("child-b").toRelativeString(root), projectDir) - - with(projectDependencies) { - assertEquals( - listOf(DefaultMaven(urls = listOf("https://jcenter.bintray.com/"))), - repositories.maven - ) - - assertArtifacts( - pom("com.squareup.moshi:moshi-parent:1.8.0"), - jar("com.squareup.moshi:moshi:1.8.0"), - pom("com.squareup.moshi:moshi:1.8.0"), - pom("com.squareup.okio:okio-parent:1.16.0"), - jar("com.squareup.okio:okio:1.16.0"), - pom("com.squareup.okio:okio:1.16.0"), - jar("com.squareup.okio:okio:2.2.2"), - pom("com.squareup.okio:okio:2.2.2"), - jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - jar("org.jetbrains:annotations:13.0"), - pom("org.jetbrains:annotations:13.0"), - pom("org.sonatype.oss:oss-parent:7"), - actual = artifacts - ) + all { + get("urls") { urls }.single().startsWith(BINTRAY_JCENTER_URL) + } + } + } } } } - } - @Test - fun `builds multi-module project with groovy dsl`() { - root.resolve("child-a").also { it.mkdirs() } - .resolve("build.gradle").writeText(""" - plugins { - id 'java' + withFixture("subprojects/dependent-subprojects") { + test("includes dependent subprojects") { + expectThat(build(subprojects = listOf(":child-a"))) { + get("children") { rootProject.children } + .map { it.path } + .containsExactlyInAnyOrder(":child-a", ":child-b", ":child-c") } - dependencies { - implementation 'com.squareup.okio:okio:2.2.2' - } - """.trimIndent()) - - root.resolve("child-b").also { it.mkdirs() } - .resolve("build.gradle").writeText(""" - plugins { - id 'java' - } - - dependencies { - implementation project(':child-a') - implementation 'com.squareup.moshi:moshi:1.8.0' - } - """.trimIndent()) - - root.resolve("settings.gradle").writeText(""" - include ':child-a', ':child-b' - """.trimIndent()) - - val model = root.buildGroovy(""" - plugins { - id 'java' - } - - allprojects { - repositories { - jcenter() - } - } - - dependencies { - testImplementation 'junit:junit:4.12' - } - """.trimIndent()) - - with(model.rootProject) { - with(projectDependencies) { - assertEquals(listOf(DefaultMaven(urls = listOf("https://jcenter.bintray.com/"))), - repositories.maven) - - assertArtifacts( - jar("junit:junit:4.12"), - pom("junit:junit:4.12"), - jar("org.hamcrest:hamcrest-core:1.3"), - pom("org.hamcrest:hamcrest-core:1.3"), - pom("org.hamcrest:hamcrest-parent:1.3"), - actual = artifacts) - } - - assertEquals(2, children.size) - - with(children[0]) { - assertEquals("child-a", name) - assertEquals(root.resolve("child-a").toRelativeString(root), projectDir) - - with(projectDependencies) { - assertEquals( - listOf(DefaultMaven(urls = listOf("https://jcenter.bintray.com/"))), - repositories.maven - ) - - assertArtifacts( - jar("com.squareup.okio:okio:2.2.2"), - pom("com.squareup.okio:okio:2.2.2"), - jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - jar("org.jetbrains:annotations:13.0"), - pom("org.jetbrains:annotations:13.0"), - actual = artifacts - ) - } - } - - with(children[1]) { - assertEquals("child-b", name) - assertEquals(root.resolve("child-b").toRelativeString(root), projectDir) - - with(projectDependencies) { - assertEquals(listOf(DefaultMaven(urls = listOf("https://jcenter.bintray.com/"))), - repositories.maven) - - assertArtifacts( - pom("com.squareup.moshi:moshi-parent:1.8.0"), - jar("com.squareup.moshi:moshi:1.8.0"), - pom("com.squareup.moshi:moshi:1.8.0"), - pom("com.squareup.okio:okio-parent:1.16.0"), - jar("com.squareup.okio:okio:1.16.0"), - pom("com.squareup.okio:okio:1.16.0"), - jar("com.squareup.okio:okio:2.2.2"), - pom("com.squareup.okio:okio:2.2.2"), - jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), - jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), - jar("org.jetbrains:annotations:13.0"), - pom("org.jetbrains:annotations:13.0"), - pom("org.sonatype.oss:oss-parent:7"), - actual = artifacts) + expectThat(build(subprojects = listOf(":child-b"))) { + get("children") { rootProject.children } + .map { it.path } + .containsExactlyInAnyOrder(":child-b", ":child-c") } } } diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt index 8152ef4..2063092 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/TestUtil.kt @@ -1,105 +1,132 @@ package org.nixos.gradle2nix -import org.gradle.api.internal.artifacts.dsl.ParsedModuleStringNotation +import com.squareup.moshi.Moshi +import dev.minutest.ContextBuilder +import dev.minutest.MinutestFixture +import dev.minutest.TestContextBuilder +import okio.buffer +import okio.source import org.gradle.internal.classpath.DefaultClassPath +import org.gradle.testkit.runner.GradleRunner import org.gradle.testkit.runner.internal.PluginUnderTestMetadataReading -import org.gradle.tooling.GradleConnector +import org.gradle.util.GradleVersion +import org.junit.jupiter.api.Assumptions.assumeTrue +import strikt.api.Assertion +import strikt.assertions.map import java.io.File -import kotlin.test.assertTrue +import java.io.StringWriter +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.Paths +import kotlin.streams.toList + +const val SONATYPE_OSS_URL = "https://oss.sonatype.org/content/repositories/snapshots/" + +private val moshi = Moshi.Builder().build() + +private val gradleVersion = GradleVersion.version(System.getProperty("compat.gradle.version")) + +val GRADLE_4_5 = GradleVersion.version("4.5") private fun File.initscript() = resolve("init.gradle").also { it.writer().use { out -> val classpath = DefaultClassPath.of(PluginUnderTestMetadataReading.readImplementationClasspath()) - .asFiles.joinToString(prefix = "'", postfix = "'") + .asFiles.joinToString { n -> "'$n'" } out.appendln(""" - initscript { - dependencies { - classpath files($classpath) - } - } + initscript { + dependencies { + classpath files($classpath) + } + } - apply plugin: org.nixos.gradle2nix.Gradle2NixPlugin - """.trimIndent()) + apply plugin: org.nixos.gradle2nix.Gradle2NixPlugin + """.trimIndent()) } } -fun File.buildGroovy(script: String): DefaultBuild { - resolve("build.gradle").writeText(script) - return build() -} - -fun File.buildKotlin(script: String): DefaultBuild { +fun File.buildKotlin( + script: String, + configurations: List = emptyList(), + subprojects: List = emptyList() +): DefaultBuild { + assumeTrue(gradleVersion >= GRADLE_4_5) resolve("build.gradle.kts").writeText(script) - return build() + return build(configurations, subprojects) } -private fun File.build(): DefaultBuild { - return GradleConnector.newConnector() - .useGradleVersion(System.getProperty("compat.gradle.version")) - .forProjectDirectory(this) - .connect() - .model(Build::class.java) +private fun File.build( + configurations: List, + subprojects: List +): DefaultBuild { + val log = StringWriter() + + val result = GradleRunner.create() + .withGradleVersion(gradleVersion.version) + .withProjectDir(this) + .forwardStdOutput(log) + .forwardStdError(log) .withArguments( + "nixModel", "--init-script=${initscript()}", - "--stacktrace" + "--stacktrace", + "-Porg.nixos.gradle2nix.configurations=${configurations.joinToString(",")}", + "-Porg.nixos.gradle2nix.subprojects=${subprojects.joinToString(",")}" ) - .setStandardOutput(System.out) - .setStandardError(System.out) - .get() - .let { DefaultBuild(it) } -} + .runCatching { build() } -fun jar(notation: String, sha256: String = ""): DefaultArtifact = - artifact(notation, sha256, "jar") - -fun pom(notation: String, sha256: String = ""): DefaultArtifact = - artifact(notation, sha256, "pom") - -private fun artifact(notation: String, sha256: String, type: String): DefaultArtifact { - val parsed = ParsedModuleStringNotation(notation, type) - return DefaultArtifact( - groupId = parsed.group ?: "", - artifactId = parsed.name ?: "", - version = parsed.version ?: "", - classifier = parsed.classifier ?: "", - extension = type, - sha256 = sha256 - ) -} - -private fun artifactEquals(expected: DefaultArtifact, actual: DefaultArtifact): Boolean { - return with (expected) { - groupId == actual.groupId && - artifactId == actual.artifactId && - version == actual.version && - classifier == actual.classifier && - extension == actual.extension && - (sha256.takeIf { it.isNotEmpty() }?.equals(actual.sha256) ?: true) + result.onFailure { error -> + System.err.print(log) + throw error } -} - -fun assertArtifacts(vararg expected: DefaultArtifact, actual: List) { - val mismatches = mutableListOf() - val remaining = mutableListOf().also { it.addAll(actual) } - expected.forEachIndexed { i: Int, exp: DefaultArtifact -> - val act = actual[i] - if (!artifactEquals(exp, act)) { - mismatches += Mismatch(i, exp, act) - } else { - remaining -= act + return resolve("build/nix/model.json").run { + println(readText()) + source().buffer().use { src -> + checkNotNull(moshi.adapter(DefaultBuild::class.java).fromJson(src)) } } - assertTrue(mismatches.isEmpty() && remaining.isEmpty(), """ - Artifact mismatches: - ${mismatches.joinToString("\n ", prefix = " ")} - - Missing artifacts: - ${remaining.joinToString("\n ", prefix = " ")} - """) } -data class Mismatch( - val index: Int, - val expected: DefaultArtifact, - val actual: DefaultArtifact -) +val > Assertion.Builder.ids: Assertion.Builder> + get() = map { it.id.toString() } + +@MinutestFixture +class Fixture(val testRoots: List) + +@MinutestFixture +class ProjectFixture(val testRoot: Path) { + fun build( + configurations: List = emptyList(), + subprojects: List = emptyList() + ) = testRoot.toFile().build(configurations, subprojects) +} + +fun ContextBuilder.withFixture( + name: String, + block: TestContextBuilder.() -> Unit +) = context(name) { + 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)) { + "$name: Test fixture not found: $fixtureRoot}" + } + src.toFile().copyRecursively(dest.toFile()) + val testRoots = Files.list(dest).filter { Files.isDirectory(it) }.toList() + + fixture { + Fixture(testRoots) + } + + afterAll { + dest.toFile().deleteRecursively() + } + + testRoots.forEach { testRoot -> + derivedContext(testRoot.fileName.toString()) { + deriveFixture { ProjectFixture(testRoot) } + block() + } + } +} diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt index 08689d2..2d8393f 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/WrapperTest.kt @@ -1,22 +1,25 @@ package org.nixos.gradle2nix -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.io.TempDir +import dev.minutest.Tests +import dev.minutest.junit.JUnit5Minutests +import dev.minutest.rootContext +import strikt.api.expectThat +import strikt.assertions.isEqualTo import java.io.File -import kotlin.test.assertEquals -class WrapperTest { - @TempDir - lateinit var root: File +class WrapperTest : JUnit5Minutests { + @Tests + fun tests() = rootContext("wrapper tests") { + fixture { createTempDir("gradle2nix") } - @Test - fun `resolves gradle version from wrapper configuration`() { - val model = root.buildKotlin(""" - tasks.wrapper { - gradleVersion = "5.5.1" + test("resolves gradle wrapper version") { + expectThat(buildKotlin(""" + tasks.withType { + gradleVersion = "5.5.1" + } + """.trimIndent())) { + get("gradle version") { gradle.version }.isEqualTo("5.5.1") } - """.trimIndent()) - - assertEquals(model.gradle.version, "5.5.1") + } } } \ No newline at end of file diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt new file mode 100644 index 0000000..fa08598 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt @@ -0,0 +1,255 @@ +package org.nixos.gradle2nix + +import org.apache.ivy.Ivy +import org.apache.ivy.core.settings.IvySettings +import org.apache.ivy.plugins.parser.m2.PomReader +import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser +import org.apache.ivy.plugins.repository.url.URLResource +import org.apache.ivy.plugins.resolver.ChainResolver +import org.gradle.api.artifacts.Configuration +import org.gradle.api.artifacts.ModuleIdentifier +import org.gradle.api.artifacts.ResolvedArtifact +import org.gradle.api.artifacts.component.ComponentArtifactIdentifier +import org.gradle.api.artifacts.component.ModuleComponentIdentifier +import org.gradle.api.artifacts.dsl.DependencyHandler +import org.gradle.api.artifacts.dsl.RepositoryHandler +import org.gradle.api.artifacts.query.ArtifactResolutionQuery +import org.gradle.api.artifacts.result.ResolvedArtifactResult +import org.gradle.api.internal.artifacts.repositories.ResolutionAwareRepository +import org.gradle.ivy.IvyDescriptorArtifact +import org.gradle.ivy.IvyModule +import org.gradle.kotlin.dsl.getArtifacts +import org.gradle.kotlin.dsl.withArtifacts +import org.gradle.maven.MavenModule +import org.gradle.maven.MavenPomArtifact +import org.gradle.util.GradleVersion +import java.io.File + +internal class ConfigurationResolverFactory(repositories: RepositoryHandler) { + private val ivySettings = IvySettings().apply { + defaultInit() + setDefaultRepositoryCacheBasedir(createTempDir("gradle2nix-cache").apply(File::deleteOnExit).absolutePath) + setDictatorResolver(ChainResolver().also { chain -> + chain.settings = this@apply + for (resolver in resolvers) chain.add(resolver) + }) + } + + private val resolvers = repositories.filterIsInstance() + .mapNotNull { it.repositoryResolver(ivySettings) } + + fun create(dependencies: DependencyHandler): ConfigurationResolver = + ConfigurationResolver(ivySettings, resolvers, dependencies) +} + +internal class ConfigurationResolver( + ivySettings: IvySettings, + private val resolvers: List, + private val dependencies: DependencyHandler +) { + private val ivy = Ivy.newInstance(ivySettings) + + fun resolve(configuration: Configuration): List { + val resolved = configuration.resolvedConfiguration + + val topLevelMetadata = resolved.firstLevelModuleDependencies + .flatMap { resolveMetadata(it.moduleGroup, it.moduleName, it.moduleVersion) } + + val allArtifacts = resolved.resolvedArtifacts + .filter { it.id.componentIdentifier is ModuleComponentIdentifier } + .flatMap(::resolve) + + return (topLevelMetadata + allArtifacts).filter { it.urls.isNotEmpty() } + } + + private fun resolve(resolvedArtifact: ResolvedArtifact): List { + val componentId = resolvedArtifact.id.componentIdentifier as ModuleComponentIdentifier + + val artifactId = DefaultArtifactIdentifier( + group = componentId.group, + name = componentId.module, + version = componentId.version, + type = resolvedArtifact.type, + extension = resolvedArtifact.extension, + classifier = resolvedArtifact.classifier + ) + + val sha256 = resolvedArtifact.file.sha256() + val artifacts = resolvers.mapNotNull { it.resolve(artifactId, sha256) }.merge() + return artifacts + componentId.run { resolveMetadata(group, module, version) } + } + + private fun resolveMetadata( + group: String, + name: String, + version: String + ): List { + return resolvePoms(group, name, version) + + resolveDescriptors(group, name, version) + + resolveGradleMetadata(group, name, version) + } + + private fun resolvePoms( + group: String, + name: String, + version: String + ): List { + return dependencies.createArtifactResolutionQuery() + .forModuleCompat(group, name, version) + .withArtifacts(MavenModule::class, MavenPomArtifact::class) + .execute() + .resolvedComponents + .flatMap { it.getArtifacts(MavenPomArtifact::class) } + .filterIsInstance() + .flatMap { it.withParentPoms() } + .flatMap { resolvedPom -> + val componentId = resolvedPom.id.componentIdentifier as ModuleComponentIdentifier + val artifactId = DefaultArtifactIdentifier( + group = componentId.group, + name = componentId.module, + version = componentId.version, + type = "pom" + ) + val sha256 = resolvedPom.file.sha256() + resolvers.mapNotNull { it.resolve(artifactId, sha256) }.merge() + } + } + + private fun resolveDescriptors( + group: String, + name: String, + version: String + ): List { + return dependencies.createArtifactResolutionQuery() + .forModuleCompat(group, name, version) + .withArtifacts(IvyModule::class, IvyDescriptorArtifact::class) + .execute() + .resolvedComponents + .flatMap { it.getArtifacts(IvyDescriptorArtifact::class) } + .filterIsInstance() + .flatMap { it.withParentDescriptors() } + .flatMap { resolvedDesc -> + val componentId = resolvedDesc.id.componentIdentifier as ModuleComponentIdentifier + val artifactId = DefaultArtifactIdentifier( + group = componentId.group, + name = componentId.module, + version = componentId.version, + type = "ivy", + extension = "xml" + ) + val sha256 = resolvedDesc.file.sha256() + resolvers.mapNotNull { it.resolve(artifactId, sha256) }.merge() + } + } + + private fun resolveGradleMetadata( + group: String, + name: String, + version: String + ): List { + val artifactId = DefaultArtifactIdentifier( + group = group, + name = name, + version = version, + type = "module" + ) + return resolvers.mapNotNull { it.resolve(artifactId) }.merge() + } + + private fun ResolvedArtifactResult.parentPom(): ResolvedArtifactResult? { + val resource = URLResource(file.toURI().toURL()) + val reader = PomReader(resource.url, resource) + + return if (reader.hasParent()) { + dependencies.createArtifactResolutionQuery() + .forModuleCompat(reader.parentGroupId, reader.parentArtifactId, reader.parentVersion) + .withArtifacts(MavenModule::class, MavenPomArtifact::class) + .execute() + .resolvedComponents + .flatMap { it.getArtifacts(MavenPomArtifact::class) } + .filterIsInstance() + .firstOrNull() + } else { + null + } + } + + private fun ResolvedArtifactResult.withParentPoms(): List = + generateSequence(this) { it.parentPom() }.toList() + + private fun ResolvedArtifactResult.parentDescriptors(seen: Set): List { + val url = file.toURI().toURL() + val parser = XmlModuleDescriptorParser.getInstance() + + val descriptor = parser.parseDescriptor(ivy.settings, url, false) + + return descriptor.inheritedDescriptors.mapNotNull { desc -> + dependencies.createArtifactResolutionQuery() + .forModuleCompat( + desc.parentRevisionId.organisation, + desc.parentRevisionId.name, + desc.parentRevisionId.revision + ) + .withArtifacts(IvyModule::class, IvyDescriptorArtifact::class) + .execute() + .resolvedComponents + .flatMap { it.getArtifacts(IvyDescriptorArtifact::class) } + .filterIsInstance() + .firstOrNull() + }.filter { it.id !in seen } + } + + private fun ResolvedArtifactResult.withParentDescriptors(): List { + val seen = mutableSetOf() + return generateSequence(listOf(this)) { descs -> + val parents = descs.flatMap { it.parentDescriptors(seen) } + seen.addAll(parents.map(ResolvedArtifactResult::id)) + parents.takeUnless { it.isEmpty() } + }.flatten().distinct().toList() + } +} + +private fun ArtifactResolutionQuery.forModuleCompat( + group: String, + name: String, + version: String +): ArtifactResolutionQuery { + return if (GradleVersion.current() >= GradleVersion.version("4.5")) { + forModule(group, name, version) + } else { + forComponents(ModuleComponentId(group, name, version)) + } +} + +private data class ModuleComponentId( + private val moduleId: ModuleId, + private val version: String +) : ModuleComponentIdentifier { + + constructor( + group: String, + name: String, + version: String + ) : this(ModuleId(group, name), version) + + override fun getGroup(): String = moduleId.group + override fun getModule(): String = moduleId.name + override fun getVersion(): String = version + override fun getModuleIdentifier(): ModuleIdentifier = moduleId + override fun getDisplayName(): String = + arrayOf(group, module, version).joinToString(":") +} + +private data class ModuleId( + private val group: String, + private val name: String +) : ModuleIdentifier { + override fun getGroup(): String = group + override fun getName(): String = name +} + +private fun List.merge(): List { + return groupingBy { it.id } + .reduce { _, dest, next -> dest.copy(urls = dest.urls + next.urls) } + .values.toList() +} \ No newline at end of file diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt deleted file mode 100644 index eb0ba5b..0000000 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt +++ /dev/null @@ -1,169 +0,0 @@ -package org.nixos.gradle2nix - -import org.apache.maven.model.Parent -import org.apache.maven.model.Repository -import org.apache.maven.model.building.DefaultModelBuilderFactory -import org.apache.maven.model.building.DefaultModelBuildingRequest -import org.apache.maven.model.building.ModelBuildingRequest -import org.apache.maven.model.building.ModelSource2 -import org.apache.maven.model.resolution.ModelResolver -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.ConfigurationContainer -import org.gradle.api.artifacts.Dependency -import org.gradle.api.artifacts.component.ModuleComponentIdentifier -import org.gradle.api.artifacts.component.ProjectComponentIdentifier -import org.gradle.api.artifacts.dsl.DependencyHandler -import org.gradle.api.artifacts.result.ResolvedArtifactResult -import org.gradle.api.logging.Logger -import org.gradle.api.logging.Logging -import org.gradle.maven.MavenModule -import org.gradle.maven.MavenPomArtifact -import java.io.File -import java.io.InputStream -import java.net.URI -import java.security.MessageDigest - -internal class DependencyResolver( - private val configurations: ConfigurationContainer, - private val dependencies: DependencyHandler, - private val logger: Logger = Logging.getLogger(DependencyResolver::class.simpleName) -) { - private val mavenPomResolver = MavenPomResolver(configurations, dependencies) - - fun resolveDependencies(configuration: Configuration): Set { - if (!configuration.isCanBeResolved) { - logger.warn("Cannot resolve configuration ${configuration.name}; ignoring.") - return emptySet() - } - return configuration.resolvedConfiguration.resolvedArtifacts - .filterNot { it.id.componentIdentifier is ProjectComponentIdentifier } - .mapTo(sortedSetOf()) { - with (it) { - DefaultArtifact( - groupId = moduleVersion.id.group, - artifactId = moduleVersion.id.name, - version = moduleVersion.id.version, - classifier = classifier ?: "", - extension = extension, - sha256 = sha256(file) - ) - } - } - } - - fun resolveDependencies( - dependencies: Collection, - includeTransitive: Boolean = false - ): Set { - val configuration = configurations.detachedConfiguration(*(dependencies.toTypedArray())) - configuration.isTransitive = includeTransitive - return resolveDependencies(configuration) - } - - fun resolvePoms(configuration: Configuration): Set { - return dependencies.createArtifactResolutionQuery() - .forComponents(configuration.incoming.resolutionResult.allComponents.map { it.id }) - .withArtifacts(MavenModule::class.java, MavenPomArtifact::class.java) - .execute() - .resolvedComponents.asSequence() - .flatMap { component -> - val id = component.id - if (id !is ModuleComponentIdentifier) { - emptySequence() - } else { - component.getArtifacts(MavenPomArtifact::class.java).asSequence() - .filterIsInstance() - .map { id to it } - } - } - .flatMapTo(sortedSetOf()) { (id, artifact) -> - sequenceOf(DefaultArtifact( - groupId = id.group, - artifactId = id.module, - version = id.version, - classifier = "", - extension = artifact.file.extension, - sha256 = sha256(artifact.file) - )) + mavenPomResolver.resolve(artifact.file).asSequence() - } - } - - fun resolvePoms( - dependencies: Collection, - includeTransitive: Boolean = false - ): Set { - val configuration = configurations.detachedConfiguration(*(dependencies.toTypedArray())) - configuration.isTransitive = includeTransitive - return resolvePoms(configuration) - } -} - -private class MavenPomResolver( - private val configurations: ConfigurationContainer, - private val dependencies: DependencyHandler -) : ModelResolver { - private val modelBuilder = DefaultModelBuilderFactory().newInstance() - private val resolvedDependencies = mutableSetOf() - - @Synchronized - fun resolve(pom: File): Set { - resolvedDependencies.clear() - modelBuilder.build( - DefaultModelBuildingRequest() - .setModelResolver(this) - .setPomFile(pom) - .setSystemProperties(System.getProperties()) - .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL) - ).effectiveModel - return resolvedDependencies.toSet() - } - - override fun newCopy() = this - - override fun resolveModel( - groupId: String, - artifactId: String, - version: String - ): ModelSource2 { - val file = configurations - .detachedConfiguration(dependencies.create("$groupId:$artifactId:$version@pom")) - .singleFile - resolvedDependencies.add(DefaultArtifact( - groupId = groupId, - artifactId = artifactId, - version = version, - classifier = "", - extension = file.extension, - sha256 = sha256(file) - )) - - return object : ModelSource2 { - override fun getLocation(): String = file.absolutePath - override fun getLocationURI(): URI = file.absoluteFile.toURI() - override fun getRelatedSource(relPath: String?): ModelSource2? = null - override fun getInputStream(): InputStream = file.inputStream() - } - } - - override fun resolveModel(parent: Parent): ModelSource2 = - resolveModel(parent.groupId, parent.artifactId, parent.version) - - override fun resolveModel(dependency: org.apache.maven.model.Dependency): ModelSource2 = - resolveModel(dependency.groupId, dependency.artifactId, dependency.version) - - override fun addRepository(repository: Repository) {} - - override fun addRepository(repository: Repository, replace: Boolean) {} -} - -private const val HEX = "0123456789abcdef" - -private fun sha256(file: File): String = buildString { - MessageDigest.getInstance("SHA-256").digest(file.readBytes()) - .asSequence() - .map { it.toInt() } - .forEach { - append(HEX[it shr 4 and 0x0f]) - append(HEX[it and 0x0f]) - } -} diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt index 5a2f0ab..8d3cb4d 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/Gradle2NixPlugin.kt @@ -1,69 +1,111 @@ package org.nixos.gradle2nix +import com.squareup.moshi.Moshi import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.artifacts.dsl.RepositoryHandler -import org.gradle.api.artifacts.repositories.MavenArtifactRepository -import org.gradle.api.internal.GradleInternal +import org.gradle.api.Task +import org.gradle.api.artifacts.Configuration +import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.invocation.Gradle +import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.wrapper.Wrapper import org.gradle.kotlin.dsl.getByName +import org.gradle.kotlin.dsl.newInstance import org.gradle.kotlin.dsl.support.serviceOf +import org.gradle.kotlin.dsl.withType import org.gradle.plugin.management.PluginRequest import org.gradle.tooling.provider.model.ToolingModelBuilder import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.gradle.util.GradleVersion import java.net.URL -import java.util.* -import org.nixos.gradle2nix.Gradle as NixGradle -import org.nixos.gradle2nix.Project as NixProject +import java.util.Locale @Suppress("unused") open class Gradle2NixPlugin : Plugin { - override fun apply(gradle: Gradle) { - val configurationNames: List = - System.getProperty("org.nixos.gradle2nix.configurations")?.split(",") ?: emptyList() + override fun apply(gradle: Gradle): Unit = gradle.run { + val pluginRequests = collectPlugins() - val pluginRequests = collectPlugins(gradle) - - gradle.projectsLoaded { + projectsLoaded { + val modelProperties = rootProject.loadModelProperties() rootProject.serviceOf() - .register(NixToolingModelBuilder(configurationNames, pluginRequests)) - } - } + .register(NixToolingModelBuilder(modelProperties, pluginRequests)) - private fun collectPlugins(gradle: Gradle): List { - val pluginRequests = mutableListOf() - gradle.settingsEvaluated { - pluginManagement.resolutionStrategy.eachPlugin { - if (requested.id.namespace != null && requested.id.namespace != "org.gradle") { - pluginRequests.add(target) + rootProject.tasks.registerCompat("nixModel") { + doLast { + val outFile = project.mkdir(project.buildDir.resolve("nix")).resolve("model.json") + val model = project.buildModel(modelProperties, pluginRequests) + outFile.bufferedWriter().use { out -> + out.write( + Moshi.Builder().build() + .adapter(DefaultBuild::class.java) + .indent(" ") + .toJson(model) + ) + out.flush() + } } } } - return pluginRequests + } +} + +private fun TaskContainer.registerCompat(name: String, configureAction: Task.() -> Unit) { + if (GradleVersion.current() >= GradleVersion.version("4.9")) { + register(name, configureAction) + } else { + create(name, configureAction) } } private class NixToolingModelBuilder( - private val explicitConfigurations: List, + private val modelProperties: ModelProperties, private val pluginRequests: List ) : ToolingModelBuilder { override fun canBuild(modelName: String): Boolean { - return modelName == "org.nixos.gradle2nix.Build" + return modelName == NIX_MODEL_NAME } - override fun buildAll(modelName: String, project: Project): Build = project.run { - val plugins = buildPlugins(pluginRequests) - DefaultBuild( - gradle = buildGradle(), - pluginDependencies = plugins, - rootProject = buildProject(explicitConfigurations, plugins), - includedBuilds = includedBuilds() - ) - } + override fun buildAll(modelName: String, project: Project): Build = + project.buildModel(modelProperties, pluginRequests) } +private fun Gradle.collectPlugins(): List { + val pluginRequests = mutableListOf() + gradle.settingsEvaluated { + pluginManagement.resolutionStrategy.eachPlugin { + if (requested.id.namespace != null && requested.id.namespace != "org.gradle") { + pluginRequests.add(target) + } + } + } + return pluginRequests +} + +private fun Project.buildModel( + modelProperties: ModelProperties, + pluginRequests: List +): DefaultBuild { + val plugins = buildPlugins(pluginRequests) + + val subprojects = if (modelProperties.subprojects.isEmpty()) { + project.subprojects + } else { + project.subprojects + .filter { it.path in modelProperties.subprojects } + // Include dependent subprojects as well + .flatMap { setOf(it) + it.dependentSubprojects(modelProperties.configurations) } + .toSet() + } + + return DefaultBuild( + gradle = buildGradle(), + pluginDependencies = plugins, + rootProject = buildProject(modelProperties.configurations, subprojects, plugins), + includedBuilds = includedBuilds() + ) +} + +@Suppress("UnstableApiUsage") private fun Project.buildGradle(): DefaultGradle = with(tasks.getByName("wrapper")) { DefaultGradle( @@ -77,18 +119,16 @@ private fun Project.buildGradle(): DefaultGradle = } ?: throw IllegalStateException( """ - Failed to find native-platform jar in ${gradle.gradleHomeDir}. - - Ask Tad to fix this. - """.trimIndent() + Failed to find native-platform jar in ${gradle.gradleHomeDir}. + Ask Tad to fix this. + """.trimIndent() ) ) } -private fun Project.buildPlugins(pluginRequests: List): DefaultDependencies = - with(PluginResolver(gradle as GradleInternal, pluginRequests)) { - DefaultDependencies(repositories.repositories(), artifacts()) - } +private fun Project.buildPlugins(pluginRequests: List): List { + return objects.newInstance().resolve(pluginRequests).distinct().sorted() +} private fun Project.includedBuilds(): List = gradle.includedBuilds.map { @@ -97,45 +137,61 @@ private fun Project.includedBuilds(): List = private fun Project.buildProject( explicitConfigurations: List, - plugins: DefaultDependencies -): DefaultProject = - DefaultProject( + explicitSubprojects: Collection, + pluginArtifacts: List +): DefaultProject { + logger.lifecycle(" Subproject: $path") + return DefaultProject( name = name, version = version.toString(), path = path, projectDir = projectDir.toRelativeString(rootProject.projectDir), - buildscriptDependencies = buildscriptDependencies(plugins), + buildscriptDependencies = buildscriptDependencies(pluginArtifacts), projectDependencies = projectDependencies(explicitConfigurations), - children = childProjects.values.map { it.buildProject(explicitConfigurations, plugins) } - ) - -private fun Project.buildscriptDependencies(plugins: DefaultDependencies): DefaultDependencies = - with(DependencyResolver(buildscript.configurations, buildscript.dependencies)) { - DefaultDependencies( - repositories = buildscript.repositories.repositories(), - artifacts = buildscript.configurations - .filter { it.isCanBeResolved } - .flatMap { resolveDependencies(it) + resolvePoms(it) } - .minus(plugins.artifacts) - .distinct() - ) - } - -private fun Project.projectDependencies(explicitConfigurations: List): DefaultDependencies = - with(DependencyResolver(configurations, dependencies)) { - val toResolve = if (explicitConfigurations.isEmpty()) { - configurations.filter { it.isCanBeResolved } - } else { - configurations.filter { it.name in explicitConfigurations } + children = explicitSubprojects.map { + it.buildProject(explicitConfigurations, emptyList(), pluginArtifacts) } + ) +} - DefaultDependencies( - repositories = repositories.repositories(), - artifacts = toResolve.flatMap { resolveDependencies(it) + resolvePoms(it) } - .sorted() - .distinct() - ) +private fun Project.buildscriptDependencies(pluginArtifacts: List): List { + val resolverFactory = ConfigurationResolverFactory(buildscript.repositories) + val resolver = resolverFactory.create(buildscript.dependencies) + val pluginIds = pluginArtifacts.map(DefaultArtifact::id) + return buildscript.configurations + .flatMap(resolver::resolve) + .distinct() + .filter { it.id !in pluginIds } + .sorted() +} + +private fun Project.projectDependencies(explicitConfigurations: List): List { + val resolverFactory = ConfigurationResolverFactory(repositories) + val resolver = resolverFactory.create(dependencies) + return collectConfigurations(explicitConfigurations) + .flatMap(resolver::resolve) + .distinct() + .sorted() +} + +private fun Project.dependentSubprojects(explicitConfigurations: List): Set { + return collectConfigurations(explicitConfigurations) + .flatMap { it.allDependencies.withType() } + .map { it.dependencyProject } + .toSet() + .flatMap { setOf(it) + it.dependentSubprojects(explicitConfigurations) } + .toSet() +} + +private fun Project.collectConfigurations( + explicitConfigurations: List +): Set { + return if (explicitConfigurations.isEmpty()) { + configurations.filter { it.isCanBeResolved }.toSet() + } else { + configurations.filter { it.name in explicitConfigurations }.toSet() } +} private fun fetchDistSha256(url: String): String { return URL("$url.sha256").openConnection().run { @@ -146,19 +202,14 @@ private fun fetchDistSha256(url: String): String { private val nativePlatformJarRegex = Regex("""native-platform-([\d.]+)\.jar""") -internal fun RepositoryHandler.repositories() = DefaultRepositories( - maven = filterIsInstance() - .filterNot { it.name == "Embedded Kotlin Repository" } - .map { repo -> - DefaultMaven(listOf(repo.url.toString()) + repo.artifactUrls.map { it.toString() }) - } -) - private val Wrapper.sha256: String get() { return if (GradleVersion.current() < GradleVersion.version("4.5")) { fetchDistSha256(distributionUrl) } else { + @Suppress("UnstableApiUsage") distributionSha256Sum ?: fetchDistSha256(distributionUrl) } } + +private const val NIX_MODEL_NAME = "org.nixos.gradle2nix.Build" diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/ModelProperties.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/ModelProperties.kt new file mode 100644 index 0000000..2d0fad2 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/ModelProperties.kt @@ -0,0 +1,20 @@ +package org.nixos.gradle2nix + +import org.gradle.api.Project + +data class ModelProperties( + val configurations: List, + val subprojects: List +) + +internal fun Project.loadModelProperties(): ModelProperties { + return ModelProperties( + configurations = this["org.nixos.gradle2nix.configurations"]?.split(",") ?: emptyList(), + subprojects = this["org.nixos.gradle2nix.subprojects"]?.split(",") ?: emptyList() + ) +} + +private operator fun Project.get(key: String): String? { + return System.getProperty(key)?.takeIf { it.isNotEmpty() } + ?: (properties[key] as? String)?.takeIf { it.isNotEmpty() } +} \ No newline at end of file diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt index 6186f3b..c9f5ea2 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/PluginResolver.kt @@ -1,101 +1,27 @@ package org.nixos.gradle2nix -import org.gradle.api.artifacts.ExternalModuleDependency -import org.gradle.api.internal.GradleInternal -import org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionSelectorScheme -import org.gradle.api.internal.plugins.PluginImplementation -import org.gradle.kotlin.dsl.support.serviceOf +import org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency import org.gradle.plugin.management.PluginRequest -import org.gradle.plugin.management.internal.PluginRequestInternal -import org.gradle.plugin.use.PluginId import org.gradle.plugin.use.internal.PluginDependencyResolutionServices -import org.gradle.plugin.use.resolve.internal.ArtifactRepositoriesPluginResolver -import org.gradle.plugin.use.resolve.internal.PluginResolution -import org.gradle.plugin.use.resolve.internal.PluginResolutionResult -import org.gradle.plugin.use.resolve.internal.PluginResolveContext +import javax.inject.Inject -internal class PluginResolver( - gradle: GradleInternal, - private val pluginRequests: Collection +internal open class PluginResolver @Inject constructor( + pluginDependencyResolutionServices: PluginDependencyResolutionServices ) { - private val pluginDependencyResolutionServices = gradle.serviceOf() - private val versionSelectorScheme = gradle.serviceOf() + private val configurations = pluginDependencyResolutionServices.configurationContainer - private val artifactRepositoriesPluginResolver = ArtifactRepositoriesPluginResolver( - pluginDependencyResolutionServices, - versionSelectorScheme - ) + private val resolver = ConfigurationResolverFactory(pluginDependencyResolutionServices.resolveRepositoryHandler) + .create(pluginDependencyResolutionServices.dependencyHandler) - val repositories = pluginDependencyResolutionServices.resolveRepositoryHandler - - private val resolver by lazy { - DependencyResolver( - pluginDependencyResolutionServices.configurationContainer, - pluginDependencyResolutionServices.dependencyHandler - ) - } - - private val pluginResult by lazy { - PluginResult().apply { - for (request in pluginRequests.filterIsInstance()) { - artifactRepositoriesPluginResolver.resolve(request, this) - } - } - } - - private val pluginContext by lazy { - PluginContext().apply { - for (result in pluginResult.found) result.execute(this) - } - } - - fun artifacts(): List { - return (resolver.resolveDependencies(pluginContext.dependencies, true) + - resolver.resolvePoms(pluginContext.dependencies, true)) - .sorted() - .distinct() - } - - private class PluginResult : PluginResolutionResult { - val found = mutableSetOf() - - override fun notFound(sourceDescription: String?, notFoundMessage: String?) {} - - override fun notFound( - sourceDescription: String?, - notFoundMessage: String?, - notFoundDetail: String? - ) { - } - - override fun isFound(): Boolean = true - - override fun found(sourceDescription: String, pluginResolution: PluginResolution) { - found.add(pluginResolution) - } - } - - private class PluginContext : PluginResolveContext { - val dependencies = mutableSetOf() - val repositories = mutableSetOf() - - override fun add(plugin: PluginImplementation<*>) { - println("add: $plugin") - } - - override fun addFromDifferentLoader(plugin: PluginImplementation<*>) { - println("addFromDifferentLoader: $plugin") - } - - override fun addLegacy(pluginId: PluginId, m2RepoUrl: String, dependencyNotation: Any) { - repositories.add(m2RepoUrl) - } - - override fun addLegacy(pluginId: PluginId, dependencyNotation: Any) { - if (dependencyNotation is ExternalModuleDependency) { - dependencies.add(dependencyNotation) + fun resolve(pluginRequests: List): List { + val markerDependencies = pluginRequests.map { + it.module?.let { selector -> + DefaultExternalModuleDependency(selector.group, selector.name, selector.version) + } ?: it.id.run { + DefaultExternalModuleDependency(id, "$id.gradle.plugin", it.version) } } + return resolver.resolve(configurations.detachedConfiguration(*markerDependencies.toTypedArray())) } } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt new file mode 100644 index 0000000..4a6c5a2 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/RepositoryResolver.kt @@ -0,0 +1,212 @@ +package org.nixos.gradle2nix + +import org.apache.ivy.core.LogOptions +import org.apache.ivy.core.cache.ArtifactOrigin +import org.apache.ivy.core.cache.CacheResourceOptions +import org.apache.ivy.core.cache.DefaultRepositoryCacheManager +import org.apache.ivy.core.cache.RepositoryCacheManager +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.plugins.repository.url.URLResource +import org.apache.ivy.plugins.resolver.IBiblioResolver +import org.apache.ivy.plugins.resolver.URLResolver +import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader +import org.codehaus.plexus.util.ReaderFactory +import org.codehaus.plexus.util.xml.pull.XmlPullParserException +import org.gradle.api.artifacts.repositories.ArtifactRepository +import org.gradle.api.artifacts.repositories.IvyArtifactRepository +import org.gradle.api.artifacts.repositories.MavenArtifactRepository +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 java.io.IOException +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 + +internal fun ResolutionAwareRepository.repositoryResolver(ivySettings: IvySettings): RepositoryResolver? = + when(this) { + is MavenArtifactRepository -> MavenResolver(ivySettings, this) + is IvyArtifactRepository -> IvyResolver(ivySettings, this) + else -> null + } + +internal sealed class RepositoryResolver { + companion object { + @JvmStatic + protected val log: Logger = Logging.getLogger("gradle2nix") + } + + abstract val ivyResolver: IvyRepositoryResolver + + abstract fun resolve( + artifactId: DefaultArtifactIdentifier, + sha256: String? = null + ): DefaultArtifact? +} + +internal class MavenResolver( + ivySettings: IvySettings, + repository: MavenArtifactRepository +) : RepositoryResolver() { + + override val ivyResolver: IBiblioResolver = IBiblioResolver().apply { + name = repository.name + root = repository.url.toString() + isM2compatible = true + settings = ivySettings + setCache(cacheManager(ivySettings, repository).name) + } + + override fun resolve(artifactId: DefaultArtifactIdentifier, sha256: String?): DefaultArtifact? { + val ivyArtifact: IvyArtifact = artifactId.toArtifact() + val origin = ivyResolver.locate(ivyArtifact)?.takeIf(ArtifactOrigin::isExists) ?: return null + val hash = sha256 ?: ivyResolver.download(origin, downloadOptions).localFile?.sha256() ?: return null + val snapshotVersion: SnapshotVersion? = artifactId.version.snapshotVersion()?.let { + findSnapshotVersion(artifactId, it) + } + return DefaultArtifact( + id = artifactId, + name = artifactId.filename(snapshotVersion), + path = artifactId.repoPath(), + timestamp = snapshotVersion?.timestamp, + build = snapshotVersion?.build, + urls = listOf(origin.location), + sha256 = hash + ) + } + + private fun findSnapshotVersion( + artifactId: ArtifactIdentifier, + snapshotVersion: SnapshotVersion + ): SnapshotVersion { + if (snapshotVersion.timestamp != null) return snapshotVersion + val metadataLocation = "${ivyResolver.root}${artifactId.repoPath()}/maven-metadata.xml".toUrl() + val metadataFile = ivyResolver.repositoryCacheManager.downloadRepositoryResource( + URLResource(metadataLocation, ivyResolver.timeoutConstraint), + "maven-metadata", + "maven-metadata", + "xml", + CacheResourceOptions(), + ivyResolver.repository + ).localFile + + if (metadataFile == null) { + log.warn("maven-metadata.xml not found for snapshot dependency: $artifactId") + return snapshotVersion + } + + fun parseError(e: Throwable): Pair { + log.error("Failed to parse maven-metadata.xml for artifact: $artifactId") + log.error("Error was: ${e.message}", e) + return null to null + } + + val (timestamp: String?, build: Int?) = try { + MetadataXpp3Reader() + .read(ReaderFactory.newXmlReader(metadataFile)) + .versioning?.snapshot?.run { timestamp to buildNumber } + ?: null to null + } catch (e: IOException) { + parseError(e) + } catch (e: XmlPullParserException) { + parseError(e) + } + + return snapshotVersion.copy(timestamp = timestamp, build = build) + } +} + +internal class IvyResolver( + ivySettings: IvySettings, + repository: IvyArtifactRepository +) : RepositoryResolver() { + + override val ivyResolver: URLResolver = URLResolver().apply { + name = repository.name + val ivyResolver = (repository as ResolutionAwareRepository).createResolver() as IvyResolver + isM2compatible = ivyResolver.isM2compatible + for (p in ivyResolver.ivyPatterns) addIvyPattern(p) + for (p in ivyResolver.artifactPatterns) addArtifactPattern(p) + settings = ivySettings + setCache(cacheManager(ivySettings, repository).name) + } + + override fun resolve(artifactId: DefaultArtifactIdentifier, sha256: String?): DefaultArtifact? { + val ivyArtifact: IvyArtifact = artifactId.toArtifact() + val origin = ivyResolver.locate(ivyArtifact)?.takeIf(ArtifactOrigin::isExists) ?: return null + val hash = sha256 ?: ivyResolver.download(origin, downloadOptions).localFile?.sha256() ?: return null + return DefaultArtifact( + id = DefaultArtifactIdentifier(artifactId), + name = artifactId.filename(null), + path = artifactId.repoPath(), + urls = listOf(origin.location), + sha256 = hash + ) + } +} + +private fun cacheManager(ivySettings: IvySettings, repository: ArtifactRepository): RepositoryCacheManager { + return DefaultRepositoryCacheManager( + "${repository.name}-cache", + ivySettings, + createTempDir("gradle2nix-${repository.name}-cache") + ).also { + ivySettings.addRepositoryCacheManager(it) + } +} + +private val metadataTypes = setOf("pom", "ivy") + +private fun ArtifactIdentifier.toArtifact(): IvyArtifact { + val moduleRevisionId = ModuleRevisionId.newInstance(group, name, version) + val artifactRevisionId = ArtifactRevisionId.newInstance( + moduleRevisionId, + name, + type, + extension, + classifier?.let { mapOf("classifier" to it) } + ) + return IvyDefaultArtifact(artifactRevisionId, null, null, type in metadataTypes) +} + +private data class SnapshotVersion( + val base: String, + val timestamp: String?, + val build: Int? +) { + override fun toString(): String { + return if (timestamp != null && build != null) { + "$base-$timestamp-$build" + } else { + "$base-SNAPSHOT" + } + } +} + +private val SNAPSHOT_REGEX = Regex("^(.*)-SNAPSHOT$") +private val SNAPSHOT_TIMESTAMPED_REGEX = Regex("^(.*)-([0-9]{8}.[0-9]{6})-([0-9]+)$") + +private fun String.snapshotVersion(): SnapshotVersion? { + return SNAPSHOT_REGEX.find(this)?.destructured?.let { (base) -> + SnapshotVersion(base, null, null) + } ?: SNAPSHOT_TIMESTAMPED_REGEX.find(this)?.destructured?.let { (base, timestamp, build) -> + SnapshotVersion(base, timestamp, build.toInt()) + } +} + +private fun ArtifactIdentifier.repoPath(): String = + "${group.replace('.', '/')}/$name/$version" + +private fun ArtifactIdentifier.filename( + snapshotVersion: SnapshotVersion? +): String = buildString { + append(name, "-", snapshotVersion ?: version) + if (classifier != null) append("-", classifier) + append(".", extension) +} + +private val downloadOptions = DownloadOptions().apply { log = LogOptions.LOG_QUIET } \ No newline at end of file diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/Util.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/Util.kt new file mode 100644 index 0000000..b3c7927 --- /dev/null +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/Util.kt @@ -0,0 +1,21 @@ +package org.nixos.gradle2nix + +import java.io.File +import java.net.URL +import java.security.MessageDigest + +private const val HEX = "0123456789abcdef" + +internal fun File.sha256(): String = readBytes().sha256() + +private fun ByteArray.sha256() = buildString { + MessageDigest.getInstance("SHA-256").digest(this@sha256) + .asSequence() + .map(Byte::toInt) + .forEach { + append(HEX[it shr 4 and 0x0f]) + append(HEX[it and 0x0f]) + } +} + +internal fun String.toUrl(): URL = URL(this)