Leonid Stashevsky 3 жил өмнө
parent
commit
0242129c0d

+ 4 - 3
frameworks/Kotlin/ktor/ktor-pgclient/build.gradle.kts

@@ -1,7 +1,7 @@
 plugins {
     application
     kotlin("jvm") version "1.6.10"
-    id("org.jetbrains.kotlin.plugin.serialization") version "1.6.10"
+    id("org.jetbrains.kotlin.plugin.serialization") version "1.6.21"
     id("com.github.johnrengelman.shadow") version "7.1.2"
 }
 
@@ -19,8 +19,9 @@ application {
 dependencies {
     implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
     implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2")
-    implementation("io.ktor:ktor-server-netty:1.6.7")
-    implementation("io.ktor:ktor-html-builder:1.6.7")
+    implementation("io.ktor:ktor-server-netty:2.0.1")
+    implementation("io.ktor:ktor-server-html-builder-jvm:2.0.1")
+    implementation("io.ktor:ktor-server-default-headers-jvm:2.0.1")
     implementation("io.vertx:vertx-pg-client:4.2.3")
     implementation("io.vertx:vertx-lang-kotlin:4.2.3")
     implementation("io.vertx:vertx-lang-kotlin-coroutines:4.2.3")

+ 1 - 1
frameworks/Kotlin/ktor/ktor-pgclient/gradle/wrapper/gradle-wrapper.properties

@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

+ 7 - 16
frameworks/Kotlin/ktor/ktor-pgclient/src/main/kotlin/main.kt

@@ -1,25 +1,17 @@
-import io.ktor.application.*
-import io.ktor.features.*
-import io.ktor.html.*
 import io.ktor.http.*
-import io.ktor.response.*
-import io.ktor.routing.*
+import io.ktor.server.application.*
 import io.ktor.server.engine.*
+import io.ktor.server.html.*
 import io.ktor.server.netty.*
+import io.ktor.server.plugins.defaultheaders.*
+import io.ktor.server.response.*
+import io.ktor.server.routing.*
 import io.vertx.kotlin.coroutines.await
 import io.vertx.pgclient.PgConnectOptions
 import io.vertx.pgclient.PgPool
 import io.vertx.sqlclient.PoolOptions
 import io.vertx.sqlclient.Tuple
-import kotlinx.html.HTML
-import kotlinx.html.HtmlBlockTag
-import kotlinx.html.body
-import kotlinx.html.head
-import kotlinx.html.table
-import kotlinx.html.td
-import kotlinx.html.th
-import kotlinx.html.title
-import kotlinx.html.tr
+import kotlinx.html.*
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.builtins.ListSerializer
 import kotlinx.serialization.json.Json
@@ -58,7 +50,6 @@ class PgclientRepository : Repository {
     private val client = ThreadLocal.withInitial { PgPool.client(connectOptions, poolOptions) }
     private fun client() = client.get()
 
-
     override suspend fun getFortunes(): List<Fortune> {
         val results = client().preparedQuery("select id, message from fortune").execute().await()
         return results.map { Fortune(it.getInteger(0), it.getString(1)) }
@@ -106,7 +97,7 @@ class MainTemplate : Template<HTML> {
 class FortuneTemplate(
     private val fortunes: List<Fortune>,
     private val main: MainTemplate = MainTemplate()
-): Template<HTML> {
+) : Template<HTML> {
     override fun HTML.apply() {
         insert(main) {
             content {

+ 20 - 16
frameworks/Kotlin/ktor/ktor/pom.xml

@@ -12,9 +12,9 @@
     <name>org.jetbrains.ktor tech-empower-framework-benchmark</name>
 
     <properties>
-        <kotlin.version>1.5.21</kotlin.version>
-        <ktor.version>1.6.1</ktor.version>
-        <serialization.version>1.2.2</serialization.version>
+        <kotlin.version>1.6.21</kotlin.version>
+        <ktor.version>2.0.1</ktor.version>
+        <serialization.version>1.3.2</serialization.version>
         <kotlinx.html.version>0.7.3</kotlinx.html.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <hikaricp.version>5.0.0</hikaricp.version>
@@ -49,25 +49,14 @@
             <artifactId>kotlinx-html-jvm</artifactId>
             <version>${kotlinx.html.version}</version>
         </dependency>
-
-        <dependency>
-            <groupId>io.ktor</groupId>
-            <artifactId>ktor-server-netty</artifactId>
-            <version>${ktor.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.ktor</groupId>
-            <artifactId>ktor-server-jetty</artifactId>
-            <version>${ktor.version}</version>
-        </dependency>
         <dependency>
             <groupId>io.ktor</groupId>
-            <artifactId>ktor-server-cio</artifactId>
+            <artifactId>ktor-server-default-headers-jvm</artifactId>
             <version>${ktor.version}</version>
         </dependency>
         <dependency>
             <groupId>io.ktor</groupId>
-            <artifactId>ktor-html-builder</artifactId>
+            <artifactId>ktor-server-html-builder-jvm</artifactId>
             <version>${ktor.version}</version>
         </dependency>
         <dependency>
@@ -93,6 +82,21 @@
             <artifactId>logback-classic</artifactId>
             <version>${logback.version}</version>
         </dependency>
+        <dependency>
+            <groupId>io.ktor</groupId>
+            <artifactId>ktor-server-netty-jvm</artifactId>
+            <version>2.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.ktor</groupId>
+            <artifactId>ktor-server-jetty-jvm</artifactId>
+            <version>2.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.ktor</groupId>
+            <artifactId>ktor-server-cio-jvm</artifactId>
+            <version>2.0.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 18 - 17
frameworks/Kotlin/ktor/ktor/src/main/kotlin/org/jetbrains/ktor/benchmarks/Hello.kt

@@ -1,19 +1,22 @@
 package org.jetbrains.ktor.benchmarks
 
-import com.zaxxer.hikari.*
-import io.ktor.application.*
-import io.ktor.features.*
-import io.ktor.html.*
+import com.zaxxer.hikari.HikariConfig
+import com.zaxxer.hikari.HikariDataSource
 import io.ktor.http.*
 import io.ktor.http.content.*
-import io.ktor.response.*
-import io.ktor.routing.*
-import kotlinx.coroutines.*
+import io.ktor.server.application.*
+import io.ktor.server.html.*
+import io.ktor.server.plugins.defaultheaders.*
+import io.ktor.server.response.*
+import io.ktor.server.routing.*
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
 import kotlinx.html.*
-import kotlinx.serialization.*
-import kotlinx.serialization.builtins.*
-import kotlinx.serialization.json.*
-import java.util.concurrent.*
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.builtins.ListSerializer
+import kotlinx.serialization.encodeToString
+import kotlinx.serialization.json.Json
+import java.util.concurrent.ThreadLocalRandom
 
 @Serializable
 data class Message(val message: String)
@@ -74,7 +77,8 @@ fun Application.main() {
                 when (queries) {
                     null -> Json.encodeToString(worldSerializer, result.single())
                     else -> Json.encodeToString(worldListSerializer, result)
-                }, ContentType.Application.Json, HttpStatusCode.OK
+                },
+                ContentType.Application.Json, HttpStatusCode.OK
             )
         }
 
@@ -106,7 +110,6 @@ fun Application.main() {
                                 td { +fortune.id.toString() }
                                 td { +fortune.message }
                             }
-
                         }
                     }
                 }
@@ -130,7 +133,6 @@ fun Application.main() {
                                 }
                             }
                         }
-
                     }
 
                     result.forEach { it.randomNumber = random.nextInt(dbRows) + 1 }
@@ -144,7 +146,6 @@ fun Application.main() {
                                 updateStatement.executeUpdate()
                             }
                         }
-
                 }
             }
 
@@ -152,7 +153,8 @@ fun Application.main() {
                 when (queries) {
                     null -> Json.encodeToString(worldSerializer, result.single())
                     else -> Json.encodeToString(worldListSerializer, result)
-                }, ContentType.Application.Json, HttpStatusCode.OK
+                },
+                ContentType.Application.Json, HttpStatusCode.OK
             )
         }
     }
@@ -189,4 +191,3 @@ fun ApplicationCall.queries() = try {
 } catch (nfe: NumberFormatException) {
     1
 }
-