Browse Source

jooby jaxrs annotation (#5422)

- replace custom jooby annotation with JAXRS
- rename benchmark from jooby-mvc to jooby-jaxrs
Edgar Espina 5 years ago
parent
commit
326851cdbd

+ 1 - 1
frameworks/Java/jooby/benchmark_config.json

@@ -47,7 +47,7 @@
       "display_name": "jooby-netty",
       "versus": "netty"
     },
-    "mvc": {
+    "jaxrs": {
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "db_url": "/db",

+ 1 - 1
frameworks/Java/jooby/jooby-mvc.dockerfile → frameworks/Java/jooby/jooby-jaxrs.dockerfile

@@ -9,4 +9,4 @@ FROM openjdk:11.0.3-jdk-slim
 WORKDIR /jooby
 COPY --from=maven /jooby/target/jooby.jar app.jar
 COPY conf conf
-CMD ["java", "-server", "-Xms4g", "-Xmx4g", "-XX:+AggressiveOpts", "-XX:-UseBiasedLocking", "-XX:+UseStringDeduplication", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-cp", "app.jar", "com.techempower.MvcApp"]
+CMD ["java", "-server", "-Xms4g", "-Xmx4g", "-XX:+AggressiveOpts", "-XX:-UseBiasedLocking", "-XX:+UseStringDeduplication", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-cp", "app.jar", "com.techempower.JaxrsApp"]

+ 5 - 0
frameworks/Java/jooby/pom.xml

@@ -24,6 +24,11 @@
   </properties>
 
   <dependencies>
+    <dependency>
+      <groupId>jakarta.ws.rs</groupId>
+      <artifactId>jakarta.ws.rs-api</artifactId>
+    </dependency>
+
     <!-- jackson -->
     <dependency>
       <groupId>io.jooby</groupId>

+ 2 - 2
frameworks/Java/jooby/src/main/java/com/techempower/MvcApp.java → frameworks/Java/jooby/src/main/java/com/techempower/JaxrsApp.java

@@ -10,7 +10,7 @@ import javax.sql.DataSource;
 import static io.jooby.ExecutionMode.EVENT_LOOP;
 import static io.jooby.Jooby.runApp;
 
-public class MvcApp {
+public class JaxrsApp {
   public static void main(String[] args) {
     runApp(args, EVENT_LOOP, app -> {
       /** JSON: */
@@ -22,7 +22,7 @@ public class MvcApp {
       /** Template engine: */
       app.install(new RockerModule());
 
-      app.mvc(new Controller(app.require(DataSource.class), app.require(ObjectMapper.class)));
+      app.mvc(new Resource(app.require(DataSource.class), app.require(ObjectMapper.class)));
     });
   }
 }

+ 10 - 9
frameworks/Java/jooby/src/main/java/com/techempower/Controller.java → frameworks/Java/jooby/src/main/java/com/techempower/Resource.java

@@ -3,10 +3,11 @@ package com.techempower;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.jooby.Context;
 import io.jooby.annotations.Dispatch;
-import io.jooby.annotations.GET;
 import views.fortunes;
 
 import javax.sql.DataSource;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.sql.Connection;
@@ -20,7 +21,7 @@ import java.util.StringJoiner;
 import static com.techempower.Util.randomWorld;
 import static io.jooby.MediaType.JSON;
 
-public class Controller {
+public class Resource {
   private static final String SELECT_WORLD = "select * from world where id=?";
 
   private static final String MESSAGE = "Hello, World!";
@@ -31,23 +32,23 @@ public class Controller {
 
   private final ObjectMapper mapper;
 
-  public Controller(DataSource dataSource, ObjectMapper mapper) {
+  public Resource(DataSource dataSource, ObjectMapper mapper) {
     this.dataSource = dataSource;
     this.mapper = mapper;
   }
 
-  @GET("/plaintext")
+  @GET @Path("/plaintext")
   public void plaintText(Context ctx) {
     ctx.send(MESSAGE_BYTES);
   }
 
-  @GET("/json")
+  @GET @Path("/json")
   public void json(Context ctx) throws IOException {
     ctx.setResponseType(JSON);
     ctx.send(mapper.writeValueAsBytes(new Message(MESSAGE)));
   }
 
-  @GET("/db")
+  @GET @Path("/db")
   @Dispatch
   public void db(Context ctx) throws Exception {
     World result;
@@ -64,7 +65,7 @@ public class Controller {
     ctx.send(mapper.writeValueAsBytes(result));
   }
 
-  @GET("/queries")
+  @GET @Path("/queries")
   @Dispatch
   public void queries(Context ctx) throws Exception {
     World[] result = new World[Util.queries(ctx)];
@@ -83,7 +84,7 @@ public class Controller {
     ctx.send(mapper.writeValueAsBytes(result));
   }
 
-  @GET("/updates")
+  @GET @Path("/updates")
   @Dispatch
   public void updates(Context ctx) throws Exception {
     World[] result = new World[Util.queries(ctx)];
@@ -118,7 +119,7 @@ public class Controller {
     ctx.send(mapper.writeValueAsBytes(result));
   }
 
-  @GET("/fortunes")
+  @GET @Path("/fortunes")
   @Dispatch
   public fortunes fortunes(Context ctx) throws Exception {
     List<Fortune> fortunes = new ArrayList<>();