Browse Source

hserver framework submit (#6700)

* hserver framework submit

* hserver framework submit

* lowercase fix

* Required response header missing: Date fix

* Date format fix

Co-authored-by: 黑小马 <[email protected]>
黑小马 4 years ago
parent
commit
84859f57d4

+ 21 - 0
frameworks/Java/hserver/README.md

@@ -0,0 +1,21 @@
+# HServer Benchmarking Test
+This is the HServer portion of a [benchmarking test suite](../) comparing a variety of web development platforms.
+
+### Tests
+* [HServer JSON test source](src/main/java/com/test/hserver/controller/TestController.java)
+* [Plaintext test source](src/main/java/com/test/hserver/controller/TestController.java)
+
+## Infrastructure Software Versions
+
+* [HServer 2.9.73](https://gitee.com/HServer/HServer)
+* [Java OpenJDK 1.8](http://openjdk.java.net/)
+
+## Test URLs
+
+### JSON Encoding Test
+
+http://localhost:8888/json 
+
+### Plain Text Test
+
+http://localhost:8888/plaintext

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

@@ -0,0 +1,27 @@
+
+{
+  "framework": "hserver",
+  "tests": [
+    {
+      "default": {
+        "plaintext_url": "/plaintext",
+        "json_url": "/json",
+        "port": 8888,
+        "approach": "Realistic",
+        "classification": "Fullstack",
+        "database": "Mysql",
+        "framework": "hserver",
+        "language": "Java",
+        "flavor": "None",
+        "orm": "Full",
+        "platform": "None",
+        "webserver": "None",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "hserver",
+        "notes": "",
+        "versus": "hserver"
+      }
+    }
+  ]
+}

+ 13 - 0
frameworks/Java/hserver/config.toml

@@ -0,0 +1,13 @@
+[framework]
+name = "hserver"
+
+[main]
+urls.plaintext = "/plaintext"
+urls.json = "/json"
+approach = "Realistic"
+classification = "Fullstack"
+os = "Linux"
+orm = "Full"
+platform = "None"
+webserver = "None"
+versus = "hserver"

+ 13 - 0
frameworks/Java/hserver/hserver.dockerfile

@@ -0,0 +1,13 @@
+FROM maven:3.6.3-openjdk-8-slim as maven
+WORKDIR /hserver
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package
+
+FROM openjdk:8u275-jdk-slim
+WORKDIR /hserver
+COPY --from=maven /hserver/target/hserver-1.0.jar app.jar
+
+EXPOSE 8888
+
+CMD ["java", "-jar", "app.jar"]

+ 42 - 0
frameworks/Java/hserver/pom.xml

@@ -0,0 +1,42 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.test.hserver</groupId>
+    <artifactId>hserver</artifactId>
+    <version>1.0</version>
+    <dependencies>
+        <dependency>
+            <groupId>top.hserver</groupId>
+            <artifactId>HServer</artifactId>
+            <version>2.9.73</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>net.hserver.plugins.maven</groupId>
+                <artifactId>hserver-maven-plugin</artifactId>
+                <version>3.0</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 15 - 0
frameworks/Java/hserver/src/main/java/com/test/hserver/StartApp.java

@@ -0,0 +1,15 @@
+package com.test.hserver;
+
+import top.hserver.HServerApplication;
+import top.hserver.core.ioc.annotation.HServerBoot;
+
+/**
+ * @author hxm
+ */
+@HServerBoot
+public class StartApp {
+
+    public static void main(String[] args) {
+        HServerApplication.run(StartApp.class, 8888, args);
+    }
+}

+ 13 - 0
frameworks/Java/hserver/src/main/java/com/test/hserver/bean/Message.java

@@ -0,0 +1,13 @@
+package com.test.hserver.bean;
+
+public class Message {
+    private String message = "Hello, World!";
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

+ 28 - 0
frameworks/Java/hserver/src/main/java/com/test/hserver/controller/TestController.java

@@ -0,0 +1,28 @@
+package com.test.hserver.controller;
+
+import com.test.hserver.bean.Message;
+import com.test.hserver.util.DateUtil;
+import top.hserver.core.interfaces.HttpResponse;
+import top.hserver.core.ioc.annotation.Controller;
+import top.hserver.core.ioc.annotation.GET;
+
+import java.util.Date;
+
+/**
+ * @author hxm
+ */
+@Controller
+public class TestController {
+
+    @GET("/json")
+    public Message json(HttpResponse response) {
+        response.setHeader("Date", DateUtil.getNow());
+        return new Message();
+    }
+
+    @GET("/plaintext")
+    public String plaintext(HttpResponse response) {
+        response.setHeader("Date", DateUtil.getNow());
+        return "Hello, World!";
+    }
+}

+ 19 - 0
frameworks/Java/hserver/src/main/java/com/test/hserver/util/DateUtil.java

@@ -0,0 +1,19 @@
+package com.test.hserver.util;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+
+/**
+ * @author hxm
+ */
+public class DateUtil {
+    private static final DateTimeFormatter GMT_FMT = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
+    private static ZoneId zoneId = ZoneId.of("GMT");
+
+    public static String getNow() {
+        return GMT_FMT.format(LocalDateTime.now().atZone(zoneId));
+    }
+
+}

+ 1 - 0
frameworks/Java/hserver/src/main/resources/app.properties

@@ -0,0 +1 @@
+businessPool=-1