Skip to content
This repository was archived by the owner on Mar 3, 2026. It is now read-only.

Commit a055f07

Browse files
Make server worker executor optional.
1 parent f4fdb89 commit a055f07

File tree

7 files changed

+30
-8
lines changed

7 files changed

+30
-8
lines changed

jooby-jetty/src/main/java/org/jooby/internal/jetty/JettyServer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.lang.reflect.Method;
2323
import java.util.Arrays;
2424
import java.util.Map;
25+
import java.util.Optional;
2526
import java.util.concurrent.Executor;
2627
import java.util.concurrent.TimeUnit;
2728
import java.util.function.Function;
@@ -198,9 +199,9 @@ public void stop() throws Exception {
198199
}
199200

200201
@Override
201-
public Executor executor()
202+
public Optional<Executor> executor()
202203
{
203-
return executor;
204+
return Optional.of(executor);
204205
}
205206

206207
private void tryOption(final Object source, final Config config, final Method option) {

jooby-netty/src/main/java/org/jooby/internal/netty/NettyServer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.lang.reflect.ParameterizedType;
2727
import java.util.Map;
2828
import java.util.Map.Entry;
29+
import java.util.Optional;
2930
import java.util.concurrent.Executor;
3031
import java.util.concurrent.ThreadFactory;
3132
import java.util.function.BiConsumer;
@@ -154,9 +155,9 @@ public void join() throws InterruptedException {
154155
}
155156

156157
@Override
157-
public Executor executor()
158+
public Optional<Executor> executor()
158159
{
159-
return executor;
160+
return Optional.of(executor);
160161
}
161162

162163
@SuppressWarnings({"rawtypes", "unchecked" })

jooby-servlet/src/main/java/org/jooby/servlet/ServletContainer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020

2121
import org.jooby.spi.Server;
2222

23+
import java.util.Optional;
24+
import java.util.concurrent.Executor;
25+
2326
/**
2427
* NOOP server for servlets.
2528
*
@@ -44,4 +47,9 @@ public void stop() throws Exception {
4447
public void join() throws InterruptedException {
4548
}
4649

50+
@Override
51+
public Optional<Executor> executor() {
52+
return Optional.empty();
53+
}
54+
4755
}

jooby-undertow/src/main/java/org/jooby/internal/undertow/UndertowServer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.lang.reflect.Field;
2222
import java.util.Map;
23+
import java.util.Optional;
2324
import java.util.concurrent.Executor;
2425
import java.util.concurrent.TimeUnit;
2526
import java.util.function.BiConsumer;
@@ -211,9 +212,9 @@ public void stop() throws Exception {
211212
}
212213

213214
@Override
214-
public Executor executor()
215+
public Optional<Executor> executor()
215216
{
216-
return executor;
217+
return Optional.of(executor);
217218
}
218219

219220
}

jooby/src/main/java/org/jooby/internal/ServerExecutorProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package org.jooby.internal;
2020

21+
import com.google.common.util.concurrent.MoreExecutors;
2122
import org.jooby.spi.Server;
2223

2324
import javax.inject.Inject;
@@ -32,7 +33,8 @@ public class ServerExecutorProvider implements Provider<Executor> {
3233

3334
@Inject
3435
public ServerExecutorProvider(final Server server) {
35-
executor = requireNonNull(server, "Server is required.").executor();
36+
executor = requireNonNull(server, "Server is required.")
37+
.executor().orElse(MoreExecutors.directExecutor());
3638
}
3739

3840
@Override

jooby/src/main/java/org/jooby/spi/Server.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package org.jooby.spi;
2020

21+
import java.util.Optional;
2122
import java.util.concurrent.Executor;
2223

2324
/**
@@ -54,6 +55,6 @@ public interface Server {
5455
*
5556
* @return The executor for worker threads.
5657
*/
57-
Executor executor();
58+
Optional<Executor> executor();
5859

5960
}

jooby/src/test/java/org/jooby/issues/Issue430.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import org.jooby.spi.Server;
55
import org.junit.Test;
66

7+
import java.util.Optional;
8+
import java.util.concurrent.Executor;
9+
710
public class Issue430 {
811

912
public static class NOOP implements Server {
@@ -20,6 +23,11 @@ public void stop() throws Exception {
2023
public void join() throws InterruptedException {
2124
}
2225

26+
@Override
27+
public Optional<Executor> executor() {
28+
return Optional.empty();
29+
}
30+
2331
}
2432

2533
@Test

0 commit comments

Comments
 (0)