Ver Fonte

Remove jooby 1.x from benchmarks (#5311)

- Favor 2.x benchmarks
Edgar Espina há 5 anos atrás
pai
commit
b00decdba5

+ 0 - 1
.travis.yml

@@ -60,7 +60,6 @@ env:
     - "TESTDIR=Java/javalin"
     - "TESTDIR=Java/jetty"
     - "TESTDIR=Java/jlhttp"
-    - "TESTDIR=Java/jooby"
     - "TESTDIR=Java/jooby2"
     - "TESTDIR=Java/light-java"
     - "TESTDIR=Java/micronaut"

+ 0 - 59
frameworks/Java/jooby/README.md

@@ -1,59 +0,0 @@
-# Jooby Benchmarking Test
-
-[Jooby](http://jooby.org) Scalable, fast and modular micro web framework for Java and Kotlin.
-
-```java
-public class App extends Jooby {
-
-  {
-    get("/", () -> "Hello, World!");
-  }
-
-}
-```
-
-This is the [Jooby](http://jooby.org) portion of a [benchmarking test suite](../) comparing a variety of web development platforms.
-
-### Plain Text Test
-* [Plain test source](src/main/java/com/techempower/App.java)
-
-### JSON Encoding Test
-* [JSON test source](src/main/java/com/techempower/App.java)
-
-### Single Query Test
-* [Single query test source](src/main/java/com/techempower/App.java)
-
-### Multiple Queries Test
-* [Multiple queries test source](src/main/java/com/techempower/App.java)
-
-### Database Update Test
-* [Database update test source](src/main/java/com/techempower/App.java)
-
-### Fortunes Test
-* [Fortunes test source](src/main/java/com/techempower/App.java)
-
-## Test URLs
-
-### Plain Text Test
-
-    http://localhost:8080/plaintext
-
-### JSON Encoding Test
-
-    http://localhost:8080/json
-
-### Single Query Test
-
-    http://localhost:8080/db
-
-### Multiple Queries Test
-
-    http://localhost:8080/queries
-
-### Database updates Test
-
-    http://localhost:8080/updates
-
-### Fortunes Test
-
-    http://localhost:8080/fortunes

+ 0 - 27
frameworks/Java/jooby/benchmark_config.json

@@ -1,27 +0,0 @@
-{
-  "framework": "jooby",
-  "tests": [{
-    "default": {
-      "json_url": "/json",
-      "plaintext_url": "/plaintext",
-      "db_url": "/db",
-      "query_url": "/queries?queries=",
-      "fortune_url": "/fortunes",
-      "update_url": "/updates?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "framework": "jooby",
-      "language": "Java",
-      "flavor": "None",
-      "platform": "Netty",
-      "database": "Postgres",
-      "database_os": "Linux",
-      "orm": "Raw",
-      "webserver": "None",
-      "os": "Linux",
-      "display_name": "jooby",
-      "versus": "netty"
-    }
-  }]
-}

+ 0 - 14
frameworks/Java/jooby/conf/application.conf

@@ -1,14 +0,0 @@
-# add or override properties
-# See https://github.com/typesafehub/config/blob/master/HOCON.md for more details
-
-application.env = prod
-
-## server threads
-server.threads.Min = ${runtime.processors}
-server.threads.Max = ${runtime.processors-x2}
-netty.threads.Worker = 4
-
-## database
-db.url = "jdbc:postgresql://tfb-database:5432/hello_world"
-db.user = benchmarkdbuser
-db.password = benchmarkdbpass

+ 0 - 12
frameworks/Java/jooby/conf/logback.xml

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>[%d{ISO8601}]-[%thread] %-5level %logger - %msg%n</pattern>
-    </encoder>
-  </appender>
-
-  <root level="OFF">
-    <appender-ref ref="STDOUT" />
-  </root>
-</configuration>

+ 0 - 12
frameworks/Java/jooby/jooby.dockerfile

@@ -1,12 +0,0 @@
-FROM maven:3.6.1-jdk-11-slim as maven
-WORKDIR /jooby
-COPY pom.xml pom.xml
-COPY src src
-COPY public public
-RUN mvn package -q
-
-FROM openjdk:11.0.3-jdk-slim
-WORKDIR /jooby
-COPY --from=maven /jooby/target/jooby-1.0.jar app.jar
-COPY conf conf
-CMD ["java", "-server", "-Xms512m", "-Xmx2g", "-jar", "app.jar"]

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

@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.jooby</groupId>
-    <artifactId>jooby-project</artifactId>
-    <version>1.6.0</version>
-  </parent>
-
-  <artifactId>jooby</artifactId>
-  <groupId>com.techempower</groupId>
-  <version>1.0</version>
-
-  <name>jooby</name>
-
-  <properties>
-    <jooby.version>1.6.2</jooby.version>
-    <postgresql.version>42.2.5</postgresql.version>
-    <rocker.touchFile>/dev/null</rocker.touchFile>
-    <maven.compiler.source>11</maven.compiler.source>
-    <maven.compiler.target>11</maven.compiler.target>
-    <!-- Startup class -->
-    <application.class>com.techempower.App</application.class>
-  </properties>
-
-  <dependencies>
-    <!-- jackson -->
-    <dependency>
-      <groupId>org.jooby</groupId>
-      <artifactId>jooby-jackson</artifactId>
-    </dependency>
-
-    <!-- jdbc -->
-    <dependency>
-      <groupId>org.jooby</groupId>
-      <artifactId>jooby-jdbc</artifactId>
-    </dependency>
-
-    <!-- mySQL -->
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-    </dependency>
-
-    <!-- postgresql -->
-    <dependency>
-      <groupId>org.postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-    </dependency>
-
-    <!-- rocker -->
-    <dependency>
-      <groupId>org.jooby</groupId>
-      <artifactId>jooby-rocker</artifactId>
-    </dependency>
-
-    <!-- Server -->
-    <dependency>
-      <groupId>org.jooby</groupId>
-      <artifactId>jooby-netty</artifactId>
-    </dependency>
-
-    <!-- logging -->
-    <dependency>
-      <groupId>ch.qos.logback</groupId>
-      <artifactId>logback-classic</artifactId>
-    </dependency>
-
-    <!-- Tests -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jooby</groupId>
-      <artifactId>jooby</artifactId>
-      <scope>test</scope>
-      <classifier>tests</classifier>
-    </dependency>
-
-    <!-- Fluent HC -->
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>fluent-hc</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpmime</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-    <plugins>
-      <!-- Build fat jar -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-      </plugin>
-    </plugins>
-    <!-- rocker m2e -->
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>com.fizzed</groupId>
-                    <artifactId>rocker-maven-plugin</artifactId>
-                    <versionRange>[${rocker.version},)</versionRange>
-                    <goals>
-                      <goal>generate</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <execute>
-                      <runOnIncremental>true</runOnIncremental>
-                    </execute>
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
-</project>

+ 0 - 17
frameworks/Java/jooby/public/views/fortunes.rocker.html

@@ -1,17 +0,0 @@
-@import java.util.List
-@import com.techempower.Fortune
-
-@args (List<Fortune> fortunes)
-
-<!DOCTYPE html>
-<html>
-<head><title>Fortunes</title></head>
-<body>
-<table>
-    <tr><th>id</th><th>message</th></tr>
-    @for (it: fortunes) {
-    <tr><td>@it.id</td><td>@it.message</td></tr>
-    }
-</table>
-</body>
-</html>

+ 0 - 0
frameworks/Java/jooby/src/etc/rocker.activator


+ 0 - 198
frameworks/Java/jooby/src/main/java/com/techempower/App.java

@@ -1,198 +0,0 @@
-package com.techempower;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import org.jooby.Jooby;
-import org.jooby.MediaType;
-import org.jooby.Request;
-
-import static org.jooby.MediaType.*;
-import org.jooby.Result;
-import org.jooby.Status;
-import org.jooby.jdbc.Jdbc;
-import org.jooby.json.Jackson;
-import org.jooby.rocker.Rockerby;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.time.Instant;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Random;
-import java.util.concurrent.ThreadLocalRandom;
-
-import javax.inject.Inject;
-import javax.sql.DataSource;
-
-/**
- * @author jooby generator
- */
-public class App extends Jooby {
-
-  private static final String UPDATE_WORLD = "update world set randomNumber=? where id=?";
-
-  private static final String SELECT_WORLD = "select * from world where id=?";
-
-  static final DateTimeFormatter fmt = DateTimeFormatter
-      .ofPattern("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH)
-      .withZone(ZoneId.of("GMT"));
-
-  static final String H_SERVER = "Server";
-  static final String SERVER = "Netty";
-
-  static final String H_DATE = "Date";
-
-  static final int DB_ROWS = 10000;
-
-  static final String HELLO_WORLD = "Hello, World!";
-
-  public static class Message {
-    public final String message = HELLO_WORLD;
-  }
-
-  @Inject
-  private DataSource ds;
-
-  {
-    /** Template engine: */
-    use(new Rockerby());
-
-    /** JSON: */
-    ObjectMapper mapper = new ObjectMapper();
-
-    /** Database: */
-    use(new Jdbc());
-
-    get("/plaintext", (req, rsp) -> {
-      rsp.send(result(HELLO_WORLD, plain));
-    }).renderer("text");
-
-    get("/json", (req, rsp) -> {
-      rsp.send(result(mapper.writeValueAsString(new Message()), json));
-    }).renderer("text");
-
-    /** Single query: */
-    get("/db", (req, rsp) -> {
-      rsp.send(result(mapper.writeValueAsString(findOne(rndId())), json));
-    }).renderer("text");
-
-    /** Multiple queries: */
-    get("/queries", (req, rsp) -> {
-      // bound count
-      int count = queries(req);
-      List<World> result = new ArrayList<>();
-      Random rnd = ThreadLocalRandom.current();
-      try (Connection conn = ds.getConnection()) {
-        for (int i = 0; i < count; i++) {
-          int id = rndId(rnd);
-          try (final PreparedStatement query = conn.prepareStatement(SELECT_WORLD, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
-            result.add(findOne(query, id));
-          }
-        }
-      }
-
-      rsp.send(result(mapper.writeValueAsString(result), json));
-    }).renderer("text");
-
-    /** Updates: */
-    get("/updates", (req, rsp) -> {
-      // bound count
-      int count = queries(req);
-      List<World> result = new ArrayList<>();
-      Random rnd = ThreadLocalRandom.current();
-      try (Connection conn = ds.getConnection()) {
-        for (int i = 0; i < count; i++) {
-          int id = rndId(rnd);
-          int newRandomNumber = rndId(rnd);
-          try (final PreparedStatement query = conn.prepareStatement(SELECT_WORLD, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
-              final PreparedStatement update = conn.prepareStatement(UPDATE_WORLD)) {
-            // find
-            World world = findOne(query, id);
-
-            // update
-            update.setInt(1, newRandomNumber);
-            update.setInt(2, id);
-            update.execute();
-
-            result.add(new World(world.id, newRandomNumber));
-          }
-        }
-      }
-
-      rsp.send(result(mapper.writeValueAsString(result), json));
-    }).renderer("text");
-
-    /** Fortunes: */
-    get("/fortunes", (req, rsp) -> {
-      List<Fortune> fortunes = new ArrayList<>();
-      try (Connection connection = ds.getConnection()) {
-        try (PreparedStatement stt = connection.prepareStatement("select * from fortune", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
-          try (ResultSet rs = stt.executeQuery()) {
-            while (rs.next()) {
-              fortunes.add(new Fortune(rs.getInt("id"), rs.getString("message")));
-            }
-          }
-        }
-      }
-      fortunes.add(new Fortune(0, "Additional fortune added at request time."));
-      Collections.sort(fortunes);
-      rsp.send(result(views.fortunes.template(fortunes), html));
-    });
-  }
-
-  public static void main(final String[] args) {
-    run(App::new, args);
-  }
-
-  private World findOne(int id) throws SQLException {
-    try (Connection conn = ds.getConnection()) {
-      try (PreparedStatement query = conn.prepareStatement(SELECT_WORLD, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
-        return findOne(query, id);
-      }
-    }
-  }
-
-  private World findOne(PreparedStatement query, int id) throws SQLException {
-    query.setInt(1, id);
-    try (ResultSet resultSet = query.executeQuery()) {
-      resultSet.next();
-      return new World(resultSet.getInt("id"), resultSet.getInt("randomNumber"));
-    }
-  }
-
-  private final int rndId() {
-    return rndId(ThreadLocalRandom.current());
-  }
-
-  private final int rndId(Random rnd) {
-    return rnd.nextInt(DB_ROWS) + 1;
-  }
-
-  private Result result(final Object value, final MediaType type) {
-    return new Result().set(value)
-        .status(Status.OK)
-        .type(type)
-        .header(H_SERVER, SERVER)
-        .header(H_DATE, fmt.format(Instant.ofEpochMilli(System.currentTimeMillis())));
-  }
-
-  private int queries(Request req) {
-    String value = req.param("queries").value("");
-    if (value.length() == 0) {
-      return 1;
-    }
-    try {
-      return Math.min(500, Math.max(1, Integer.parseInt(value)));
-    } catch (NumberFormatException x) {
-      return 1;
-    }
-  }
-}

+ 0 - 17
frameworks/Java/jooby/src/main/java/com/techempower/Fortune.java

@@ -1,17 +0,0 @@
-package com.techempower;
-
-public final class Fortune implements Comparable<Fortune> {
-  public final int id;
-
-  public final String message;
-
-  public Fortune(int id, String message) {
-    this.id = id;
-    this.message = message;
-  }
-
-  @Override
-  public int compareTo(Fortune other) {
-    return message.compareTo(other.message);
-  }
-}

+ 0 - 13
frameworks/Java/jooby/src/main/java/com/techempower/World.java

@@ -1,13 +0,0 @@
-package com.techempower;
-
-public class World {
-
-  public final int id;
-  public final int randomNumber;
-
-  public World(int id, int randomNumber) {
-    this.id = id;
-    this.randomNumber = randomNumber;
-  }
-
-}