├── src ├── main │ ├── resources │ │ └── META-INF │ │ │ ├── microprofile-config.properties │ │ │ └── resources │ │ │ └── index.html │ ├── kotlin │ │ └── com │ │ │ └── technincaleader │ │ │ └── rest │ │ │ └── GreetingResource.kt │ ├── scala │ │ └── com │ │ │ └── technincaleader │ │ │ └── rest │ │ │ ├── HelloWorldResource.scala │ │ │ ├── AnimalResource.scala │ │ │ └── FruitResource.scala │ └── docker │ │ └── Dockerfile └── test │ └── kotlin │ └── com │ └── technincaleader │ └── rest │ ├── NativeGreetingResourceIT.kt │ └── GreetingResourceTest.kt ├── .gitignore ├── README.md ├── pom.xml ├── rest-kotlin-scala.iml └── quarkus.log /src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | # Configuration file 2 | key = value 3 | -------------------------------------------------------------------------------- /src/test/kotlin/com/technincaleader/rest/NativeGreetingResourceIT.kt: -------------------------------------------------------------------------------- 1 | package com.technincaleader.rest 2 | 3 | import io.quarkus.test.junit.SubstrateTest 4 | 5 | 6 | @SubstrateTest 7 | open class NativeGreetingResourceIT : GreetingResourceTest() -------------------------------------------------------------------------------- /src/main/kotlin/com/technincaleader/rest/GreetingResource.kt: -------------------------------------------------------------------------------- 1 | package org.acme.rest 2 | 3 | import javax.ws.rs.GET 4 | import javax.ws.rs.Path 5 | import javax.ws.rs.Produces 6 | import javax.ws.rs.core.MediaType 7 | 8 | @Path("/greeting") 9 | class GreetingResource { 10 | 11 | @GET 12 | @Produces(MediaType.TEXT_PLAIN) 13 | fun hello() = "hello" 14 | } -------------------------------------------------------------------------------- /src/main/scala/com/technincaleader/rest/HelloWorldResource.scala: -------------------------------------------------------------------------------- 1 | package com.technincaleader.rest 2 | 3 | import javax.ws.rs.GET 4 | import javax.ws.rs.Path 5 | import javax.ws.rs.Produces 6 | import javax.ws.rs.core.MediaType 7 | 8 | @Path("/hello") 9 | class HelloWorldResource { 10 | @GET 11 | @Produces(Array[String](MediaType.TEXT_PLAIN)) 12 | def hello() = "hello_world_scala" 13 | 14 | } 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # sbt 2 | # (may want to keep parts of 'project') 3 | bin/ 4 | project/ 5 | target/ 6 | build/ 7 | 8 | # eclipse 9 | build 10 | .classpath 11 | .project 12 | .settings 13 | .worksheet 14 | 15 | # intellij idea 16 | *.log 17 | *.iml 18 | *.ipr 19 | *.iws 20 | .idea 21 | 22 | # mac 23 | .DS_Store 24 | 25 | # other? 26 | .history 27 | .scala_dependencies 28 | .cache 29 | .cache-main 30 | 31 | #general 32 | *.class 33 | -------------------------------------------------------------------------------- /src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | #### 2 | # Before building the docker image run: 3 | # 4 | # mvn package -Pnative -Dnative-image.docker-build=true 5 | # 6 | # Then, build the image with: 7 | # 8 | # docker build -f src/main/docker/Dockerfile -t quarkus/rest-kotlin . 9 | # 10 | # Then run the container using: 11 | # 12 | # docker run -i --rm -p 8080:8080 quarkus/rest-kotlin 13 | # 14 | ### 15 | FROM registry.fedoraproject.org/fedora-minimal 16 | WORKDIR /work/ 17 | COPY target/*-runner /work/application 18 | RUN chmod 775 /work 19 | EXPOSE 8080 20 | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] -------------------------------------------------------------------------------- /src/main/scala/com/technincaleader/rest/AnimalResource.scala: -------------------------------------------------------------------------------- 1 | package com.technincaleader.rest 2 | 3 | import io.quarkus.runtime.annotations.RegisterForReflection 4 | import javax.ws.rs.core.MediaType 5 | import javax.ws.rs.{GET, Path, Produces} 6 | 7 | @RegisterForReflection 8 | case class Animal(name:String, description: String) 9 | 10 | @Path("/animals") 11 | @Produces(Array[String](MediaType.APPLICATION_JSON)) 12 | class AnimalResource { 13 | import collection.JavaConverters._ 14 | 15 | private val animals = Seq( 16 | new Fruit("Tiger", "it lives in Malesia"), 17 | new Fruit("Bird", "They fly in the sky") 18 | ) 19 | 20 | 21 | 22 | 23 | @GET def list = animals.toList.asJava 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/scala/com/technincaleader/rest/FruitResource.scala: -------------------------------------------------------------------------------- 1 | package com.technincaleader.rest 2 | 3 | import java.util.Collections 4 | import java.util.LinkedHashMap 5 | import java.util.Set 6 | 7 | import io.quarkus.runtime.annotations.RegisterForReflection 8 | import javax.ws.rs.Consumes 9 | import javax.ws.rs.DELETE 10 | import javax.ws.rs.GET 11 | import javax.ws.rs.POST 12 | import javax.ws.rs.Path 13 | import javax.ws.rs.Produces 14 | import javax.ws.rs.core.MediaType 15 | 16 | 17 | 18 | @RegisterForReflection 19 | class Fruit(name:String, description:String){ 20 | def getName()= this.name 21 | def getDescription()=this.description 22 | } 23 | 24 | 25 | @Path("/fruits") 26 | @Produces(Array[String](MediaType.APPLICATION_JSON)) 27 | class FruitResource(){ 28 | import collection.JavaConverters._ 29 | 30 | private val fruits = Seq( 31 | new Fruit("Apple", "The snake's gift"), 32 | new Fruit("Orange", "What was born before: the fruit or the color?") 33 | ) 34 | 35 | 36 | 37 | 38 | @GET def list = fruits.toList.asJava 39 | } 40 | -------------------------------------------------------------------------------- /src/test/kotlin/com/technincaleader/rest/GreetingResourceTest.kt: -------------------------------------------------------------------------------- 1 | package com.technincaleader.rest 2 | 3 | import io.quarkus.test.junit.QuarkusTest 4 | import io.restassured.RestAssured.given 5 | import org.hamcrest.CoreMatchers.`is` 6 | import org.hamcrest.CoreMatchers.equalTo 7 | import org.junit.jupiter.api.Test 8 | 9 | @QuarkusTest 10 | open class GreetingResourceTest { 11 | 12 | @Test 13 | fun testHelloEndpoint() { 14 | given() 15 | .`when`().get("/greeting") 16 | .then() 17 | .statusCode(200) 18 | .body(`is`("hello")) 19 | } 20 | 21 | @Test 22 | fun testHelloScalaEndpoint() { 23 | given() 24 | .`when`().get("/hello") 25 | .then() 26 | .statusCode(200) 27 | .body(`is`("hello_world_scala")) 28 | } 29 | 30 | @Test 31 | fun testFruitEndpoint() { 32 | given() 33 | .`when`() 34 | .get("/fruits") 35 | .then() 36 | .assertThat() 37 | .statusCode(200) 38 | 39 | 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Quarkus Scala REST Quickstart 2 | ============================= 3 | 4 | This project illustrates how to use scala lang and kotlin to develop a quarkus REST service. 5 | The [quarkus.io](https://quarkus.io) is a RedHat open source framework: a Kubernetes Native Java stack tailored for GraalVM & OpenJDK HotSpot, crafted from the best of breed Java libraries and standards 6 | 7 | ## json serialization 8 | GraalVM doesn't fully support reflection, but json-B works using reflection. 9 | There is a feature of the compiler that permits to declare which class need a reflection upon at runtime. 10 | You need to provide a json file or to use this quarkus annotation @RegisterForReflection on the classes in order to enable the reflection. 11 | 12 | ## Clean and compile 13 | ``` 14 | mvn clean compile 15 | ``` 16 | 17 | ## Package 18 | ``` 19 | mvn package 20 | ``` 21 | 22 | ## Package native 23 | ``` 24 | mvn package -Pnative 25 | ``` 26 | 27 | ## Run 28 | ``` 29 | java -jar ./target/rest-scala-kotlin-1.0-SNAPSHOT-runner.jar 30 | ``` 31 | 32 | ## Test 33 | It uses kotlin to test both the kotlin and the scala rest endpoint 34 | ``` 35 | mvn test 36 | ``` 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/resources/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | rest-kotlin - 1.0-SNAPSHOT 6 | 99 | 100 | 101 | 102 | 105 | 106 |
107 |
108 |

Congratulations, you have created a new Quarkus application.

109 | 110 |

Why do you see this?

111 | 112 |

This page is served by Quarkus. The source is in 113 | src/main/resources/META-INF/resources/index.html.

114 | 115 |

What can I do from here?

116 | 117 |

If not already done, run the application in dev mode using: mvn compile quarkus:dev. 118 |

119 | 125 | 126 |

How do I get rid of this page?

127 |

Just delete the src/main/resources/META-INF/resources/index.html file.

128 |
129 |
130 |
131 |

Application

132 |
    133 |
  • GroupId: org.acme
  • 134 |
  • ArtifactId: rest-kotlin
  • 135 |
  • Version: 1.0-SNAPSHOT
  • 136 |
  • Quarkus Version: 0.11.0
  • 137 |
138 |
139 |
140 |

Next steps

141 | 146 |
147 |
148 |
149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | com.technicaleader 6 | rest-scala-kotlin 7 | 1.0-SNAPSHOT 8 | 9 | 2.22.0 10 | 0.11.0 11 | UTF-8 12 | 1.8 13 | 1.8 14 | 1.3.21 15 | 2.12.8 16 | 17 | 18 | 19 | 20 | io.quarkus 21 | quarkus-bom 22 | ${quarkus.version} 23 | pom 24 | import 25 | 26 | 27 | 28 | 29 | 30 | org.scala-lang 31 | scala-library 32 | ${scala.version} 33 | 34 | 35 | org.scala-lang 36 | scala-reflect 37 | ${scala.version} 38 | 39 | 40 | io.quarkus 41 | quarkus-resteasy 42 | 43 | 44 | io.quarkus 45 | quarkus-resteasy-jsonb 46 | 47 | 48 | io.quarkus 49 | quarkus-arc 50 | 51 | 52 | org.jetbrains.kotlin 53 | kotlin-stdlib-jdk8 54 | 55 | 56 | io.quarkus 57 | quarkus-junit5 58 | 59 | 60 | io.rest-assured 61 | rest-assured 62 | test 63 | 64 | 65 | io.quarkus 66 | quarkus-kotlin 67 | 68 | 69 | 70 | ${project.basedir}/src/main/kotlin 71 | ${project.basedir}/src/test/kotlin 72 | 73 | 74 | io.quarkus 75 | quarkus-maven-plugin 76 | ${quarkus.version} 77 | 78 | 79 | 80 | build 81 | 82 | 83 | 84 | 85 | 86 | maven-surefire-plugin 87 | ${surefire-plugin.version} 88 | 89 | 90 | org.jboss.logmanager.LogManager 91 | 92 | 93 | 94 | 95 | net.alchim31.maven 96 | scala-maven-plugin 97 | 3.1.6 98 | 99 | 100 | ${scala.version} 101 | 102 | 103 | -deprecation 104 | -explaintypes 105 | -target:jvm-1.8 106 | -Ypartial-unification 107 | 108 | 118 | 119 | 120 | 121 | scala-compile-first 122 | process-resources 123 | 124 | add-source 125 | compile 126 | 127 | 128 | 129 | scala-test-compile 130 | process-test-resources 131 | 132 | add-source 133 | testCompile 134 | 135 | 136 | 137 | 138 | 139 | 140 | org.jetbrains.kotlin 141 | kotlin-maven-plugin 142 | ${kotlin.version} 143 | 144 | 145 | compile 146 | 147 | compile 148 | 149 | 150 | 151 | test-compile 152 | 153 | test-compile 154 | 155 | 156 | 157 | 158 | 159 | org.jetbrains.kotlin 160 | kotlin-maven-allopen 161 | ${kotlin.version} 162 | 163 | 164 | 165 | 166 | all-open 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | native 178 | 179 | 180 | native 181 | 182 | 183 | 184 | 185 | 186 | io.quarkus 187 | quarkus-maven-plugin 188 | ${quarkus.version} 189 | 190 | 191 | 192 | native-image 193 | 194 | 195 | true 196 | 197 | 198 | 199 | 200 | 201 | maven-failsafe-plugin 202 | ${surefire-plugin.version} 203 | 204 | 205 | 206 | integration-test 207 | verify 208 | 209 | 210 | 211 | ${project.build.directory}/${project.build.finalName}-runner 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | -------------------------------------------------------------------------------- /rest-kotlin-scala.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 15 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /quarkus.log: -------------------------------------------------------------------------------- 1 | 2019-03-14 17:42:43,286 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[7138] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 2 | 2019-03-14 17:42:43,334 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[7138] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 3 | 2019-03-14 17:42:43,513 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[7138] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 4 | 2019-03-14 17:42:43,569 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[7138] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.727s. Listening on: http://127.0.0.1:8080 5 | 2019-03-14 17:42:43,575 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[7138] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy] 6 | 2019-03-14 17:42:58,276 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[7138] INFO [io.quarkus] (main) Quarkus stopped in 0.025s 7 | 2019-03-14 20:38:15,468 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 8 | 2019-03-14 20:38:15,511 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 9 | 2019-03-14 20:38:15,653 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 10 | 2019-03-14 20:38:15,708 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.788s. Listening on: http://127.0.0.1:8080 11 | 2019-03-14 20:38:15,711 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy] 12 | 2019-03-14 20:38:28,569 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] ERROR [org.jbo.res.res.i18n] (XNIO-1 task-1) RESTEASY002005: Failed executing GET /fruits: org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: scala.collection.immutable.$colon$colon of media type: application/json 13 | at org.jboss.resteasy.core.ServerResponseWriter.lambda$writeNomapResponse$2(ServerResponseWriter.java:106) 14 | at org.jboss.resteasy.core.interception.jaxrs.ContainerResponseContextImpl.filter(ContainerResponseContextImpl.java:405) 15 | at org.jboss.resteasy.core.ServerResponseWriter.executeFilters(ServerResponseWriter.java:219) 16 | at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:83) 17 | at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:57) 18 | at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:576) 19 | at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:506) 20 | at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:252) 21 | at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:153) 22 | at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:362) 23 | at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:156) 24 | at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:238) 25 | at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:229) 26 | at io.quarkus.resteasy.runtime.ResteasyFilter$ResteasyResponseWrapper.sendError(ResteasyFilter.java:72) 27 | at io.undertow.servlet.handlers.DefaultServlet.doGet(DefaultServlet.java:173) 28 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:686) 29 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:791) 30 | at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) 31 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) 32 | at io.quarkus.resteasy.runtime.ResteasyFilter.doFilter(ResteasyFilter.java:43) 33 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 34 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 35 | at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) 36 | at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 37 | at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) 38 | at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 39 | at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132) 40 | at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 41 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 42 | at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 43 | at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 44 | at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 45 | at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 46 | at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 47 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 48 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 49 | at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) 50 | at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) 51 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) 52 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) 53 | at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) 54 | at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 55 | at io.quarkus.undertow.runtime.UndertowDeploymentTemplate$7$1$1.call(UndertowDeploymentTemplate.java:415) 56 | at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) 57 | at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 58 | at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) 59 | at io.undertow.server.Connectors.executeRootHandler(Connectors.java:364) 60 | at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) 61 | at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) 62 | at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1998) 63 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1525) 64 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1416) 65 | at java.base/java.lang.Thread.run(Thread.java:834) 66 | 67 | 2019-03-14 20:43:13,376 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[10932] INFO [io.quarkus] (main) Quarkus stopped in 0.022s 68 | 2019-03-14 20:45:51,770 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11606] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 69 | 2019-03-14 20:45:51,809 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11606] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 70 | 2019-03-14 20:45:52,095 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11606] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 71 | 2019-03-14 20:45:52,143 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11606] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.986s. Listening on: http://127.0.0.1:8080 72 | 2019-03-14 20:45:52,145 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11606] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 73 | 2019-03-14 20:48:14,959 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11606] INFO [io.quarkus] (main) Quarkus stopped in 0.011s 74 | 2019-03-14 20:51:00,138 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12116] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 75 | 2019-03-14 20:51:00,176 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12116] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 76 | 2019-03-14 20:51:00,313 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12116] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 77 | 2019-03-14 20:51:00,360 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12116] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.737s. Listening on: http://127.0.0.1:8080 78 | 2019-03-14 20:51:00,362 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12116] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 79 | 2019-03-14 20:53:02,934 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12116] INFO [io.quarkus] (main) Quarkus stopped in 0.007s 80 | 2019-03-14 20:55:53,885 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12723] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 81 | 2019-03-14 20:55:53,923 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12723] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 82 | 2019-03-14 20:55:54,061 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12723] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 83 | 2019-03-14 20:55:54,107 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12723] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.720s. Listening on: http://127.0.0.1:8080 84 | 2019-03-14 20:55:54,109 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12723] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 85 | 2019-03-14 21:09:27,057 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[12723] INFO [io.quarkus] (main) Quarkus stopped in 0.017s 86 | 2019-03-14 21:14:57,192 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[13957] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 87 | 2019-03-14 21:14:57,238 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[13957] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 88 | 2019-03-14 21:14:57,358 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[13957] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 89 | 2019-03-14 21:14:57,414 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[13957] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.709s. Listening on: http://127.0.0.1:8080 90 | 2019-03-14 21:14:57,419 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[13957] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 91 | 2019-03-14 21:23:26,092 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[13957] INFO [io.quarkus] (main) Quarkus stopped in 0.014s 92 | 2019-03-14 21:48:04,961 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[15316] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 93 | 2019-03-14 21:48:05,009 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[15316] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 94 | 2019-03-14 21:48:05,139 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[15316] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 95 | 2019-03-14 21:48:05,188 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[15316] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.817s. Listening on: http://127.0.0.1:8080 96 | 2019-03-14 21:48:05,190 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[15316] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 97 | 2019-03-14 21:49:44,400 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[15316] INFO [io.quarkus] (main) Quarkus stopped in 0.026s 98 | 2019-03-14 21:59:16,403 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[16597] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 99 | 2019-03-14 21:59:16,460 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[16597] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 100 | 2019-03-14 21:59:16,686 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[16597] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 101 | 2019-03-14 21:59:16,762 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[16597] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 1.079s. Listening on: http://127.0.0.1:8080 102 | 2019-03-14 21:59:16,765 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[16597] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 103 | 2019-03-14 22:01:34,008 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[16597] INFO [io.quarkus] (main) Quarkus stopped in 0.012s 104 | 2019-03-14 22:08:47,638 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[17483] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 105 | 2019-03-14 22:08:47,707 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[17483] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 106 | 2019-03-14 22:08:47,923 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[17483] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 107 | 2019-03-14 22:08:47,989 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[17483] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 1.001s. Listening on: http://127.0.0.1:8080 108 | 2019-03-14 22:08:47,992 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[17483] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 109 | 2019-03-14 22:09:16,022 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[17483] INFO [io.quarkus] (main) Quarkus stopped in 0.026s 110 | 2019-03-18 18:50:05,809 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[6722] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 111 | 2019-03-18 18:50:05,949 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[6722] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 112 | 2019-03-18 18:50:06,284 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[6722] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 113 | 2019-03-18 18:50:06,439 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[6722] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 1.713s. Listening on: http://127.0.0.1:8080 114 | 2019-03-18 18:50:06,450 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[6722] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 115 | 2019-03-18 18:55:17,089 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[6722] INFO [io.quarkus] (main) Quarkus stopped in 0.072s 116 | 2019-03-18 19:40:30,159 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9105] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 117 | 2019-03-18 19:40:30,266 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9105] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 118 | 2019-03-18 19:40:30,610 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9105] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 119 | 2019-03-18 19:40:30,724 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9105] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 1.642s. Listening on: http://127.0.0.1:8080 120 | 2019-03-18 19:40:30,732 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9105] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 121 | 2019-03-18 19:49:05,561 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9105] INFO [io.quarkus] (main) Quarkus stopped in 0.029s 122 | 2019-03-18 19:56:11,238 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9993] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 123 | 2019-03-18 19:56:11,346 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9993] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 124 | 2019-03-18 19:56:11,688 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9993] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 125 | 2019-03-18 19:56:11,739 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9993] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 1.608s. Listening on: http://127.0.0.1:8080 126 | 2019-03-18 19:56:11,741 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9993] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 127 | 2019-03-18 20:00:10,390 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[9993] INFO [io.quarkus] (main) Quarkus stopped in 0.008s 128 | 2019-03-18 20:06:30,908 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11107] DEBUG [org.xnio] (main) XNIO version 3.6.5.Final 129 | 2019-03-18 20:06:30,998 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11107] DEBUG [org.xni.nio] (main) XNIO NIO Implementation Version 3.6.5.Final 130 | 2019-03-18 20:06:31,246 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11107] DEBUG [org.jbo.threads] (main) JBoss Threads version 3.0.0.Alpha4 131 | 2019-03-18 20:06:31,338 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11107] INFO [io.quarkus] (main) Quarkus 0.11.0 started in 1.507s. Listening on: http://127.0.0.1:8080 132 | 2019-03-18 20:06:31,345 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11107] INFO [io.quarkus] (main) Installed features: [cdi, kotlin, resteasy, resteasy-jsonb] 133 | 2019-03-18 20:07:10,258 localhost rest-scala-kotlin-1.0-SNAPSHOT-runner.jar[11107] INFO [io.quarkus] (main) Quarkus stopped in 0.038s 134 | --------------------------------------------------------------------------------