Browse Source

Updates to YouI Integration (#6146)

* Updated dependencies

* Improvements to process

Co-authored-by: Matt Hicks <[email protected]>
Matt Hicks 4 years ago
parent
commit
30bd32aa66

+ 8 - 7
frameworks/Scala/youi/build.sbt

@@ -1,11 +1,12 @@
-name := """youi-server"""
-
+name := "youi-server"
 version := "1.0"
-
-scalaVersion := "2.12.8"
+scalaVersion := "2.13.3"
 
 libraryDependencies ++= Seq(
-  "io.youi" %% "youi-server-undertow" % "0.10.3",
-  "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-core" % "0.39.0",
-  "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-macros" % "0.39.0" % Provided
+  "io.youi" %% "youi-server" % "0.13.17",
+  "io.youi" %% "youi-server-undertow" % "0.13.17",
+  "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-core" % "2.6.2",
+  "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-macros" % "2.6.2" % "compile-internal"
 )
+
+enablePlugins(PackPlugin)

+ 1 - 1
frameworks/Scala/youi/project/build.properties

@@ -1 +1 @@
-sbt.version=1.1.2
+sbt.version=1.4.2

+ 1 - 1
frameworks/Scala/youi/project/plugins.sbt

@@ -1 +1 @@
-addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
+addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.13")

+ 13 - 10
frameworks/Scala/youi/src/main/scala/example/Main.scala

@@ -10,17 +10,20 @@ import io.youi.server.dsl._
 case class Message(message: String)
 
 object Message {
-  implicit val codec: JsonValueCodec[Message] = JsonCodecMaker.make[Message](CodecMakerConfig())
+  implicit val codec: JsonValueCodec[Message] = JsonCodecMaker.make
 }
 
-object Main extends App {
-  new UndertowServerImplementation(new Server {
-    handler(
-      filters(
-        path"/plaintext" / StringContent("Hello, World!", ContentType.`text/plain`),
-        path"/json" / BytesContent(writeToArray(Message("Hello, World!")), ContentType.`application/json`)
+object Main {
+  def main(args: Array[String]): Unit = {
+    val server = new UndertowServerImplementation(new Server {
+      handler(
+        filters(
+          path"/plaintext" / StringContent("Hello, World!", ContentType.`text/plain`),
+          path"/json" / BytesContent(writeToArray(Message("Hello, World!")), ContentType.`application/json`)
+        )
       )
-    )
-    config.clearListeners().addHttpListener("0.0.0.0")
-  }).start()
+      config.clearListeners().addHttpListener("0.0.0.0")
+    })
+    server.start()
+  }
 }

+ 3 - 2
frameworks/Scala/youi/youi.dockerfile

@@ -3,5 +3,6 @@ WORKDIR /youi
 COPY project project
 COPY src src
 COPY build.sbt build.sbt
-RUN sbt assembly -batch
-CMD ["java", "-server", "-Xms1g", "-Xmx1g", "-XX:NewSize=512m", "-XX:MaxNewSize=512m", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-XX:+UseNUMA", "-XX:-UseBiasedLocking", "-XX:+AlwaysPreTouch", "-jar", "target/scala-2.12/youi-server-assembly-1.0.jar"]
+RUN sbt pack
+WORKDIR /youi/target/pack
+CMD ["bin/main"]