Skip to content

Commit

Permalink
Migrate to Ktor 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
gregorbg committed May 2, 2022
1 parent 0dfe740 commit 71c0e81
Show file tree
Hide file tree
Showing 27 changed files with 95 additions and 119 deletions.
8 changes: 6 additions & 2 deletions buildSrc/src/main/kotlin/dependencies/Libraries.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@ object Libraries {
val KOTLIN_COROUTINES_CORE = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.KOTLIN_COROUTINES_CORE}"
val KTOR_SERVER_NETTY = "io.ktor:ktor-server-netty:${Versions.KTOR_SERVER_NETTY}"
val KTOR_SERVER_SERVLET = "io.ktor:ktor-server-servlet:${Versions.KTOR_SERVER_SERVLET}"
val KTOR_SERIALIZATION = "io.ktor:ktor-serialization:${Versions.KTOR_SERIALIZATION}"
val KTOR_SERVER_CONTENT_NEGOTIATION = "io.ktor:ktor-server-content-negotiation:${Versions.KTOR_SERVER_CONTENT_NEGOTIATION}"
val KTOR_SERVER_HOST_COMMON = "io.ktor:ktor-server-host-common:${Versions.KTOR_SERVER_HOST_COMMON}"
val KTOR_WEBSOCKETS = "io.ktor:ktor-websockets:${Versions.KTOR_WEBSOCKETS}"
val KTOR_SERVER_DEFAULT_HEADERS = "io.ktor:ktor-server-default-headers:${Versions.KTOR_SERVER_DEFAULT_HEADERS}"
val KTOR_SERVER_STATUS_PAGES = "io.ktor:ktor-server-status-pages:${Versions.KTOR_SERVER_STATUS_PAGES}"
val KTOR_SERVER_CORS = "io.ktor:ktor-server-cors:${Versions.KTOR_SERVER_CORS}"
val KTOR_SERVER_WEBSOCKETS = "io.ktor:ktor-server-websockets:${Versions.KTOR_SERVER_WEBSOCKETS}"
val KTOR_SERIALIZATION_KOTLINX_JSON = "io.ktor:ktor-serialization-kotlinx-json:${Versions.KTOR_SERIALIZATION_KOTLINX_JSON}"
val LOGBACK_CLASSIC = "ch.qos.logback:logback-classic:${Versions.LOGBACK_CLASSIC}"
val KOTLIN_ARGPARSER = "com.xenomachina:kotlin-argparser:${Versions.KOTLIN_ARGPARSER}"
val PROGUARD_GRADLE = "com.guardsquare:proguard-gradle:${Versions.PROGUARD_GRADLE}"
Expand Down
10 changes: 7 additions & 3 deletions buildSrc/src/main/kotlin/dependencies/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ object Versions {
val JUNIT_JUPITER = "5.8.2"
val BATIK = "1.14"
val KOTLIN = "1.6.21"
val KTOR = "1.6.1"
val KTOR = "2.0.1"
val PROGUARD = "7.2.1"
val KOTLESS = "0.1.6"

Expand All @@ -22,9 +22,13 @@ object Versions {
val KOTLIN_COROUTINES_CORE = "1.6.1"
val KTOR_SERVER_NETTY = KTOR
val KTOR_SERVER_SERVLET = KTOR
val KTOR_SERIALIZATION = KTOR
val KTOR_SERVER_CONTENT_NEGOTIATION = KTOR
val KTOR_SERVER_HOST_COMMON = KTOR
val KTOR_WEBSOCKETS = KTOR
val KTOR_SERVER_DEFAULT_HEADERS = KTOR
val KTOR_SERVER_STATUS_PAGES = KTOR
val KTOR_SERVER_CORS = KTOR
val KTOR_SERVER_WEBSOCKETS = KTOR
val KTOR_SERIALIZATION_KOTLINX_JSON = KTOR
val LOGBACK_CLASSIC = "1.2.10"
val KOTLIN_ARGPARSER = "2.0.7"
val PROGUARD_GRADLE = PROGUARD
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package org.worldcubeassociation.tnoodle.server.cloudscrambles

import io.ktor.application.Application
import io.ktor.routing.route
import io.ktor.routing.routing
import io.ktor.server.application.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.ApplicationHandler
import org.worldcubeassociation.tnoodle.server.TNoodleServer
import org.worldcubeassociation.tnoodle.server.cloudscrambles.routing.HomepageHandler
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package org.worldcubeassociation.tnoodle.server.cloudscrambles.routing

import io.ktor.application.call
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.RouteHandler

object HomepageHandler : RouteHandler {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package org.worldcubeassociation.tnoodle.server.cloudscrambles.routing

import io.ktor.application.ApplicationCall
import io.ktor.application.call
import io.ktor.response.respond
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.routing.route
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.cloudscrambles.serial.PuzzleInfoJsonData
import org.worldcubeassociation.tnoodle.server.model.PuzzleData
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
package org.worldcubeassociation.tnoodle.server.cloudscrambles.routing

import io.ktor.application.ApplicationCall
import io.ktor.application.call
import io.ktor.response.respond
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.routing.route
import kotlinx.serialization.json.JsonNull
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.model.PuzzleData

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
package org.worldcubeassociation.tnoodle.server.cloudscrambles.routing

import io.ktor.application.ApplicationCall
import io.ktor.application.call
import io.ktor.http.ContentType
import io.ktor.response.respond
import io.ktor.response.respondBytes
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.routing.route
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.apache.batik.anim.dom.SVGDOMImplementation
import org.apache.batik.transcoder.TranscoderInput
import org.apache.batik.transcoder.TranscoderOutput
Expand Down
10 changes: 8 additions & 2 deletions tnoodle-server/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ import crypto.BuildVerification.SIGNATURE_SUFFIX

import dependencies.Libraries.BOUNCYCASTLE
import dependencies.Libraries.KOTLIN_COROUTINES_CORE
import dependencies.Libraries.KTOR_SERIALIZATION
import dependencies.Libraries.KTOR_SERVER_CONTENT_NEGOTIATION
import dependencies.Libraries.KTOR_SERVER_NETTY
import dependencies.Libraries.KTOR_SERVER_HOST_COMMON
import dependencies.Libraries.KTOR_SERVER_DEFAULT_HEADERS
import dependencies.Libraries.KTOR_SERVER_CORS
import dependencies.Libraries.KTOR_SERVER_SERVLET
import dependencies.Libraries.KTOR_SERIALIZATION_KOTLINX_JSON
import dependencies.Libraries.LOGBACK_CLASSIC
import dependencies.Libraries.KOTLIN_SERIALIZATION_JSON
import dependencies.Libraries.TNOODLE_SCRAMBLES
Expand All @@ -28,12 +31,15 @@ plugins {

dependencies {
api(KTOR_SERVER_NETTY)
api(KTOR_SERVER_CONTENT_NEGOTIATION)
api(KOTLIN_SERIALIZATION_JSON)
api(KOTLIN_COROUTINES_CORE)
api(TNOODLE_SCRAMBLES)

implementation(KTOR_SERIALIZATION)
implementation(KTOR_SERIALIZATION_KOTLINX_JSON)
implementation(KTOR_SERVER_HOST_COMMON)
implementation(KTOR_SERVER_DEFAULT_HEADERS)
implementation(KTOR_SERVER_CORS)
implementation(KTOR_SERVER_SERVLET)
implementation(BOUNCYCASTLE)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.worldcubeassociation.tnoodle.server

import io.ktor.application.Application
import io.ktor.server.application.Application

interface ApplicationHandler {
fun spinUp(app: Application)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.worldcubeassociation.tnoodle.server

import io.ktor.routing.Route
import io.ktor.server.routing.Route

interface RouteHandler {
fun install(router: Route)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package org.worldcubeassociation.tnoodle.server

import io.ktor.application.Application
import io.ktor.application.install
import io.ktor.features.*
import io.ktor.http.*
import io.ktor.routing.routing
import io.ktor.serialization.json
import io.ktor.serialization.kotlinx.json.*
import io.ktor.server.application.*
import io.ktor.server.engine.ShutDownUrl
import io.ktor.server.plugins.contentnegotiation.*
import io.ktor.server.plugins.cors.routing.*
import io.ktor.server.plugins.defaultheaders.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.routing.JsEnvHandler
import org.worldcubeassociation.tnoodle.server.routing.IconHandler
import org.worldcubeassociation.tnoodle.server.routing.VersionHandler
Expand All @@ -22,7 +23,7 @@ class TNoodleServer(val environmentConfig: ServerEnvironmentConfig) : Applicatio
versionHandler.install(this)
}

app.install(ShutDownUrl.ApplicationCallFeature) {
app.install(ShutDownUrl.ApplicationCallPlugin) {
shutDownUrl = KILL_URL
exitCodeSupplier = { 0 }
}
Expand All @@ -31,7 +32,7 @@ class TNoodleServer(val environmentConfig: ServerEnvironmentConfig) : Applicatio

app.install(CORS) {
anyHost()
method(HttpMethod.Put)
allowMethod(HttpMethod.Put)
// gimme dat zesty application/json
allowNonSimpleContentTypes = true
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package org.worldcubeassociation.tnoodle.server.routing

import io.ktor.http.content.resource
import io.ktor.http.content.resources
import io.ktor.http.content.static
import io.ktor.routing.Route
import io.ktor.server.http.content.*
import io.ktor.server.routing.Route
import org.worldcubeassociation.tnoodle.server.RouteHandler

object IconHandler : RouteHandler {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package org.worldcubeassociation.tnoodle.server.routing

import io.ktor.application.call
import io.ktor.http.ContentType
import io.ktor.response.respond
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import kotlinx.serialization.builtins.MapSerializer
import kotlinx.serialization.builtins.serializer

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package org.worldcubeassociation.tnoodle.server.routing

import io.ktor.application.call
import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*

import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.ServerEnvironmentConfig
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ import java.io.*
import java.net.URISyntaxException
import java.nio.file.Files
import java.nio.file.StandardCopyOption
import java.text.SimpleDateFormat
import java.time.format.DateTimeFormatter
import java.util.Random

object WebServerUtils {
val DEVEL_VERSION = "devel-TEMP"
Expand Down
6 changes: 4 additions & 2 deletions webscrambles/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import dependencies.Libraries.BATIK_TRANSCODER
import dependencies.Libraries.BOUNCYCASTLE
import dependencies.Libraries.ITEXTPDF
import dependencies.Libraries.KOTLIN_ARGPARSER
import dependencies.Libraries.KTOR_WEBSOCKETS
import dependencies.Libraries.KTOR_SERVER_WEBSOCKETS
import dependencies.Libraries.KTOR_SERVER_STATUS_PAGES
import dependencies.Libraries.MARKDOWNJ_CORE
import dependencies.Libraries.SNAKEYAML
import dependencies.Libraries.SYSTEM_TRAY
Expand Down Expand Up @@ -59,7 +60,8 @@ dependencies {
implementation(KOTLIN_ARGPARSER)
implementation(SYSTEM_TRAY)
implementation(APACHE_COMMONS_LANG3)
implementation(KTOR_WEBSOCKETS)
implementation(KTOR_SERVER_WEBSOCKETS)
implementation(KTOR_SERVER_STATUS_PAGES)

runtimeOnly(BOUNCYCASTLE)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@ package org.worldcubeassociation.tnoodle.server.webscrambles

import com.xenomachina.argparser.ArgParser
import com.xenomachina.argparser.default
import io.ktor.application.Application
import io.ktor.application.install
import io.ktor.features.StatusPages
import io.ktor.http.HttpStatusCode
import io.ktor.routing.route
import io.ktor.routing.routing
import io.ktor.server.application.*
import io.ktor.server.engine.commandLineEnvironment
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
import io.ktor.websocket.WebSockets
import io.ktor.server.plugins.statuspages.*
import io.ktor.server.routing.*
import io.ktor.server.websocket.*
import kotlinx.serialization.SerializationException
import org.slf4j.LoggerFactory
import org.worldcubeassociation.tnoodle.server.ApplicationHandler
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing

import io.ktor.application.call
import io.ktor.response.respondRedirect
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.RouteHandler

object HomepageHandler : RouteHandler {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing

import io.ktor.application.call
import io.ktor.http.ContentType
import io.ktor.response.respondText
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.routing.route
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.markdownj.MarkdownProcessor
import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.model.PuzzleData
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing

import io.ktor.http.content.defaultResource
import io.ktor.http.content.resource
import io.ktor.http.content.resources
import io.ktor.http.content.static
import io.ktor.routing.Route
import io.ktor.server.http.content.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.RouteHandler

object StaticResourceHandler : RouteHandler {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing

import io.ktor.application.ApplicationCall
import io.ktor.http.ContentType
import io.ktor.http.cio.websocket.Frame
import io.ktor.http.cio.websocket.readText
import io.ktor.request.receive
import io.ktor.request.uri
import io.ktor.routing.Route
import io.ktor.routing.route
import io.ktor.server.application.*
import io.ktor.server.request.*
import io.ktor.server.routing.*
import io.ktor.websocket.*
import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.serial.JsonConfig
import org.worldcubeassociation.tnoodle.server.ServerEnvironmentConfig
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing.frontend

import io.ktor.application.call
import io.ktor.response.respond
import io.ktor.routing.Route
import io.ktor.routing.get
import io.ktor.routing.route
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.model.EventData
import org.worldcubeassociation.tnoodle.server.model.FormatData
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing.frontend

import io.ktor.application.call
import io.ktor.request.receive
import io.ktor.response.respond
import io.ktor.routing.*
import io.ktor.server.application.*
import io.ktor.server.request.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import kotlinx.serialization.json.JsonNull
import org.worldcubeassociation.tnoodle.server.RouteHandler
import org.worldcubeassociation.tnoodle.server.webscrambles.wcif.WCIFCompetitorInfo
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package org.worldcubeassociation.tnoodle.server.webscrambles.routing.job

import io.ktor.application.ApplicationCall
import io.ktor.application.call
import io.ktor.http.ContentType
import io.ktor.http.HttpStatusCode
import io.ktor.http.cio.websocket.*
import io.ktor.response.respond
import io.ktor.response.respondBytes
import io.ktor.routing.*
import io.ktor.websocket.webSocket
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import io.ktor.server.websocket.*
import io.ktor.websocket.*
import kotlinx.serialization.builtins.MapSerializer
import kotlinx.serialization.builtins.serializer
import org.worldcubeassociation.tnoodle.server.RouteHandler
Expand Down
Loading

0 comments on commit 71c0e81

Please sign in to comment.