diff --git a/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt b/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt index b685f023da5..268ca045d9b 100644 --- a/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt @@ -180,7 +180,8 @@ class CodeConformanceTest : TestCase() { "@author" in source && atAuthorPattern.matcher(source).find() && "ASM: a very small and fast Java bytecode manipulation framework" !in source && "package org.jetbrains.kotlin.tools.projectWizard.settings.version.maven" !in source && - !file.relativeTo(root).systemIndependentPath.startsWith("kotlin-ultimate/ide/common-cidr-native") + !file.relativeTo(root).systemIndependentPath.startsWith("kotlin-ultimate/ide/common-cidr-native") && + file.name != "CLionKonanProjectDataService.kt" }, TestData( "%d source files use something from com.beust.jcommander.internal package.\n" + @@ -302,17 +303,21 @@ class CodeConformanceTest : TestCase() { val repoCheckers = listOf( RepoAllowList( // Please use cache-redirector for importing in tests - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", root, setOf("gradle/cacheRedirector.gradle.kts") + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", root, + setOf("gradle/cacheRedirector.gradle.kts") ), RepoAllowList( - "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", root, setOf() + "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", root, + setOf("gradle/cacheRedirector.gradle.kts") ), RepoAllowList( // Please use cache-redirector for importing in tests - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/eap", root, setOf("gradle/cacheRedirector.gradle.kts") + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/eap", root, + setOf("gradle/cacheRedirector.gradle.kts") ), RepoAllowList( - "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", root, setOf() + "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", root, + setOf("gradle/cacheRedirector.gradle.kts") ), RepoAllowList("kotlin/ktor", root, setOf("gradle/cacheRedirector.gradle.kts")), RepoAllowList("bintray.com/kotlin-dependencies", root, setOf("gradle/cacheRedirector.gradle.kts")), @@ -349,12 +354,14 @@ class CodeConformanceTest : TestCase() { RepoAllowList( // Please use cache-redirector for importing in tests "https://dl.bintray.com/kotlin/kotlin-bootstrap", root, setOf( - "kotlin-ultimate/build.gradle.kts" + "kotlin-ultimate/build.gradle.kts", + "gradle/cacheRedirector.gradle.kts" ) ), RepoAllowList( "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlin-bootstrap", root, setOf( - "kotlin-ultimate/build.gradle.kts" + "kotlin-ultimate/build.gradle.kts", + "gradle/cacheRedirector.gradle.kts" ) ), ) diff --git a/gradle/cacheRedirector.gradle.kts b/gradle/cacheRedirector.gradle.kts index 23d71fad444..fc70130c324 100644 --- a/gradle/cacheRedirector.gradle.kts +++ b/gradle/cacheRedirector.gradle.kts @@ -13,71 +13,96 @@ import java.net.URI * To add a repository to the list create an issue in ADM project (example issue https://youtrack.jetbrains.com/issue/IJI-149) * Repositories in `buildscript` blocks are *NOT* substituted by this script and should be handled manually */ -val mirroredUrls = listOf( - "https://cdn.azul.com/zulu/bin", - "https://clojars.org/repo", - "https://dl.bintray.com/d10xa/maven", - "https://dl.bintray.com/groovy/maven", - "https://dl.bintray.com/jetbrains/maven-patched", - "https://dl.bintray.com/jetbrains/scala-plugin-deps", - "https://dl.bintray.com/kodein-framework/Kodein-DI", - "https://dl.bintray.com/konsoletyper/teavm", - "https://dl.bintray.com/kotlin/kotlin-dev", - "https://dl.bintray.com/kotlin/ktor", - "https://dl.bintray.com/scalacenter/releases", - "https://dl.bintray.com/scalamacros/maven", - "https://dl.bintray.com/kotlin/exposed", - "https://dl.bintray.com/cy6ergn0m/maven", - "https://dl.bintray.com/kotlin/kotlin-js-wrappers", - "https://dl.google.com/android/repository", - "https://dl.google.com/dl/android/maven2", - "https://dl.google.com/dl/android/studio/ide-zips", - "https://dl.google.com/go", - "https://download.jetbrains.com", - "https://jcenter.bintray.com", - "https://jetbrains.bintray.com/dekaf", - "https://jetbrains.bintray.com/intellij-jbr", - "https://jetbrains.bintray.com/intellij-jdk", - "https://jetbrains.bintray.com/intellij-plugin-service", - "https://jetbrains.bintray.com/intellij-terraform", - "https://jetbrains.bintray.com/intellij-third-party-dependencies", - "https://jetbrains.bintray.com/jediterm", - "https://jetbrains.bintray.com/kotlin-native-dependencies", - "https://jetbrains.bintray.com/markdown", - "https://jetbrains.bintray.com/teamcity-rest-client", - "https://jetbrains.bintray.com/test-discovery", - "https://jetbrains.bintray.com/wormhole", - "https://jitpack.io", - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap", - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/eap", - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies", - "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide", - "https://kotlin.bintray.com/dukat", - "https://kotlin.bintray.com/kotlin-dependencies", - "https://oss.sonatype.org/content/repositories/releases", - "https://oss.sonatype.org/content/repositories/snapshots", - "https://oss.sonatype.org/content/repositories/staging", - "https://packages.confluent.io/maven/", - "https://plugins.gradle.org/m2", - "https://plugins.jetbrains.com/maven", - "https://repo1.maven.org/maven2", - "https://repo.grails.org/grails/core", - "https://repo.jenkins-ci.org/releases", - "https://repo.maven.apache.org/maven2", - "https://repo.spring.io/milestone", - "https://repo.typesafe.com/typesafe/ivy-releases", - "https://services.gradle.org", - "https://www.exasol.com/artifactory/exasol-releases", - "https://www.myget.org/F/intellij-go-snapshots/maven", - "https://www.myget.org/F/rd-model-snapshots/maven", - "https://www.myget.org/F/rd-snapshots/maven", - "https://www.python.org/ftp", - "https://www.jetbrains.com/intellij-repository/nightly", - "https://www.jetbrains.com/intellij-repository/releases", - "https://www.jetbrains.com/intellij-repository/snapshots", - "https://kotlin.bintray.com/kotlinx", - "https://nodejs.org/dist" +val cacheMap: Map = mapOf( + "https://jetbrains.bintray.com/xodus" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/xodus", + "https://cdn.azul.com/zulu/bin" to "https://cache-redirector.jetbrains.com/cdn.azul.com/zulu/bin", + "https://clojars.org/repo" to "https://cache-redirector.jetbrains.com/clojars.org/repo", + "https://downloads.apache.org" to "https://cache-redirector.jetbrains.com/downloads.apache.org", + "https://download.eclipse.org" to "https://cache-redirector.jetbrains.com/download.eclipse.org", + "https://downloads.gradle.org" to "https://cache-redirector.jetbrains.com/downloads.gradle.org", + "https://dl.bintray.com/d10xa/maven" to "https://cache-redirector.jetbrains.com/dl.bintray.com/d10xa/maven", + "https://dl.bintray.com/jetbrains/golang" to "https://cache-redirector.jetbrains.com/dl.bintray.com/jetbrains/golang", + "https://dl.bintray.com/groovy/maven" to "https://cache-redirector.jetbrains.com/dl.bintray.com.groovy", + "https://dl.bintray.com/jetbrains/maven-patched" to "https://cache-redirector.jetbrains.com/dl.bintray.com/jetbrains/maven-patched", + "https://dl.bintray.com/jetbrains/scala-plugin-deps" to "https://cache-redirector.jetbrains.com/dl.bintray.com/jetbrains/scala-plugin-deps", + "https://dl.bintray.com/kodein-framework/Kodein-DI" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kodein-framework/Kodein-DI", + "https://dl.bintray.com/konsoletyper/teavm" to "https://cache-redirector.jetbrains.com/dl.bintray.com/konsoletyper/teavm", + "https://dl.bintray.com/kotlin/kotlin-bootstrap" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlin-bootstrap", + "https://dl.bintray.com/kotlin/kotlin-dev" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlin-dev", + "https://dl.bintray.com/kotlin/kotlin-eap" to "https://cache-redirector.jetbrains.com/kotlin-eap", + "https://dl.bintray.com/kotlin/kotlinx.html" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlinx.html", + "https://dl.bintray.com/kotlin/kotlinx" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlinx", + "https://dl.bintray.com/kotlin/ktor" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/ktor", + "https://dl.bintray.com/scalacenter/releases" to "https://cache-redirector.jetbrains.com/dl.bintray.com/scalacenter/releases", + "https://dl.bintray.com/scalamacros/maven" to "https://cache-redirector.jetbrains.com/dl.bintray.com/scalamacros/maven", + "https://dl.bintray.com/kotlin/exposed" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/exposed", + "https://dl.bintray.com/cy6ergn0m/maven" to "https://cache-redirector.jetbrains.com/dl.bintray.com/cy6ergn0m/maven", + "https://dl.bintray.com/kotlin/kotlin-js-wrappers" to "https://cache-redirector.jetbrains.com/dl.bintray.com/kotlin/kotlin-js-wrappers", + "https://dl.google.com/android/repository" to "https://cache-redirector.jetbrains.com/dl.google.com/android/repository", + "https://dl.google.com/dl/android/maven2" to "https://cache-redirector.jetbrains.com/dl.google.com.android.maven2", + "https://dl.google.com/dl/android/studio/ide-zips" to "https://cache-redirector.jetbrains.com/dl.google.com/dl/android/studio/ide-zips", + "https://dl.google.com/go" to "https://cache-redirector.jetbrains.com/dl.google.com.go", + "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download" to "https://cache-redirector.jetbrains.com/github.com/AdoptOpenJDK/openjdk14-binaries/releases/download", + "https://jcenter.bintray.com" to "https://cache-redirector.jetbrains.com/jcenter", + "https://jetbrains.bintray.com/dekaf" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com.dekaf", + "https://jetbrains.bintray.com/intellij-jbr" to "https://cache-redirector.jetbrains.com/intellij-jbr", + "https://jetbrains.bintray.com/intellij-jdk" to "https://cache-redirector.jetbrains.com/intellij-jdk", + "https://jetbrains.bintray.com/intellij-plugin-service" to "https://cache-redirector.jetbrains.com/intellij-plugin-service", + "https://jetbrains.bintray.com/intellij-terraform" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/intellij-terraform", + "https://jetbrains.bintray.com/intellij-shared-indexes" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/intellij-shared-indexes", + "https://jetbrains.bintray.com/intellij-third-party-dependencies" to "https://cache-redirector.jetbrains.com/intellij-third-party-dependencies", + "https://jetbrains.bintray.com/jediterm" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/jediterm", + "https://jetbrains.bintray.com/kotlin-native-dependencies" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/kotlin-native-dependencies", + "https://jetbrains.bintray.com/markdown" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com.markdown", + "https://jetbrains.bintray.com/teamcity-rest-client" to "https://cache-redirector.jetbrains.com/teamcity-rest-client", + "https://jetbrains.bintray.com/test-discovery" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/test-discovery", + "https://jetbrains.bintray.com/wormhole" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/wormhole", + "https://jetbrains.bintray.com/space" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/space", + "https://jetbrains.bintray.com/rplugin" to "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/rplugin", + "https://jitpack.io" to "https://cache-redirector.jetbrains.com/jitpack.io", + "https://maven.fabric.io/public" to "https://cache-redirector.jetbrains.com/maven.fabric.io/public", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/eap" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/eap", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies", + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-plugin" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-plugin", + "https://maven.pkg.jetbrains.space/public/p/space/maven" to "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/public/p/space/maven", + "https://nodejs.org/dist" to "https://cache-redirector.jetbrains.com/nodejs.org/dist", + "https://kotlin.bintray.com/dukat" to "https://cache-redirector.jetbrains.com/kotlin.bintray.com/dukat", + "https://kotlin.bintray.com/kotlin-dependencies" to "https://cache-redirector.jetbrains.com/kotlin.bintray.com/kotlin-dependencies", + "https://kotlin.bintray.com/kotlin-plugin" to "https://cache-redirector.jetbrains.com/kotlin.bintray.com/kotlin-plugin", + "https://kotlin.bintray.com/kotlin-ide-plugin-dependencies" to "https://cache-redirector.jetbrains.com/kotlin.bintray.com/kotlin-ide-plugin-dependencies", + "https://oss.sonatype.org/content/repositories/releases" to "https://cache-redirector.jetbrains.com/oss.sonatype.org/content/repositories/releases", + "https://oss.sonatype.org/content/repositories/snapshots" to "https://cache-redirector.jetbrains.com/oss.sonatype.org/content/repositories/snapshots", + "https://oss.sonatype.org/content/repositories/staging" to "https://cache-redirector.jetbrains.com/oss.sonatype.org/content/repositories/staging", + "https://packages.confluent.io/maven/" to "https://cache-redirector.jetbrains.com/packages.confluent.io/maven/", + "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies" to "https://cache-redirector.jetbrains.com/intellij-dependencies", + "https://packages.jetbrains.team/maven/p/skija/maven" to "https://cache-redirector.jetbrains.com/packages.jetbrains.team/maven/p/skija/maven", + "https://plugins.gradle.org/m2" to "https://cache-redirector.jetbrains.com/plugins.gradle.org", + "https://plugins.jetbrains.com/maven" to "https://cache-redirector.jetbrains.com/plugins.jetbrains.com/maven", + "https://repo1.maven.org/maven2" to "https://cache-redirector.jetbrains.com/maven-central", + "https://repo.eclipse.org/content/repositories/egit-releases" to "https://cache-redirector.jetbrains.com/repo.eclipse.org/content/repositories/egit-releases", + "https://repo.grails.org/grails/core" to "https://cache-redirector.jetbrains.com/repo.grails.org/grails/core", + "https://repo.jenkins-ci.org/releases" to "https://cache-redirector.jetbrains.com/repo.jenkins-ci.org.releases", + "https://repo.maven.apache.org/maven2" to "https://cache-redirector.jetbrains.com/repo.maven.apache.org/maven2", + "https://repo.spring.io/milestone" to "https://cache-redirector.jetbrains.com/repo.spring.io.milestone", + "https://repo.typesafe.com/typesafe/ivy-releases" to "https://cache-redirector.jetbrains.com/repo.typesafe.com/typesafe/ivy-releases", + "https://repository.jboss.org/nexus/content/repositories/public" to "https://cache-redirector.jetbrains.com/repository.jboss.org/nexus/content/repositories/public", + "https://services.gradle.org" to "https://cache-redirector.jetbrains.com/services.gradle.org", + "https://maven.exasol.com/artifactory/exasol-releases" to "https://cache-redirector.jetbrains.com/maven.exasol.com.releases", + "https://www.myget.org/F/intellij-go-snapshots/maven" to "https://cache-redirector.jetbrains.com/myget.org.intellij-go-snapshots", + "https://www.myget.org/F/rd-model-snapshots/maven" to "https://cache-redirector.jetbrains.com/www.myget.org/F/rd-model-snapshots/maven", + "https://www.myget.org/F/rd-snapshots/maven" to "https://cache-redirector.jetbrains.com/myget.org.rd-snapshots.maven", + "https://www.python.org/ftp" to "https://cache-redirector.jetbrains.com/www.python.org/ftp", + "https://www.jetbrains.com/intellij-repository/nightly" to "https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/nightly", + "https://www.jetbrains.com/jps-cache/intellij" to "https://cache-redirector.jetbrains.com/www.jetbrains.com/jps-cache/intellij", + "https://www.jetbrains.com/intellij-repository/releases" to "https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/releases", + "https://www.jetbrains.com/intellij-repository/snapshots" to "https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/snapshots", + "https://download.jetbrains.com" to "https://cache-redirector.jetbrains.com/download.jetbrains.com", + "https://secure.index-cdn.jetbrains.com" to "https://cache-redirector.jetbrains.com/secure.index-cdn.jetbrains.com", + "https://maven.apache.org/xsd" to "https://cache-redirector.jetbrains.com/maven.apache.org/xsd" ) val aliases = mapOf( @@ -88,14 +113,15 @@ val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY fun Project.cacheRedirectorEnabled(): Boolean = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true -fun URI.toCacheRedirectorUri() = URI("https://cache-redirector.jetbrains.com/$host/$path") - fun URI.maybeRedirect(): URI { val url = toString().trimEnd('/') val dealiasedUrl = aliases.getOrDefault(url, url) - return if (mirroredUrls.any { dealiasedUrl.startsWith(it) }) { - URI(dealiasedUrl).toCacheRedirectorUri() + val cacheUrlEntry = cacheMap.entries.find { (origin, _) -> dealiasedUrl.startsWith(origin) } + return if (cacheUrlEntry != null) { + val cacheUrl = cacheUrlEntry.value + val originRestPath = dealiasedUrl.substringAfter(cacheUrlEntry.key, "") + URI("$cacheUrl$originRestPath") } else { this }