Browse Source

update dockerfile (#8573)

* update smart-servlet to 0.1.3-SNAPSHOT

* update aio-enhance to 1.0.3-SNAPSHOT

* smart-servlet bugfix

* bugfix

* update smart-socket to 1.5.6-SNAPSHOT

* remove file

* update aio-enhance to 1.0.4-SNAPSHOT

* 优化代码

* 优化代码

* update smart-socket to 1.5.6

* config threadNum

* update smart-socket to 1.5.7-SNAPSHOT

* 优化代码

* update smart-socket to 1.5.10-SNAPSHOT

* 优化代码

* 优化代码

* 优化代码

* 异常aio-enhance

* 优化代码

* 优化代码

* 优化代码

* remove aio-pro

* remove headerLimiter

* update hikaricp version

* replace json util

* 更新线程模型

* upgrade smart-servlet to 0.1.9-SNAPSHOT

* config thread num

* config thread num

* revert code

* revert code

* upgrade smart-servlet to 0.2.1-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT

* upgrade smart-servlet to 0.6-SNAPSHOT
三刀 1 year ago
parent
commit
04c9461145

+ 3 - 3
frameworks/Java/smart-socket/pom.xml

@@ -8,10 +8,10 @@
     <packaging>jar</packaging>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
         <log4j.version>2.17.1</log4j.version>
-        <smartservlet.version>0.2.1-SNAPSHOT</smartservlet.version>
+        <smartservlet.version>0.6-SNAPSHOT</smartservlet.version>
         <hikaricp.version>5.0.0</hikaricp.version>
         <jsoniter.version>0.9.23</jsoniter.version>
     </properties>

+ 3 - 3
frameworks/Java/smart-socket/smart-socket-smart-servlet.dockerfile

@@ -1,13 +1,13 @@
-FROM maven:3.6.1-jdk-11-slim as maven
+FROM maven:3.8.6-openjdk-18-slim as maven
 WORKDIR /smart-socket
 COPY pom.xml pom.xml
 COPY src src
 RUN mvn compile assembly:single -q
 
-FROM openjdk:11.0.3-jdk-slim
+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
 
 EXPOSE 8080
 
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-cp", "app.jar", "org.smartboot.servlet.Bootstrap"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC",  "-cp", "app.jar", "org.smartboot.servlet.Bootstrap"]

+ 3 - 3
frameworks/Java/smart-socket/smart-socket.dockerfile

@@ -1,13 +1,13 @@
-FROM maven:3.6.1-jdk-11-slim as maven
+FROM maven:3.8.6-openjdk-18-slim as maven
 WORKDIR /smart-socket
 COPY pom.xml pom.xml
 COPY src src
 RUN mvn compile assembly:single -q
 
-FROM openjdk:11.0.3-jdk-slim
+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
 
 EXPOSE 8080
 
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-cp", "app.jar", "org.smartboot.http.Bootstrap"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-cp", "app.jar", "org.smartboot.http.Bootstrap"]

+ 42 - 42
frameworks/Java/smart-socket/src/main/java/org/smartboot/http/JsonUtil.java

@@ -1,11 +1,12 @@
 package org.smartboot.http;
 
+import com.jsoniter.output.JsonStream;
+import com.jsoniter.output.JsonStreamPool;
 import com.jsoniter.spi.JsonException;
-import io.edap.x.json.Eson;
-import io.edap.x.json.JsonWriter;
+import com.jsoniter.spi.Slice;
+import jakarta.servlet.http.HttpServletResponse;
 import org.smartboot.http.server.HttpResponse;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
 /**
@@ -13,57 +14,56 @@ import java.io.IOException;
  * @version V1.0 , 2020/6/16
  */
 public class JsonUtil {
+    //    public static void writeJsonBytes(HttpResponse httpResponse, Object obj) {
+//        JsonWriter writer = Eson.THREAD_WRITER.get();
+//        try {
+//            writer.reset();
+//            Eson.serialize(obj, writer);
+//            httpResponse.setContentLength(writer.size());
+//            writer.toStream(httpResponse.getOutputStream());
+//        } catch (IOException e) {
+//            throw new JsonException(e);
+//        }
+//    }
     public static void writeJsonBytes(HttpResponse httpResponse, Object obj) {
-        JsonWriter writer = Eson.THREAD_WRITER.get();
+        JsonStream stream = JsonStreamPool.borrowJsonStream();
         try {
-            writer.reset();
-            Eson.serialize(obj, writer);
-            httpResponse.setContentLength(writer.size());
-            writer.toStream(httpResponse.getOutputStream());
+            stream.reset(null);
+            stream.writeVal(obj.getClass(), obj);
+            Slice slice = stream.buffer();
+            httpResponse.setContentLength(slice.tail());
+            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
         } catch (IOException e) {
             throw new JsonException(e);
+        } finally {
+            JsonStreamPool.returnJsonStream(stream);
         }
     }
 
-//    public static void writeJsonBytes(HttpResponse httpResponse, Object obj) {
-//        JsonStream stream = JsonStreamPool.borrowJsonStream();
-//        try {
-//            stream.reset(null);
-//            stream.writeVal(obj.getClass(), obj);
-//            Slice slice = stream.buffer();
-//            httpResponse.setContentLength(slice.tail());
-//            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
-//        } catch (IOException e) {
-//            throw new JsonException(e);
-//        } finally {
-//            JsonStreamPool.returnJsonStream(stream);
-//        }
-//    }
+    public static void writeJsonBytes(HttpServletResponse httpResponse, Object obj) {
+        JsonStream stream = JsonStreamPool.borrowJsonStream();
+        try {
+            stream.reset(null);
+            stream.writeVal(obj.getClass(), obj);
+            Slice slice = stream.buffer();
+            httpResponse.setContentLength(slice.tail());
+            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
+        } catch (IOException e) {
+            throw new JsonException(e);
+        } finally {
+            JsonStreamPool.returnJsonStream(stream);
+        }
+    }
 
 //    public static void writeJsonBytes(HttpServletResponse httpResponse, Object obj) {
-//        JsonStream stream = JsonStreamPool.borrowJsonStream();
+//        JsonWriter writer = Eson.THREAD_WRITER.get();
 //        try {
-//            stream.reset(null);
-//            stream.writeVal(obj.getClass(), obj);
-//            Slice slice = stream.buffer();
-//            httpResponse.setContentLength(slice.tail());
-//            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
+//            writer.reset();
+//            Eson.serialize(obj, writer);
+//            httpResponse.setContentLength(writer.size());
+//            writer.toStream(httpResponse.getOutputStream());
 //        } catch (IOException e) {
 //            throw new JsonException(e);
-//        } finally {
-//            JsonStreamPool.returnJsonStream(stream);
 //        }
 //    }
-
-    public static void writeJsonBytes(HttpServletResponse httpResponse, Object obj) {
-        JsonWriter writer = Eson.THREAD_WRITER.get();
-        try {
-            writer.reset();
-            Eson.serialize(obj, writer);
-            httpResponse.setContentLength(writer.size());
-            writer.toStream(httpResponse.getOutputStream());
-        } catch (IOException e) {
-            throw new JsonException(e);
-        }
-    }
 }

+ 4 - 8
frameworks/Java/smart-socket/src/main/java/org/smartboot/servlet/Bootstrap.java

@@ -4,13 +4,9 @@ import org.smartboot.http.server.HttpBootstrap;
 import org.smartboot.http.server.HttpRequest;
 import org.smartboot.http.server.HttpResponse;
 import org.smartboot.http.server.HttpServerHandler;
-import org.smartboot.http.server.impl.Request;
 import org.smartboot.servlet.conf.ServletInfo;
-import org.smartboot.socket.StateMachineEnum;
-import org.smartboot.socket.extension.processor.AbstractMessageProcessor;
-import org.smartboot.socket.transport.AioSession;
 
-import java.io.IOException;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * @author 三刀([email protected]
@@ -18,7 +14,7 @@ import java.io.IOException;
  */
 public class Bootstrap {
 
-    public static void main(String[] args) {
+    public static void main(String[] args) throws Throwable {
         ContainerRuntime containerRuntime = new ContainerRuntime();
         // plaintext
         ServletContextRuntime applicationRuntime = new ServletContextRuntime("/");
@@ -50,8 +46,8 @@ public class Bootstrap {
         bootstrap.setPort(8080)
                 .httpHandler(new HttpServerHandler() {
                     @Override
-                    public void handle(HttpRequest request, HttpResponse response) throws IOException {
-                        containerRuntime.doHandle(request, response);
+                    public void handle(HttpRequest request, HttpResponse response, CompletableFuture<Object> completableFuture) throws Throwable {
+                        containerRuntime.doHandle(request, response, completableFuture);
                     }
                 })
                 .start();

+ 6 - 5
frameworks/Java/smart-socket/src/main/java/org/smartboot/servlet/HelloWorldServlet.java

@@ -1,9 +1,10 @@
 package org.smartboot.servlet;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
 import java.io.IOException;
 
 /**
@@ -16,7 +17,7 @@ public class HelloWorldServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         resp.setContentLength(BODY.length);
-        resp.setContentType("text/plain; charset=UTF-8");
+        resp.setContentType("text/plain;charset=UTF-8");
         resp.setBufferSize(0);
         resp.getOutputStream().write(BODY);
     }

+ 5 - 5
frameworks/Java/smart-socket/src/main/java/org/smartboot/servlet/JsonServlet.java

@@ -1,12 +1,12 @@
 package org.smartboot.servlet;
 
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import org.smartboot.Message;
 import org.smartboot.http.JsonUtil;
 
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
 /**
@@ -16,7 +16,7 @@ import java.io.IOException;
 public class JsonServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-        resp.setContentType("application/json");
+        resp.setContentType("application/json;charset=UTF-8");
         resp.setBufferSize(0);
         JsonUtil.writeJsonBytes(resp, new Message("Hello, World!"));
     }