Skip to content

Commit

Permalink
Migrate to kotlin-multiplatform plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
e5l committed Dec 24, 2018
1 parent 1e65029 commit 46f42b8
Show file tree
Hide file tree
Showing 848 changed files with 2,346 additions and 1,483 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -23,3 +23,4 @@ bin/
.settings
.project
.classpath
.konan
32 changes: 13 additions & 19 deletions binary-compatibility-validator/build.gradle
Expand Up @@ -2,40 +2,34 @@
* Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/

sourceSets {
main {
kotlin.srcDir 'jvm/src'
}
test {
kotlin.srcDir 'jvm/test'
}
}

dependencies {
kotlin.sourceSets.jvmMain.dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

implementation project(":ktor-utils:ktor-utils-jvm")
api project(":ktor-utils")
api 'org.ow2.asm:asm-debug-all:5.0.4'
api 'com.google.code.gson:gson:2.6.2'
}

kotlin.sourceSets.jvmTest.dependencies {
api "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
api "junit:junit:4.12"
}

apply from: rootProject.file('gradle/compatibility.gradle')

test {
def binaryCompatibilityModules = project.ext.buildList() as List<ProjectDependency>
def artifactNames = binaryCompatibilityModules.collect { it.dependencyProject.name }
def modules = binaryCompatibilityModules.collect { it.dependencyProject.projectDir }

// dependsOn cleanCompileTestKotlin
jvmTest {
dependsOn configurations.binaryCompatibility

systemProperty 'validator.input.modules', modules.join(File.pathSeparator)
systemProperty 'validator.input.artifactNames', artifactNames.join(File.pathSeparator)
systemProperty 'overwrite.output', project.properties['overwrite.output']
jvmArgs '-ea'
}

doFirst {
def binaryCompatibilityModules = project.ext.buildList() as List<ProjectDependency>
def modules = binaryCompatibilityModules.collect { it.dependencyProject.projectDir }

tasks.findByName("test").systemProperty('validator.input.modules', modules.join(File.pathSeparator))
}
binaryCompatibilityModules.each {
jvmTest.dependsOn(it.dependencyProject.getTasksByName("jvmJar", true))
}
Expand Up @@ -36,6 +36,7 @@ fun ClassVisibility.findSetterForProperty(property: MemberVisibility): MemberVis
}

fun readKotlinVisibilities(declarationFile: File): Map<String, ClassVisibility> {
check(declarationFile.exists())
val result = mutableListOf<ClassVisibility>()
declarationFile.bufferedReader().use { reader ->
val jsonReader = JsonReader(reader)
Expand Down
10 changes: 6 additions & 4 deletions binary-compatibility-validator/jvm/test/PublicApiTest.kt
Expand Up @@ -17,14 +17,16 @@ class PublicApiTest(
) {
companion object {
private val modulesList = System.getProperty("validator.input.modules")
private val artifactNames = System.getProperty("validator.input.artifactNames")
private val nonPublicPackages: List<String> = emptyList()

@Parameterized.Parameters(name = "{1}")
@JvmStatic
fun modules(): List<Array<Any>> {
return modulesList.split(File.pathSeparator).map { path ->
val names = artifactNames.split(File.pathSeparator)
return modulesList.split(File.pathSeparator).mapIndexed { id, path ->
val dir = File(path)
arrayOf<Any>(dir, dir.name)
arrayOf<Any>(dir, names[id])
}
}
}
Expand All @@ -39,11 +41,11 @@ class PublicApiTest(
.map { readKotlinVisibilities(it) }
.reduce { m1, m2 -> m1 + m2 }
val api = getBinaryAPI(JarFile(jarFile), visibilities).filterOutNonPublic(nonPublicPackages)
api.dumpAndCompareWith(File("reference-public-api").resolve("${moduleName.removeSuffix("-jvm")}.txt"))
api.dumpAndCompareWith(File("reference-public-api").resolve("$moduleName.txt"))
}

private fun getJarPath(libsDir: File): File {
val regex = Regex("$moduleName.+\\.jar")
val regex = Regex("$moduleName-jvm.+\\.jar")
val files = (libsDir.listFiles() ?: throw Exception("Cannot list files in $libsDir"))
.filter {
it.name.let {
Expand Down
2 changes: 1 addition & 1 deletion binary-compatibility-validator/jvm/test/utils.kt
Expand Up @@ -35,7 +35,7 @@ private fun assertEqualsToFile(to: File, actual: CharSequence) {
assertEquals(
expectedText,
actualText,
"Actual data differs from file content: ${to.name}\nTo overwrite the expected API rerun with -Doverwrite.output=true parameter\n"
"Actual data differs from file content: ${to.name}\nTo overwrite the expected API rerun with -Poverwrite.output=true parameter\n"
)
}

Expand Down
Expand Up @@ -122,7 +122,9 @@ public final class io/ktor/client/call/UtilsJvmKt {

public final class io/ktor/client/call/UtilsKt {
public static final fun call (Lio/ktor/client/HttpClient;Lio/ktor/client/request/HttpRequestBuilder;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun call (Lio/ktor/client/HttpClient;Lio/ktor/http/Url;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun call (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun call$default (Lio/ktor/client/HttpClient;Lio/ktor/http/Url;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun call$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}

Expand Down Expand Up @@ -392,6 +394,10 @@ public final class io/ktor/client/request/BuildersKt {
public static final fun request (Lkotlin/jvm/functions/Function1;)Lio/ktor/client/request/HttpRequestBuilder;
}

public final class io/ktor/client/request/BuildersWithUrlKt {
public static final fun url (Lio/ktor/client/request/HttpRequestBuilder;Lio/ktor/http/Url;)V
}

public abstract class io/ktor/client/request/ClientUpgradeContent : io/ktor/http/content/OutgoingContent$NoContent {
public fun <init> ()V
public final fun getOutput ()Lkotlinx/coroutines/io/ByteWriteChannel;
Expand Down
Expand Up @@ -79,8 +79,7 @@ public abstract class io/ktor/http/cio/HttpMessage : java/io/Closeable {
}

public final class io/ktor/http/cio/HttpParserKt {
public static final fun parseHeaders (Lkotlinx/coroutines/io/ByteReadChannel;Lio/ktor/http/cio/internals/CharBufferBuilder;Lio/ktor/http/cio/internals/MutableRange;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun parseHeaders$default (Lkotlinx/coroutines/io/ByteReadChannel;Lio/ktor/http/cio/internals/CharBufferBuilder;Lio/ktor/http/cio/internals/MutableRange;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun parseHeaders (Lkotlinx/coroutines/io/ByteReadChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun parseRequest (Lkotlinx/coroutines/io/ByteReadChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun parseResponse (Lkotlinx/coroutines/io/ByteReadChannel;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
Expand Down Expand Up @@ -167,30 +166,6 @@ public final class io/ktor/http/cio/Response : io/ktor/http/cio/HttpMessage {
public final fun getVersion ()Ljava/lang/CharSequence;
}

public final class io/ktor/http/cio/internals/CharBufferBuilder : java/lang/Appendable, java/lang/CharSequence {
public fun <init> ()V
public fun <init> (Lkotlinx/io/pool/ObjectPool;)V
public synthetic fun <init> (Lkotlinx/io/pool/ObjectPool;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun append (C)Ljava/lang/Appendable;
public fun append (Ljava/lang/CharSequence;)Ljava/lang/Appendable;
public fun append (Ljava/lang/CharSequence;II)Ljava/lang/Appendable;
public final fun charAt (I)C
public fun equals (Ljava/lang/Object;)Z
public fun get (I)C
public fun getLength ()I
public final fun getPool ()Lkotlinx/io/pool/ObjectPool;
public fun hashCode ()I
public final fun length ()I
public final fun release ()V
public fun subSequence (II)Ljava/lang/CharSequence;
public fun toString ()Ljava/lang/String;
}

public final class io/ktor/http/cio/internals/CharBufferPoolKt {
public static final field CHAR_BUFFER_BYTES I
public static final field CHAR_BUFFER_LENGTH I
}

public final class io/ktor/http/cio/internals/HttpByteBufferPoolKt {
public static final fun getDefaultByteBufferPool ()Lkotlinx/io/pool/ObjectPool;
}
Expand Down
78 changes: 78 additions & 0 deletions binary-compatibility-validator/reference-public-api/ktor-http.txt
Expand Up @@ -966,6 +966,84 @@ public final class io/ktor/http/Url {
public final class io/ktor/http/Url$Companion {
}

public final class io/ktor/http/auth/AuthScheme {
public static final field Basic Ljava/lang/String;
public static final field Digest Ljava/lang/String;
public static final field INSTANCE Lio/ktor/http/auth/AuthScheme;
public static final field Negotiate Ljava/lang/String;
public static final field OAuth Ljava/lang/String;
public final synthetic fun getBasic ()Ljava/lang/String;
public final synthetic fun getDigest ()Ljava/lang/String;
public final synthetic fun getNegotiate ()Ljava/lang/String;
}

public final class io/ktor/http/auth/HeaderValueEncoding : java/lang/Enum {
public static final field QUOTED_ALWAYS Lio/ktor/http/auth/HeaderValueEncoding;
public static final field QUOTED_WHEN_REQUIRED Lio/ktor/http/auth/HeaderValueEncoding;
public static final field URI_ENCODE Lio/ktor/http/auth/HeaderValueEncoding;
public static fun valueOf (Ljava/lang/String;)Lio/ktor/http/auth/HeaderValueEncoding;
public static fun values ()[Lio/ktor/http/auth/HeaderValueEncoding;
}

public abstract class io/ktor/http/auth/HttpAuthHeader {
public static final field Companion Lio/ktor/http/auth/HttpAuthHeader$Companion;
public final fun getAuthScheme ()Ljava/lang/String;
public abstract fun render ()Ljava/lang/String;
public abstract fun render (Lio/ktor/http/auth/HeaderValueEncoding;)Ljava/lang/String;
public fun toString ()Ljava/lang/String;
}

public final class io/ktor/http/auth/HttpAuthHeader$Companion {
public final fun basicAuthChallenge (Ljava/lang/String;Ljava/nio/charset/Charset;)Lio/ktor/http/auth/HttpAuthHeader$Parameterized;
public final fun digestAuthChallenge (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;)Lio/ktor/http/auth/HttpAuthHeader$Parameterized;
public static synthetic fun digestAuthChallenge$default (Lio/ktor/http/auth/HttpAuthHeader$Companion;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;ILjava/lang/Object;)Lio/ktor/http/auth/HttpAuthHeader$Parameterized;
}

public final class io/ktor/http/auth/HttpAuthHeader$Parameterized : io/ktor/http/auth/HttpAuthHeader {
public fun <init> (Ljava/lang/String;Ljava/util/List;Lio/ktor/http/auth/HeaderValueEncoding;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Lio/ktor/http/auth/HeaderValueEncoding;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Ljava/lang/String;Ljava/util/Map;Lio/ktor/http/auth/HeaderValueEncoding;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/Map;Lio/ktor/http/auth/HeaderValueEncoding;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun equals (Ljava/lang/Object;)Z
public final fun getEncoding ()Lio/ktor/http/auth/HeaderValueEncoding;
public final fun getParameters ()Ljava/util/List;
public fun hashCode ()I
public final fun parameter (Ljava/lang/String;)Ljava/lang/String;
public fun render ()Ljava/lang/String;
public fun render (Lio/ktor/http/auth/HeaderValueEncoding;)Ljava/lang/String;
public final fun withParameter (Ljava/lang/String;Ljava/lang/String;)Lio/ktor/http/auth/HttpAuthHeader$Parameterized;
}

public final class io/ktor/http/auth/HttpAuthHeader$Parameters {
public static final field Charset Ljava/lang/String;
public static final field INSTANCE Lio/ktor/http/auth/HttpAuthHeader$Parameters;
public static final field OAuthCallback Ljava/lang/String;
public static final field OAuthCallbackConfirmed Ljava/lang/String;
public static final field OAuthConsumerKey Ljava/lang/String;
public static final field OAuthNonce Ljava/lang/String;
public static final field OAuthSignature Ljava/lang/String;
public static final field OAuthSignatureMethod Ljava/lang/String;
public static final field OAuthTimestamp Ljava/lang/String;
public static final field OAuthToken Ljava/lang/String;
public static final field OAuthTokenSecret Ljava/lang/String;
public static final field OAuthVerifier Ljava/lang/String;
public static final field OAuthVersion Ljava/lang/String;
public static final field Realm Ljava/lang/String;
}

public final class io/ktor/http/auth/HttpAuthHeader$Single : io/ktor/http/auth/HttpAuthHeader {
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
public fun equals (Ljava/lang/Object;)Z
public final fun getBlob ()Ljava/lang/String;
public fun hashCode ()I
public fun render ()Ljava/lang/String;
public fun render (Lio/ktor/http/auth/HeaderValueEncoding;)Ljava/lang/String;
}

public final class io/ktor/http/auth/HttpAuthHeaderKt {
public static final fun parseAuthorizationHeader (Ljava/lang/String;)Lio/ktor/http/auth/HttpAuthHeader;
}

public final class io/ktor/http/content/ByteArrayContent : io/ktor/http/content/OutgoingContent$ByteArrayContent {
public fun <init> ([BLio/ktor/http/ContentType;Lio/ktor/http/HttpStatusCode;)V
public synthetic fun <init> ([BLio/ktor/http/ContentType;Lio/ktor/http/HttpStatusCode;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
Expand Down
20 changes: 20 additions & 0 deletions binary-compatibility-validator/reference-public-api/ktor-utils.txt
Expand Up @@ -87,6 +87,10 @@ public final class io/ktor/util/CollectionsKt {
}

public final class io/ktor/util/CryptoKt {
public static final fun Digest (Ljava/lang/String;)Lio/ktor/util/Digest;
public static final fun build (Lio/ktor/util/Digest;Ljava/lang/String;Ljava/nio/charset/Charset;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun build (Lio/ktor/util/Digest;[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun build$default (Lio/ktor/util/Digest;Ljava/lang/String;Ljava/nio/charset/Charset;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun decodeBase64 (Ljava/lang/String;)[B
public static final fun encodeBase64 ([B)Ljava/lang/String;
public static final fun generateNonce ()Ljava/lang/String;
Expand All @@ -112,6 +116,17 @@ public final class io/ktor/util/DeflaterKt {
public static synthetic fun deflated$default (Lkotlinx/coroutines/io/ByteWriteChannel;ZLkotlinx/io/pool/ObjectPool;Lkotlin/coroutines/CoroutineContext;ILjava/lang/Object;)Lkotlinx/coroutines/io/ByteWriteChannel;
}

public abstract interface class io/ktor/util/Digest {
public abstract fun build (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun plusAssign ([B)V
public abstract fun reset ()V
}

public final class io/ktor/util/Hash {
public static final field INSTANCE Lio/ktor/util/Hash;
public final fun combine ([Ljava/lang/Object;)I
}

public final class io/ktor/util/InputJvmKt {
public static final fun asStream (Lkotlinx/io/core/Input;)Ljava/io/InputStream;
}
Expand Down Expand Up @@ -314,6 +329,11 @@ public final class io/ktor/util/cio/FileChannelsKt {
public static synthetic fun writeChannel$default (Ljava/io/File;Lkotlinx/io/pool/ObjectPool;ILjava/lang/Object;)Lkotlinx/coroutines/io/ByteWriteChannel;
}

public final class io/ktor/util/cio/InputStreamAdaptersKt {
public static final fun toByteReadChannel (Ljava/io/InputStream;Lkotlinx/io/pool/ObjectPool;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/Job;)Lkotlinx/coroutines/io/ByteReadChannel;
public static synthetic fun toByteReadChannel$default (Ljava/io/InputStream;Lkotlinx/io/pool/ObjectPool;Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/Job;ILjava/lang/Object;)Lkotlinx/coroutines/io/ByteReadChannel;
}

public final class io/ktor/util/cio/NoopContinuation : kotlin/coroutines/Continuation {
public static final field INSTANCE Lio/ktor/util/cio/NoopContinuation;
public fun getContext ()Lkotlin/coroutines/CoroutineContext;
Expand Down

0 comments on commit 46f42b8

Please sign in to comment.