Add benchmarks for kotlin-graphql library.

This library uses Spring plus kapt.

^KT-49921 In Progress
This commit is contained in:
Yahor Berdnikau
2022-01-10 15:01:23 +01:00
committed by Space
parent ee9965a139
commit 4fe27cce07
4 changed files with 198 additions and 0 deletions
@@ -0,0 +1,38 @@
diff --git a/gradle.properties b/gradle.properties
index c230ac55..0709e478 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,7 +15,7 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError
# dependencies
kotlinJvmVersion = 1.8
-kotlinVersion = 1.5.31
+kotlinVersion = 1.6.10
kotlinCoroutinesVersion = 1.5.2
kotlinxSerializationVersion = 1.3.0
diff --git a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt
index 871ffd39..c886f705 100644
--- a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt
+++ b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt
@@ -38,7 +38,6 @@ open class SpringDataFetcher(
private val applicationContext: ApplicationContext
) : FunctionDataFetcher(target, fn, objectMapper) {
- @ExperimentalStdlibApi
override fun mapParameterToValue(param: KParameter, environment: DataFetchingEnvironment): Pair<KParameter, Any?>? =
if (param.hasAnnotation<Autowired>()) {
val qualifier = param.findAnnotation<Qualifier>()?.value
diff --git a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt
index e8939483..5edb33f5 100644
--- a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt
+++ b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt
@@ -30,7 +30,7 @@ class SubscriptionWebSocketHandler(
private val objectMapper: ObjectMapper
) : WebSocketHandler {
- @ExperimentalCoroutinesApi
+ @OptIn(ExperimentalCoroutinesApi::class)
@Suppress("ForbiddenVoid")
override fun handle(session: WebSocketSession): Mono<Void> {
val response = session.receive()
@@ -0,0 +1,80 @@
diff --git a/build.gradle.kts b/build.gradle.kts
index ddc94d0f..d2f5b2f8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -21,19 +21,15 @@ plugins {
allprojects {
buildscript {
repositories {
- mavenCentral()
mavenLocal()
+ mavenCentral()
}
}
repositories {
+ mavenLocal()
mavenCentral()
google()
- mavenLocal {
- content {
- includeGroup("com.expediagroup")
- }
- }
}
}
diff --git a/gradle.properties b/gradle.properties
index c230ac55..cf0412e9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,7 +15,7 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError
# dependencies
kotlinJvmVersion = 1.8
-kotlinVersion = 1.5.31
+kotlinVersion = <kotlin_version>
kotlinCoroutinesVersion = 1.5.2
kotlinxSerializationVersion = 1.3.0
diff --git a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt
index 871ffd39..c886f705 100644
--- a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt
+++ b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/execution/SpringDataFetcher.kt
@@ -38,7 +38,6 @@ open class SpringDataFetcher(
private val applicationContext: ApplicationContext
) : FunctionDataFetcher(target, fn, objectMapper) {
- @ExperimentalStdlibApi
override fun mapParameterToValue(param: KParameter, environment: DataFetchingEnvironment): Pair<KParameter, Any?>? =
if (param.hasAnnotation<Autowired>()) {
val qualifier = param.findAnnotation<Qualifier>()?.value
diff --git a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt
index e8939483..5edb33f5 100644
--- a/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt
+++ b/servers/graphql-kotlin-spring-server/src/main/kotlin/com/expediagroup/graphql/server/spring/subscriptions/SubscriptionWebSocketHandler.kt
@@ -30,7 +30,7 @@ class SubscriptionWebSocketHandler(
private val objectMapper: ObjectMapper
) : WebSocketHandler {
- @ExperimentalCoroutinesApi
+ @OptIn(ExperimentalCoroutinesApi::class)
@Suppress("ForbiddenVoid")
override fun handle(session: WebSocketSession): Mono<Void> {
val response = session.receive()
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 1a1329f8..c8aba3da 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -8,6 +8,11 @@ pluginManagement {
val pluginPublishPluginVersion: String by settings
val springBootVersion: String by settings
+ repositories {
+ mavenLocal()
+ gradlePluginPortal()
+ }
+
plugins {
kotlin("jvm") version kotlinVersion
kotlin("kapt") version kotlinVersion