Skip to content

Commit 721495b

Browse files
authored
Deprecate apollo engine ktor and publish engine tests (#5988)
* Deprecate apollo-engine-ktor and publish engine tests * add apiDump * fix indentation * fix build
1 parent dbc9b94 commit 721495b

File tree

24 files changed

+447
-432
lines changed

24 files changed

+447
-432
lines changed

libraries/apollo-engine-ktor/src/commonMain/kotlin/com/apollographql/apollo3/network/KtorExtensions.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.apollographql.apollo3.network
22

33
import com.apollographql.apollo3.ApolloClient
4+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
45
import com.apollographql.apollo3.annotations.ApolloExperimental
56
import com.apollographql.apollo3.network.http.KtorHttpEngine
67
import com.apollographql.apollo3.network.ws.KtorWebSocketEngine
@@ -13,6 +14,8 @@ import io.ktor.client.HttpClient
1314
* See also [ApolloClient.Builder.httpEngine] and [ApolloClient.Builder.webSocketEngine]
1415
*/
1516
@ApolloExperimental
17+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
18+
@Deprecated("apollo-engine-ktor has moved to 'com.apollographql.ktor:apollo-engine-ktor'")
1619
fun ApolloClient.Builder.ktorClient(httpClient: HttpClient) = apply {
1720
httpEngine(KtorHttpEngine(httpClient))
1821
webSocketEngine(KtorWebSocketEngine(httpClient))

libraries/apollo-engine-ktor/src/commonMain/kotlin/com/apollographql/apollo3/network/adapter/KtorHttpUrlAdapter.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.apollographql.apollo3.network.adapter
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
34
import com.apollographql.apollo3.api.Adapter
45
import com.apollographql.apollo3.api.CustomScalarAdapters
56
import com.apollographql.apollo3.api.json.JsonReader
@@ -9,6 +10,8 @@ import io.ktor.http.Url
910
/**
1011
* An [Adapter] that converts to/from [io.ktor.http.Url]
1112
*/
13+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
14+
@Deprecated("apollo-engine-ktor has moved to 'com.apollographql.ktor:apollo-engine-ktor'")
1215
object KtorHttpUrlAdapter: Adapter<Url> {
1316
override fun fromJson(reader: JsonReader, customScalarAdapters: CustomScalarAdapters): Url {
1417
return Url(reader.nextString()!!)

libraries/apollo-engine-ktor/src/commonMain/kotlin/com/apollographql/apollo3/network/http/KtorHttpEngine.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.apollographql.apollo3.network.http
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
34
import com.apollographql.apollo3.annotations.ApolloExperimental
45
import com.apollographql.apollo3.annotations.ApolloInternal
56
import com.apollographql.apollo3.api.http.HttpHeader
@@ -19,6 +20,8 @@ import okio.Buffer
1920
import kotlin.coroutines.cancellation.CancellationException
2021

2122
@ApolloExperimental
23+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
24+
@Deprecated("apollo-engine-ktor has moved to 'com.apollographql.ktor:apollo-engine-ktor'")
2225
class KtorHttpEngine(
2326
private val client: HttpClient,
2427
): HttpEngine {

libraries/apollo-engine-ktor/src/commonMain/kotlin/com/apollographql/apollo3/network/ws/KtorWebSocketEngine.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.apollographql.apollo3.network.ws
22

3+
import com.apollographql.apollo3.annotations.ApolloDeprecatedSince
34
import com.apollographql.apollo3.annotations.ApolloExperimental
45
import com.apollographql.apollo3.api.http.HttpHeader
56
import com.apollographql.apollo3.exception.ApolloNetworkException
@@ -27,6 +28,8 @@ import kotlinx.coroutines.launch
2728
import okio.ByteString
2829

2930
@ApolloExperimental
31+
@ApolloDeprecatedSince(ApolloDeprecatedSince.Version.v4_0_0)
32+
@Deprecated("apollo-engine-ktor has moved to 'com.apollographql.ktor:apollo-engine-ktor'")
3033
class KtorWebSocketEngine(
3134
private val client: HttpClient,
3235
) : WebSocketEngine {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Module apollo-engine-tests
2+
3+
apollo-engine-tests contains a list of tests for implementations of `HttpEngine` and `WebSocketEngine`.
4+
5+
This should ideally be apollo-runtime test fixtures.
6+
7+
See https://youtrack.jetbrains.com/issue/KT-46899/Dynamic-test-API
8+
See https://youtrack.jetbrains.com/issue/KT-63142
9+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public final class com/apollographql/apollo3/engine/tests/All_testsKt {
2+
public static final fun runAllTests (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
3+
}
4+
5+
public final class com/apollographql/apollo3/engine/tests/GzipTestKt {
6+
public static final fun gzipTest (Lcom/apollographql/apollo3/network/http/HttpEngine;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
7+
}
8+
9+
public final class com/apollographql/apollo3/engine/tests/HttpEngineTestKt {
10+
public static final fun connectTimeout (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
11+
public static final fun errorWithBody (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
12+
public static final fun headers (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
13+
public static final fun post (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
14+
public static final fun readTimeout (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
15+
}
16+
17+
public final class com/apollographql/apollo3/engine/tests/WebSocketEngineTestKt {
18+
public static final fun binaryFrames (Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
19+
public static final fun headers (Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
20+
public static final fun serverCloseAbruptly (Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
21+
public static final fun serverCloseNicely (Lkotlin/jvm/functions/Function0;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
22+
public static final fun textFrames (Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
23+
}
24+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Klib ABI Dump
2+
// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosSimulatorArm64]
3+
// Rendering settings:
4+
// - Signature version: 2
5+
// - Show manifest properties: true
6+
// - Show declarations: true
7+
8+
// Library unique name: <com.apollographql.apollo3:apollo-engine-tests>
9+
final suspend fun com.apollographql.apollo3.engine.tests/binaryFrames(kotlin/Function0<com.apollographql.apollo3.network.ws/WebSocketEngine>) // com.apollographql.apollo3.engine.tests/binaryFrames|binaryFrames(kotlin.Function0<com.apollographql.apollo3.network.ws.WebSocketEngine>){}[0]
10+
final suspend fun com.apollographql.apollo3.engine.tests/connectTimeout(kotlin/Function1<kotlin/Long, com.apollographql.apollo3.network.http/HttpEngine>): com.apollographql.apollo3.exception/ApolloException // com.apollographql.apollo3.engine.tests/connectTimeout|connectTimeout(kotlin.Function1<kotlin.Long,com.apollographql.apollo3.network.http.HttpEngine>){}[0]
11+
final suspend fun com.apollographql.apollo3.engine.tests/errorWithBody(kotlin/Function1<kotlin/Long, com.apollographql.apollo3.network.http/HttpEngine>) // com.apollographql.apollo3.engine.tests/errorWithBody|errorWithBody(kotlin.Function1<kotlin.Long,com.apollographql.apollo3.network.http.HttpEngine>){}[0]
12+
final suspend fun com.apollographql.apollo3.engine.tests/gzipTest(com.apollographql.apollo3.network.http/HttpEngine) // com.apollographql.apollo3.engine.tests/gzipTest|gzipTest(com.apollographql.apollo3.network.http.HttpEngine){}[0]
13+
final suspend fun com.apollographql.apollo3.engine.tests/headers(kotlin/Function0<com.apollographql.apollo3.network.ws/WebSocketEngine>) // com.apollographql.apollo3.engine.tests/headers|headers(kotlin.Function0<com.apollographql.apollo3.network.ws.WebSocketEngine>){}[0]
14+
final suspend fun com.apollographql.apollo3.engine.tests/headers(kotlin/Function1<kotlin/Long, com.apollographql.apollo3.network.http/HttpEngine>) // com.apollographql.apollo3.engine.tests/headers|headers(kotlin.Function1<kotlin.Long,com.apollographql.apollo3.network.http.HttpEngine>){}[0]
15+
final suspend fun com.apollographql.apollo3.engine.tests/post(kotlin/Function1<kotlin/Long, com.apollographql.apollo3.network.http/HttpEngine>) // com.apollographql.apollo3.engine.tests/post|post(kotlin.Function1<kotlin.Long,com.apollographql.apollo3.network.http.HttpEngine>){}[0]
16+
final suspend fun com.apollographql.apollo3.engine.tests/readTimeout(kotlin/Function1<kotlin/Long, com.apollographql.apollo3.network.http/HttpEngine>): com.apollographql.apollo3.exception/ApolloException // com.apollographql.apollo3.engine.tests/readTimeout|readTimeout(kotlin.Function1<kotlin.Long,com.apollographql.apollo3.network.http.HttpEngine>){}[0]
17+
final suspend fun com.apollographql.apollo3.engine.tests/runAllTests(kotlin/Function1<kotlin/Long, com.apollographql.apollo3.network.http/HttpEngine>, kotlin/Function0<com.apollographql.apollo3.network.ws/WebSocketEngine>, kotlin/Boolean) // com.apollographql.apollo3.engine.tests/runAllTests|runAllTests(kotlin.Function1<kotlin.Long,com.apollographql.apollo3.network.http.HttpEngine>;kotlin.Function0<com.apollographql.apollo3.network.ws.WebSocketEngine>;kotlin.Boolean){}[0]
18+
final suspend fun com.apollographql.apollo3.engine.tests/serverCloseAbruptly(kotlin/Function0<com.apollographql.apollo3.network.ws/WebSocketEngine>) // com.apollographql.apollo3.engine.tests/serverCloseAbruptly|serverCloseAbruptly(kotlin.Function0<com.apollographql.apollo3.network.ws.WebSocketEngine>){}[0]
19+
final suspend fun com.apollographql.apollo3.engine.tests/serverCloseNicely(kotlin/Function0<com.apollographql.apollo3.network.ws/WebSocketEngine>, kotlin/Boolean) // com.apollographql.apollo3.engine.tests/serverCloseNicely|serverCloseNicely(kotlin.Function0<com.apollographql.apollo3.network.ws.WebSocketEngine>;kotlin.Boolean){}[0]
20+
final suspend fun com.apollographql.apollo3.engine.tests/textFrames(kotlin/Function0<com.apollographql.apollo3.network.ws/WebSocketEngine>) // com.apollographql.apollo3.engine.tests/textFrames|textFrames(kotlin.Function0<com.apollographql.apollo3.network.ws.WebSocketEngine>){}[0]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
plugins {
2+
id("org.jetbrains.kotlin.multiplatform")
3+
}
4+
5+
apolloLibrary(
6+
namespace = "com.apollographql.apollo3.engine.tests",
7+
withLinux = false,
8+
)
9+
10+
kotlin {
11+
sourceSets {
12+
findByName("commonMain")?.apply {
13+
dependencies {
14+
api(project(":apollo-runtime"))
15+
implementation(libs.kotlin.test)
16+
implementation(libs.apollo.mockserver)
17+
}
18+
}
19+
findByName("commonTest")?.apply {
20+
dependencies {
21+
implementation(project(":apollo-testing-support"))
22+
}
23+
}
24+
findByName("jvmTest")?.apply {
25+
dependencies {
26+
implementation(libs.kotlin.test.junit)
27+
}
28+
}
29+
}
30+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
POM_NAME=Apollo Engine Tests
2+
POM_DESCRIPTION=Tests for Apollo engines
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.apollographql.apollo3.engine.tests
2+
3+
internal actual fun platform(): Platform {
4+
return Platform.Native
5+
}

0 commit comments

Comments
 (0)