Skip to content

Commit 7862552

Browse files
committed
vertx: set number of workThreads using options
- improve bootstrapping of multiple servers when vertx is present - fix vertx server name (was set to netty)
1 parent 1155b5e commit 7862552

File tree

3 files changed

+32
-19
lines changed

3 files changed

+32
-19
lines changed

jooby/src/main/java/io/jooby/Server.java

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -292,29 +292,31 @@ static Server loadServer(@NonNull ServerOptions options) {
292292
if (servers.isEmpty()) {
293293
throw new StartupException("Server not found.");
294294
}
295-
var index = 0;
295+
Predicate<Server> vertxServer = it -> it.getClass().getSimpleName().equals("VertxServer");
296+
Server server;
296297
if (servers.size() > 1) {
297-
boolean warn = true;
298-
if (servers.size() == 2) {
299-
// Must be Netty and Vertx
300-
var supported = new HashSet<String>();
301-
supported.add("NettyServer");
302-
supported.add("VertxServer");
303-
servers.stream().map(it -> it.getClass().getSimpleName()).forEach(supported::remove);
304-
if (supported.isEmpty()) {
305-
if (!servers.getFirst().getClass().getSimpleName().equals("VertxServer")) {
306-
index = 1;
307-
}
308-
warn = false;
309-
}
298+
boolean warn;
299+
// Must be Netty and Vertx
300+
var supported =
301+
servers.stream().map(it -> it.getClass().getSimpleName()).collect(Collectors.toSet());
302+
supported.remove("NettyServer");
303+
supported.remove("VertxServer");
304+
if (!supported.isEmpty()) {
305+
// Never choose vertx when there is any other implementation.
306+
vertxServer = vertxServer.negate();
307+
warn = true;
308+
} else {
309+
warn = false;
310310
}
311+
server = servers.stream().filter(vertxServer).findFirst().orElse(servers.getFirst());
311312
if (warn) {
312313
var names = servers.stream().map(Server::getName).collect(Collectors.toList());
313-
var log = LoggerFactory.getLogger(servers.get(index).getClass());
314-
log.warn("Multiple servers found {}. Using: {}", names, names.get(index));
314+
var log = LoggerFactory.getLogger(server.getClass());
315+
log.warn("Multiple servers found {}. Using: {}", names, server.getName());
315316
}
317+
} else {
318+
server = servers.getFirst();
316319
}
317-
var server = servers.get(index);
318320
return server.setOptions(options);
319321
}
320322
}

modules/jooby-vertx/src/main/java/io/jooby/vertx/VertxServer.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@
3232
* @since 4.0.8
3333
*/
3434
public class VertxServer extends NettyServer {
35+
private static final String NAME = "vertx";
36+
37+
static {
38+
System.setProperty("__server_.name", NAME);
39+
}
40+
3541
private Vertx vertx;
3642

3743
/**
@@ -63,7 +69,11 @@ public Server init(@NonNull Jooby application) {
6369
if (this.vertx == null) {
6470
var nThreads = getOptions().getIoThreads();
6571
var options =
66-
new VertxOptions().setPreferNativeTransport(true).setEventLoopPoolSize(nThreads);
72+
new VertxOptions()
73+
.setPreferNativeTransport(true)
74+
.setEventLoopPoolSize(nThreads)
75+
.setWorkerPoolSize(getOptions().getWorkerThreads());
76+
6777
this.vertx = Vertx.vertx(options);
6878
}
6979

@@ -74,7 +84,7 @@ public Server init(@NonNull Jooby application) {
7484

7585
@Override
7686
public String getName() {
77-
return "vertx";
87+
return NAME;
7888
}
7989

8090
@Nullable @Override

modules/jooby-vertx/src/main/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
requires org.slf4j;
1313
requires static com.github.spotbugs.annotations;
1414
requires jakarta.inject;
15+
requires io.netty.common;
1516

1617
provides Server with
1718
VertxServer;

0 commit comments

Comments
 (0)