Skip to content

Commit 294cc9a

Browse files
Merge pull request #9539 from smartboot/master
upgrade smart-servlet
2 parents 7b5a501 + 74b3ad9 commit 294cc9a

File tree

6 files changed

+57
-61
lines changed

6 files changed

+57
-61
lines changed

frameworks/Java/smart-socket/config.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[framework]
2-
name = "smart-socket"
2+
name = "feat"
33

44
[main]
55
urls.plaintext = "/plaintext"
66
urls.json = "/json"
7-
urls.db = "/db"
8-
urls.query = "/queries?queries="
9-
urls.update = "/updates?queries="
7+
#urls.db = "/db"
8+
#urls.query = "/queries?queries="
9+
#urls.update = "/updates?queries="
1010
approach = "Realistic"
1111
classification = "Platform"
1212
database = "Postgres"
@@ -15,7 +15,7 @@ os = "Linux"
1515
orm = "Raw"
1616
platform = "smartboot"
1717
webserver = "None"
18-
versus = "smart-socket"
18+
versus = "feat"
1919

2020
[smart-servlet]
2121
urls.plaintext = "/plaintext"

frameworks/Java/smart-socket/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<maven.compiler.source>21</maven.compiler.source>
1212
<maven.compiler.target>21</maven.compiler.target>
1313
<log4j.version>2.17.1</log4j.version>
14-
<smartservlet.version>2.7</smartservlet.version>
14+
<smartservlet.version>2.8</smartservlet.version>
1515
<hikaricp.version>5.0.0</hikaricp.version>
1616
<jsoniter.version>0.9.23</jsoniter.version>
1717
</properties>

frameworks/Java/smart-socket/src/main/java/org/smartboot/http/Bootstrap.java

Lines changed: 38 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -8,62 +8,55 @@
88

99
package org.smartboot.http;
1010

11-
import com.zaxxer.hikari.HikariConfig;
12-
import com.zaxxer.hikari.HikariDataSource;
1311
import org.smartboot.Message;
12+
import tech.smartboot.feat.core.Feat;
13+
import tech.smartboot.feat.core.common.enums.HeaderValueEnum;
14+
import tech.smartboot.feat.core.server.HttpHandler;
1415
import tech.smartboot.feat.core.server.HttpRequest;
1516
import tech.smartboot.feat.core.server.HttpResponse;
16-
import tech.smartboot.feat.core.server.HttpServer;
17-
import tech.smartboot.feat.core.server.HttpServerHandler;
18-
import tech.smartboot.feat.core.server.handler.HttpRouteHandler;
19-
20-
import javax.sql.DataSource;
2117

2218
public class Bootstrap {
2319
static byte[] body = "Hello, World!".getBytes();
2420

2521
public static void main(String[] args) {
2622
int cpuNum = Runtime.getRuntime().availableProcessors();
2723
// 定义服务器接受的消息类型以及各类消息对应的处理器
28-
HttpServer bootstrap = new HttpServer();
29-
bootstrap.configuration()
30-
.threadNum(cpuNum + 1)
31-
.headerLimiter(0)
32-
.readBufferSize(1024 * 4)
33-
.writeBufferSize(1024 * 4);
34-
bootstrap.httpHandler(new HttpServerHandler() {
35-
@Override
36-
public void handle(HttpRequest request, HttpResponse response) throws Throwable {
37-
if ("/plaintext".equals(request.getRequestURI())) {
38-
response.setContentLength(body.length);
39-
response.setContentType("text/plain; charset=UTF-8");
40-
response.write(body);
41-
} else if ("/json".equals(request.getRequestURI())) {
42-
response.setContentType("application/json");
43-
JsonUtil.writeJsonBytes(response, new Message("Hello, World!"));
44-
}
24+
Feat.createHttpServer(options -> {
25+
options.threadNum(cpuNum + 1)
26+
.headerLimiter(0)
27+
.readBufferSize(1024 * 4)
28+
.writeBufferSize(1024 * 4);
29+
}).httpHandler(request -> {
30+
HttpResponse response = request.getResponse();
31+
if ("/plaintext".equals(request.getRequestURI())) {
32+
response.setContentLength(body.length);
33+
response.setContentType(HeaderValueEnum.ContentType.TEXT_PLAIN_UTF8);
34+
response.write(body);
35+
} else if ("/json".equals(request.getRequestURI())) {
36+
response.setContentType("application/json");
37+
JsonUtil.writeJsonBytes(response, new Message("Hello, World!"));
4538
}
46-
}).setPort(8080).start();
39+
}).listen(8080);
4740
}
4841

49-
private static void initDB(HttpRouteHandler routeHandle) {
50-
try {
51-
Class.forName("org.postgresql.Driver");
52-
} catch (ClassNotFoundException e) {
53-
e.printStackTrace();
54-
}
55-
HikariConfig config = new HikariConfig();
56-
config.setJdbcUrl("jdbc:postgresql://tfb-database:5432/hello_world");
57-
config.setUsername("benchmarkdbuser");
58-
config.setPassword("benchmarkdbpass");
59-
config.setMaximumPoolSize(64);
60-
config.addDataSourceProperty("cachePrepStmts", "true");
61-
config.addDataSourceProperty("prepStmtCacheSize", "250");
62-
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
63-
DataSource dataSource = new HikariDataSource(config);
64-
routeHandle.route("/db", new SingleQueryHandler(dataSource))
65-
.route("/queries", new MultipleQueriesHandler(dataSource))
66-
.route("/updates", new UpdateHandler(dataSource));
67-
// .route("/fortunes", new FortunesHandler(dataSource));
68-
}
42+
// private static void initDB(HttpRouteHandler routeHandle) {
43+
// try {
44+
// Class.forName("org.postgresql.Driver");
45+
// } catch (ClassNotFoundException e) {
46+
// e.printStackTrace();
47+
// }
48+
// HikariConfig config = new HikariConfig();
49+
// config.setJdbcUrl("jdbc:postgresql://tfb-database:5432/hello_world");
50+
// config.setUsername("benchmarkdbuser");
51+
// config.setPassword("benchmarkdbpass");
52+
// config.setMaximumPoolSize(64);
53+
// config.addDataSourceProperty("cachePrepStmts", "true");
54+
// config.addDataSourceProperty("prepStmtCacheSize", "250");
55+
// config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
56+
// DataSource dataSource = new HikariDataSource(config);
57+
// routeHandle.route("/db", new SingleQueryHandler(dataSource))
58+
// .route("/queries", new MultipleQueriesHandler(dataSource))
59+
// .route("/updates", new UpdateHandler(dataSource));
60+
//// .route("/fortunes", new FortunesHandler(dataSource));
61+
// }
6962
}

frameworks/Java/smart-socket/src/main/java/org/smartboot/http/MultipleQueriesHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import tech.smartboot.feat.core.common.utils.NumberUtils;
55
import tech.smartboot.feat.core.server.HttpRequest;
66
import tech.smartboot.feat.core.server.HttpResponse;
7-
import tech.smartboot.feat.core.server.HttpServerHandler;
7+
import tech.smartboot.feat.core.server.handler.BaseHttpHandler;
88

99
import javax.sql.DataSource;
1010
import java.io.IOException;
@@ -19,15 +19,16 @@
1919
* @author 三刀
2020
* @version V1.0 , 2020/6/16
2121
*/
22-
public class MultipleQueriesHandler extends HttpServerHandler {
22+
public class MultipleQueriesHandler extends BaseHttpHandler {
2323
private DataSource dataSource;
2424

2525
public MultipleQueriesHandler(DataSource dataSource) {
2626
this.dataSource = dataSource;
2727
}
2828

2929
@Override
30-
public void handle(HttpRequest httpRequest, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
30+
public void handle(HttpRequest httpRequest, CompletableFuture<Object> completableFuture) throws IOException {
31+
HttpResponse response = httpRequest.getResponse();
3132
Thread.startVirtualThread(() -> {
3233
try {
3334
int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);

frameworks/Java/smart-socket/src/main/java/org/smartboot/http/SingleQueryHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import tech.smartboot.feat.core.server.HttpRequest;
55
import tech.smartboot.feat.core.server.HttpResponse;
6-
import tech.smartboot.feat.core.server.HttpServerHandler;
6+
import tech.smartboot.feat.core.server.handler.BaseHttpHandler;
77

88
import javax.sql.DataSource;
99
import java.io.IOException;
@@ -18,15 +18,16 @@
1818
* @author 三刀
1919
* @version V1.0 , 2020/6/16
2020
*/
21-
public class SingleQueryHandler extends HttpServerHandler {
21+
public class SingleQueryHandler extends BaseHttpHandler {
2222
private DataSource dataSource;
2323

2424
public SingleQueryHandler(DataSource dataSource) {
2525
this.dataSource = dataSource;
2626
}
2727

2828
@Override
29-
public void handle(HttpRequest httpRequest, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
29+
public void handle(HttpRequest httpRequest, CompletableFuture<Object> completableFuture) throws IOException {
30+
HttpResponse response = httpRequest.getResponse();
3031
Thread.startVirtualThread(() -> {
3132
try {
3233
World world = new World();

frameworks/Java/smart-socket/src/main/java/org/smartboot/http/UpdateHandler.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33

44
import tech.smartboot.feat.core.common.utils.NumberUtils;
5+
import tech.smartboot.feat.core.server.HttpHandler;
56
import tech.smartboot.feat.core.server.HttpRequest;
67
import tech.smartboot.feat.core.server.HttpResponse;
7-
import tech.smartboot.feat.core.server.HttpServerHandler;
88

99
import javax.sql.DataSource;
1010
import java.io.IOException;
@@ -19,16 +19,17 @@
1919
* @author 三刀
2020
* @version V1.0 , 2020/6/16
2121
*/
22-
public class UpdateHandler extends HttpServerHandler {
22+
public class UpdateHandler implements HttpHandler {
2323
private DataSource dataSource;
2424

2525
public UpdateHandler(DataSource dataSource) {
2626
this.dataSource = dataSource;
2727
}
2828

2929
@Override
30-
public void handle(HttpRequest httpRequest, HttpResponse response) throws IOException {
31-
int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);
30+
public void handle(HttpRequest request) throws IOException {
31+
HttpResponse response = request.getResponse();
32+
int queries = Math.min(Math.max(NumberUtils.toInt(request.getParameter("queries"), 1), 1), 500);
3233
World[] worlds = new World[queries];
3334
StringJoiner updateSql = new StringJoiner(
3435
", ",

0 commit comments

Comments
 (0)