Browse Source

Update Ktor to 1.6.1 (#6734)

Leonid Stashevsky 4 years ago
parent
commit
1466e54a83

+ 22 - 52
frameworks/Kotlin/ktor/ktor/pom.xml

@@ -12,14 +12,15 @@
     <name>org.jetbrains.ktor tech-empower-framework-benchmark</name>
     <name>org.jetbrains.ktor tech-empower-framework-benchmark</name>
 
 
     <properties>
     <properties>
-        <kotlin.version>1.4.0</kotlin.version>
-        <ktor.version>1.4.0</ktor.version>
-        <serialization.runtime>1.0.0-RC</serialization.runtime>
+        <kotlin.version>1.5.21</kotlin.version>
+        <ktor.version>1.6.1</ktor.version>
+        <serialization.version>1.2.2</serialization.version>
+        <kotlinx.html.version>0.7.3</kotlinx.html.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <hikaricp.version>3.2.0</hikaricp.version>
-        <logback.version>1.2.3</logback.version>
-        <mysql.version>8.0.18</mysql.version>
-        <postgresql.version>42.2.5</postgresql.version>
+        <hikaricp.version>5.0.0</hikaricp.version>
+        <logback.version>1.2.4</logback.version>
+        <mysql.version>8.0.25</mysql.version>
+        <postgresql.version>42.2.23</postgresql.version>
     </properties>
     </properties>
 
 
     <dependencies>
     <dependencies>
@@ -36,7 +37,17 @@
         <dependency>
         <dependency>
             <groupId>org.jetbrains.kotlinx</groupId>
             <groupId>org.jetbrains.kotlinx</groupId>
             <artifactId>kotlinx-serialization-core</artifactId>
             <artifactId>kotlinx-serialization-core</artifactId>
-            <version>${serialization.runtime}</version>
+            <version>${serialization.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jetbrains.kotlinx</groupId>
+            <artifactId>kotlinx-serialization-json</artifactId>
+            <version>${serialization.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jetbrains.kotlinx</groupId>
+            <artifactId>kotlinx-html-jvm</artifactId>
+            <version>${kotlinx.html.version}</version>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
@@ -99,13 +110,6 @@
                         <goals>
                         <goals>
                             <goal>compile</goal>
                             <goal>compile</goal>
                         </goals>
                         </goals>
-                        <configuration>
-                            <languageVersion>1.3</languageVersion>
-                            <apiVersion>1.3</apiVersion>
-                            <args>
-                                <arg>-Xcoroutines=enable</arg>
-                            </args>
-                        </configuration>
                     </execution>
                     </execution>
                     <execution>
                     <execution>
                         <id>test-compile</id>
                         <id>test-compile</id>
@@ -159,7 +163,7 @@
                             </descriptors>
                             </descriptors>
                             <archive>
                             <archive>
                                 <manifest>
                                 <manifest>
-                                    <mainClass>io.ktor.server.cio.DevelopmentEngine</mainClass>
+                                    <mainClass>io.ktor.server.cio.EngineMain</mainClass>
                                 </manifest>
                                 </manifest>
                             </archive>
                             </archive>
                         </configuration>
                         </configuration>
@@ -178,7 +182,7 @@
                             </descriptors>
                             </descriptors>
                             <archive>
                             <archive>
                                 <manifest>
                                 <manifest>
-                                    <mainClass>io.ktor.server.netty.DevelopmentEngine</mainClass>
+                                    <mainClass>io.ktor.server.netty.EngineMain</mainClass>
                                 </manifest>
                                 </manifest>
                             </archive>
                             </archive>
                         </configuration>
                         </configuration>
@@ -197,7 +201,7 @@
                             </descriptors>
                             </descriptors>
                             <archive>
                             <archive>
                                 <manifest>
                                 <manifest>
-                                    <mainClass>io.ktor.server.jetty.DevelopmentEngine</mainClass>
+                                    <mainClass>io.ktor.server.jetty.EngineMain</mainClass>
                                 </manifest>
                                 </manifest>
                             </archive>
                             </archive>
                         </configuration>
                         </configuration>
@@ -206,38 +210,4 @@
             </plugin>
             </plugin>
         </plugins>
         </plugins>
     </build>
     </build>
-
-    <repositories>
-        <repository>
-            <id>ktor-repo</id>
-            <url>https://kotlin.bintray.com/ktor</url>
-        </repository>
-        <repository>
-            <id>jcenter</id>
-            <url>https://jcenter.bintray.com/</url>
-        </repository>
-        <repository>
-            <id>bintray-kotlin-kotlinx</id>
-            <name>bintray</name>
-            <url>https://kotlin.bintray.com/kotlinx</url>
-        </repository>
-        <repository>
-            <id>bintray-kotlin-eap</id>
-            <name>bintray</name>
-            <url>https://kotlin.bintray.com/kotlin-eap</url>
-        </repository>
-    </repositories>
-    <pluginRepositories>
-        <pluginRepository>
-            <id>bintray-kotlin-kotlinx-plugins</id>
-            <name>bintray-plugins</name>
-            <url>https://kotlin.bintray.com/kotlinx</url>
-        </pluginRepository>
-        <pluginRepository>
-            <id>bintray-kotlin-eap</id>
-            <name>bintray</name>
-            <url>https://kotlin.bintray.com/kotlin-eap</url>
-        </pluginRepository>
-    </pluginRepositories>
-
 </project>
 </project>

+ 7 - 6
frameworks/Kotlin/ktor/ktor/src/main/kotlin/org/jetbrains/ktor/benchmarks/Hello.kt

@@ -9,16 +9,14 @@ import io.ktor.http.content.*
 import io.ktor.response.*
 import io.ktor.response.*
 import io.ktor.routing.*
 import io.ktor.routing.*
 import kotlinx.coroutines.*
 import kotlinx.coroutines.*
-import kotlinx.coroutines.scheduling.*
 import kotlinx.html.*
 import kotlinx.html.*
 import kotlinx.serialization.*
 import kotlinx.serialization.*
 import kotlinx.serialization.builtins.*
 import kotlinx.serialization.builtins.*
 import kotlinx.serialization.json.*
 import kotlinx.serialization.json.*
-import java.util.*
 import java.util.concurrent.*
 import java.util.concurrent.*
 
 
 @Serializable
 @Serializable
-data class Message(val message: String = "Hello, World!")
+data class Message(val message: String)
 
 
 @Serializable
 @Serializable
 data class World(val id: Int, var randomNumber: Int)
 data class World(val id: Int, var randomNumber: Int)
@@ -26,7 +24,6 @@ data class World(val id: Int, var randomNumber: Int)
 @Serializable
 @Serializable
 data class Fortune(val id: Int, var message: String)
 data class Fortune(val id: Int, var message: String)
 
 
-@OptIn(InternalCoroutinesApi::class)
 fun Application.main() {
 fun Application.main() {
     val worldSerializer = World.serializer()
     val worldSerializer = World.serializer()
     val worldListSerializer = ListSerializer(World.serializer())
     val worldListSerializer = ListSerializer(World.serializer())
@@ -34,7 +31,7 @@ fun Application.main() {
     val dbRows = 10000
     val dbRows = 10000
     val poolSize = 48
     val poolSize = 48
     val pool by lazy { HikariDataSource(HikariConfig().apply { configurePostgres(poolSize) }) }
     val pool by lazy { HikariDataSource(HikariConfig().apply { configurePostgres(poolSize) }) }
-    val databaseDispatcher by lazy { ExperimentalCoroutineDispatcher().blocking(poolSize) }
+    val databaseDispatcher = Dispatchers.IO
 
 
     install(DefaultHeaders)
     install(DefaultHeaders)
 
 
@@ -46,7 +43,11 @@ fun Application.main() {
         }
         }
 
 
         get("/json") {
         get("/json") {
-            call.respondText(Json.encodeToString(Message()), ContentType.Application.Json, HttpStatusCode.OK)
+            call.respondText(
+                Json.encodeToString(Message("Hello, world!")),
+                ContentType.Application.Json,
+                HttpStatusCode.OK
+            )
         }
         }
 
 
         get("/db") {
         get("/db") {