diff --git a/src/main/java/it/smartphonecombo/uecapabilityparser/server/JavalinApp.kt b/src/main/java/it/smartphonecombo/uecapabilityparser/server/JavalinApp.kt index e615bebc..d659020e 100644 --- a/src/main/java/it/smartphonecombo/uecapabilityparser/server/JavalinApp.kt +++ b/src/main/java/it/smartphonecombo/uecapabilityparser/server/JavalinApp.kt @@ -41,7 +41,6 @@ class JavalinApp { private val maxOutputCache = Config.getOrDefault("cache", "0").toInt().takeIf { it >= 0 } private val store = Config["store"] private var index = LibraryIndex(mutableListOf()) - var app: Javalin init { if (store != null) { @@ -55,11 +54,10 @@ class JavalinApp { } } } - app = createJavalin() } - private fun createJavalin(): Javalin { - val app = + fun newServer(): Javalin { + val server = Javalin.create { config -> config.compression.gzipOnly(4) config.http.prefer405over404 = true @@ -83,7 +81,7 @@ class JavalinApp { } } - app.exception(Exception::class.java) { e, ctx -> + server.exception(Exception::class.java) { e, ctx -> e.printStackTrace() if (e is IllegalArgumentException || e is NullPointerException) { ctx.badRequest() @@ -92,15 +90,15 @@ class JavalinApp { } } - app.error(HttpStatus.NOT_FOUND) { ctx -> + server.error(HttpStatus.NOT_FOUND) { ctx -> if (html404 != null) { ctx.contentType(ContentType.HTML) ctx.result(html404) } } - app.routes(buildRoutes(store, index, compression)) - return app + server.routes(buildRoutes(store, index, compression)) + return server } private suspend fun reparseLibrary( diff --git a/src/main/java/it/smartphonecombo/uecapabilityparser/server/ServerMode.kt b/src/main/java/it/smartphonecombo/uecapabilityparser/server/ServerMode.kt index c795ba10..1fc04365 100644 --- a/src/main/java/it/smartphonecombo/uecapabilityparser/server/ServerMode.kt +++ b/src/main/java/it/smartphonecombo/uecapabilityparser/server/ServerMode.kt @@ -7,7 +7,7 @@ object ServerMode { * used by the server (useful for input 0) */ fun run(port: Int): Int { - val app = JavalinApp().app + val app = JavalinApp().newServer() app.start(port) Runtime.getRuntime().addShutdownHook(Thread { app.stop() }) return app.port() diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCompressionTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCompressionTest.kt index eba4ee11..95f661f2 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCompressionTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCompressionTest.kt @@ -122,7 +122,7 @@ internal class ServerModeCompressionTest { json: Boolean = true, gzip: Boolean = false ) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(HttpStatus.OK.code, response.code) val actualText = response.body?.string() ?: "" @@ -140,7 +140,7 @@ internal class ServerModeCompressionTest { } private fun storeTest(url: String, request: JsonObject, oraclePath: String) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.post(url, request) Assertions.assertEquals(HttpStatus.OK.code, response.code) capabilitiesAssertEquals( diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCsvTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCsvTest.kt index 38bef2b1..81e6445c 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCsvTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeCsvTest.kt @@ -11,7 +11,7 @@ import org.junit.jupiter.api.Test internal class ServerModeCsvTest { private val path = "src/test/resources/server" - private val app = JavalinApp().app + private val app = JavalinApp().newServer() private val endpoint = arrayOf("/csv/", "/csv").random() @Test diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeFilterTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeFilterTest.kt index 2d7d2938..176a00c7 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeFilterTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeFilterTest.kt @@ -1,6 +1,5 @@ package it.smartphonecombo.uecapabilityparser.server -import io.javalin.Javalin import io.javalin.http.HttpStatus import io.javalin.testtools.JavalinTest import it.smartphonecombo.uecapabilityparser.extension.custom @@ -41,7 +40,6 @@ import org.junit.jupiter.api.TestMethodOrder @TestMethodOrder(MethodOrderer.OrderAnnotation::class) internal class ServerModeFilterTest { private val endpoint = arrayOf("/store/list/filtered/", "/store/list/filtered").random() - private var app: Javalin = JavalinApp().app @Test fun emptyResult() { @@ -303,7 +301,7 @@ internal class ServerModeFilterTest { } private fun javalinTest(request: JsonObject, oraclePath: String) { - JavalinTest.test(app) { _, client -> + JavalinTest.test(app.newServer()) { _, client -> val response = client.post(endpoint, request) Assertions.assertEquals(HttpStatus.OK.code, response.code) @@ -315,7 +313,7 @@ internal class ServerModeFilterTest { } private fun javalinErrorTest(request: JsonObject, errorCode: Int) { - JavalinTest.test(app) { _, client -> + JavalinTest.test(app.newServer()) { _, client -> val response = client.post(endpoint, request) Assertions.assertEquals(errorCode, response.code) } @@ -323,11 +321,14 @@ internal class ServerModeFilterTest { companion object { private val path = "src/test/resources/server/" + private lateinit var app: JavalinApp @JvmStatic @BeforeAll fun setup() { Config["store"] = "$path/inputForQuery/" + Config["cache"] = "100" + app = JavalinApp() } @JvmStatic diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiPartParseTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiPartParseTest.kt index 828dc2cf..442d1c19 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiPartParseTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiPartParseTest.kt @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test internal class ServerModeMultiPartParseTest { private val inputPath = "src/test/resources/cli/input/" private val oraclePath = "src/test/resources/server/oracleForMultiParse/" - private val app = JavalinApp().app + private val app = JavalinApp().newServer() private val endpoint = arrayOf("/parse/multiPart", "/parse/multiPart/").random() @Test diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiStoreTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiStoreTest.kt index 8ffb8a4c..d0fd6190 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiStoreTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeMultiStoreTest.kt @@ -240,7 +240,7 @@ internal class ServerModeMultiStoreTest { } private fun getTest(url: String, oraclePath: String, json: Boolean = true) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(HttpStatus.OK.code, response.code) val actualText = response.body?.string() ?: "" @@ -262,7 +262,7 @@ internal class ServerModeMultiStoreTest { files: List, oraclePath: String ) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.request( UtilityForTests.multiPartRequest(client.origin + url, request, files) @@ -328,7 +328,7 @@ internal class ServerModeMultiStoreTest { } private fun getTestError(url: String, statusCode: Int) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(statusCode, response.code) } diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeOthersTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeOthersTest.kt index 70459234..9c03c3a0 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeOthersTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeOthersTest.kt @@ -118,7 +118,7 @@ internal class ServerModeOthersTest { } private fun getTest(url: String, oracle: JsonElement) { - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(HttpStatus.OK.code, response.code) val actualText = response.body?.string() ?: "" @@ -128,7 +128,7 @@ internal class ServerModeOthersTest { } private fun getTestText(url: String, oracle: String) { - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(HttpStatus.OK.code, response.code) val actualText = response.body?.string() ?: "" diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeParseTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeParseTest.kt index a1265b01..4b494d8d 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeParseTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeParseTest.kt @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test // This uses the same inputs and oracles of CliJsonOutputTest internal class ServerModeParseTest { private val path = "src/test/resources/cli" - private val app = JavalinApp().app + private val app = JavalinApp().newServer() private val base64 = Base64.getEncoder() private val endpoint = arrayOf("/parse/", "/parse").random() diff --git a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeStoreTest.kt b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeStoreTest.kt index afc8c264..f0786759 100644 --- a/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeStoreTest.kt +++ b/src/test/java/it/smartphonecombo/uecapabilityparser/server/ServerModeStoreTest.kt @@ -187,7 +187,7 @@ internal class ServerModeStoreTest { } private fun getTest(url: String, oraclePath: String, json: Boolean = true) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(HttpStatus.OK.code, response.code) val actualText = response.body?.string() ?: "" @@ -203,13 +203,13 @@ internal class ServerModeStoreTest { } private fun getTestError(url: String, statusCode: Int) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.get(url) Assertions.assertEquals(statusCode, response.code) } private fun storeTest(url: String, request: JsonObject, oraclePath: String) = - JavalinTest.test(JavalinApp().app) { _, client -> + JavalinTest.test(JavalinApp().newServer()) { _, client -> val response = client.post(url, request) Assertions.assertEquals(HttpStatus.OK.code, response.code) capabilitiesAssertEquals(File(oraclePath).readText(), response.body?.string() ?: "")