diff --git a/frameworks/Java/smart-socket/benchmark_config.json b/frameworks/Java/smart-socket/benchmark_config.json index 7a26d71ed56..040fb6bdee9 100755 --- a/frameworks/Java/smart-socket/benchmark_config.json +++ b/frameworks/Java/smart-socket/benchmark_config.json @@ -1,5 +1,5 @@ { - "framework": "smart-socket", + "framework": "feat", "tests": [ { "default": { @@ -17,9 +17,9 @@ "webserver": "None", "os": "Linux", "database_os": "Linux", - "display_name": "smart-socket", + "display_name": "feat", "notes": "", - "versus": "smart-socket" + "versus": "feat" }, "smart-servlet": { "json_url": "/json", diff --git a/frameworks/Java/smart-socket/smart-socket-smart-servlet.dockerfile b/frameworks/Java/smart-socket/feat-smart-servlet.dockerfile similarity index 82% rename from frameworks/Java/smart-socket/smart-socket-smart-servlet.dockerfile rename to frameworks/Java/smart-socket/feat-smart-servlet.dockerfile index bb0b9258ec4..4209283ec42 100644 --- a/frameworks/Java/smart-socket/smart-socket-smart-servlet.dockerfile +++ b/frameworks/Java/smart-socket/feat-smart-servlet.dockerfile @@ -2,11 +2,11 @@ FROM maven:3.9.7-amazoncorretto-21 as maven WORKDIR /smart-socket COPY pom.xml pom.xml COPY src src -RUN mvn compile assembly:single -q +RUN mvn install -q FROM openjdk:21-jdk-slim WORKDIR /smart-socket -COPY --from=maven /smart-socket/target/smart-socket-benchmark-1.0-jar-with-dependencies.jar app.jar +COPY --from=maven /smart-socket/target/smart-socket-benchmark-1.0.jar app.jar EXPOSE 8080 diff --git a/frameworks/Java/smart-socket/smart-socket.dockerfile b/frameworks/Java/smart-socket/feat.dockerfile similarity index 82% rename from frameworks/Java/smart-socket/smart-socket.dockerfile rename to frameworks/Java/smart-socket/feat.dockerfile index 4890bd04a06..f7eaec61f67 100644 --- a/frameworks/Java/smart-socket/smart-socket.dockerfile +++ b/frameworks/Java/smart-socket/feat.dockerfile @@ -2,11 +2,11 @@ FROM maven:3.9.7-amazoncorretto-21 as maven WORKDIR /smart-socket COPY pom.xml pom.xml COPY src src -RUN mvn compile assembly:single -q +RUN mvn install -q FROM openjdk:21-jdk-slim WORKDIR /smart-socket -COPY --from=maven /smart-socket/target/smart-socket-benchmark-1.0-jar-with-dependencies.jar app.jar +COPY --from=maven /smart-socket/target/smart-socket-benchmark-1.0.jar app.jar EXPOSE 8080 diff --git a/frameworks/Java/smart-socket/pom.xml b/frameworks/Java/smart-socket/pom.xml index 4fe3e7a155f..3f01bb7e61f 100644 --- a/frameworks/Java/smart-socket/pom.xml +++ b/frameworks/Java/smart-socket/pom.xml @@ -17,6 +17,11 @@ + + tech.smartboot.feat + feat-restful + 0.5 + io.edap edapx-json @@ -26,6 +31,12 @@ tech.smartboot.servlet servlet-core ${smartservlet.version} + + + tech.smartboot.feat + feat-restful + + com.zaxxer @@ -114,20 +125,24 @@ - maven-assembly-plugin - 3.1.0 - - - jar-with-dependencies - - + maven-shade-plugin + 3.3.0 - make-assembly package - single + shade + + false + + + + META-INF/services/tech.smartboot.feat.core.apt.AptLoader + + + diff --git a/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/Bootstrap.java b/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/Bootstrap.java index 396b6d02900..e7971b1bc39 100755 --- a/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/Bootstrap.java +++ b/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/Bootstrap.java @@ -8,12 +8,7 @@ package org.smartboot.http; -import org.smartboot.Message; -import tech.smartboot.feat.core.Feat; -import tech.smartboot.feat.core.common.enums.HeaderValueEnum; -import tech.smartboot.feat.core.server.HttpHandler; -import tech.smartboot.feat.core.server.HttpRequest; -import tech.smartboot.feat.core.server.HttpResponse; +import tech.smartboot.feat.restful.RestFeat; public class Bootstrap { static byte[] body = "Hello, World!".getBytes(); @@ -21,21 +16,27 @@ public class Bootstrap { public static void main(String[] args) { int cpuNum = Runtime.getRuntime().availableProcessors(); // 定义服务器接受的消息类型以及各类消息对应的处理器 - Feat.createHttpServer(options -> { +// Feat.createHttpServer(options -> { +// options.threadNum(cpuNum + 1) +// .headerLimiter(0) +// .readBufferSize(1024 * 4) +// .writeBufferSize(1024 * 4); +// }).httpHandler(request -> { +// HttpResponse response = request.getResponse(); +// if ("/plaintext".equals(request.getRequestURI())) { +// response.setContentLength(body.length); +// response.setContentType(HeaderValueEnum.ContentType.TEXT_PLAIN_UTF8); +// response.write(body); +// } else if ("/json".equals(request.getRequestURI())) { +// response.setContentType("application/json"); +// JsonUtil.writeJsonBytes(response, new Message("Hello, World!")); +// } +// }).listen(8080); + RestFeat.createServer(options -> { options.threadNum(cpuNum + 1) .headerLimiter(0) .readBufferSize(1024 * 4) .writeBufferSize(1024 * 4); - }).httpHandler(request -> { - HttpResponse response = request.getResponse(); - if ("/plaintext".equals(request.getRequestURI())) { - response.setContentLength(body.length); - response.setContentType(HeaderValueEnum.ContentType.TEXT_PLAIN_UTF8); - response.write(body); - } else if ("/json".equals(request.getRequestURI())) { - response.setContentType("application/json"); - JsonUtil.writeJsonBytes(response, new Message("Hello, World!")); - } }).listen(8080); } diff --git a/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/FeatController.java b/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/FeatController.java new file mode 100644 index 00000000000..8050de77198 --- /dev/null +++ b/frameworks/Java/smart-socket/src/main/java/org/smartboot/http/FeatController.java @@ -0,0 +1,24 @@ +package org.smartboot.http; + +import org.smartboot.Message; +import tech.smartboot.feat.core.apt.annotation.Controller; +import tech.smartboot.feat.core.apt.annotation.RequestMapping; +import tech.smartboot.feat.core.common.enums.HeaderValueEnum; +import tech.smartboot.feat.core.server.HttpResponse; + +@Controller +public class FeatController { + static byte[] body = "Hello, World!".getBytes(); + + @RequestMapping("/plaintext") + public byte[] plaintext(HttpResponse response) { + response.setContentType(HeaderValueEnum.ContentType.TEXT_PLAIN_UTF8); + return body; + } + + @RequestMapping("/json") + public Message json(HttpResponse response) { + response.setContentType(HeaderValueEnum.ContentType.APPLICATION_JSON_UTF8); + return new Message("Hello, World!"); + } +}