1717
1818import io .jooby .Jooby ;
1919import io .jooby .internal .jetty .JettyHandler ;
20- import io .jooby .internal .jetty .JettyMultiHandler ;
2120import org .eclipse .jetty .server .HttpConfiguration ;
2221import org .eclipse .jetty .server .HttpConnectionFactory ;
2322import org .eclipse .jetty .server .MultiPartFormDataCompliance ;
2625import org .eclipse .jetty .server .handler .AbstractHandler ;
2726import org .eclipse .jetty .server .handler .gzip .GzipHandler ;
2827import org .eclipse .jetty .util .thread .QueuedThreadPool ;
29- import org .eclipse .jetty .util .thread .ScheduledExecutorScheduler ;
30- import org .eclipse .jetty .util .thread .Scheduler ;
3128import io .jooby .Throwing ;
3229
3330import javax .annotation .Nonnull ;
3431import java .util .ArrayList ;
3532import java .util .List ;
36- import java .util .Optional ;
3733
3834public class Jetty extends io .jooby .Server .Base {
3935
@@ -49,6 +45,12 @@ public class Jetty extends io.jooby.Server.Base {
4945
5046 private int bufferSize = _16KB ;
5147
48+ private int workerThreads = 200 ;
49+
50+ static {
51+ System .setProperty ("org.eclipse.jetty.util.log.class" , "org.eclipse.jetty.util.log.Slf4jLog" );
52+ }
53+
5254 @ Override public io .jooby .Server port (int port ) {
5355 this .port = port ;
5456 return this ;
@@ -73,6 +75,11 @@ public io.jooby.Server gzip(boolean enabled) {
7375 return this ;
7476 }
7577
78+ @ Override public io .jooby .Server workerThreads (int workerThreads ) {
79+ this .workerThreads = workerThreads ;
80+ return this ;
81+ }
82+
7683 @ Nonnull @ Override public io .jooby .Server start (Jooby application ) {
7784 System .setProperty ("org.eclipse.jetty.util.UrlEncoded.charset" , "utf-8" );
7885 /** Set max request size attribute: */
@@ -83,7 +90,7 @@ public io.jooby.Server gzip(boolean enabled) {
8390
8491 addShutdownHook ();
8592
86- QueuedThreadPool executor = new QueuedThreadPool (64 );
93+ QueuedThreadPool executor = new QueuedThreadPool (workerThreads );
8794 executor .setName ("jetty-worker" );
8895
8996 fireStart (applications , executor );
@@ -98,19 +105,14 @@ public io.jooby.Server gzip(boolean enabled) {
98105 httpConf .setSendDateHeader (false );
99106 httpConf .setSendServerVersion (false );
100107 httpConf .setMultiPartFormDataCompliance (MultiPartFormDataCompliance .RFC7578 );
101- int acceptors = 1 ;
102- int selectors = Runtime .getRuntime ().availableProcessors ();
103- Scheduler scheduler = new ScheduledExecutorScheduler ("jetty-scheduler" , false );
104- ServerConnector connector = new ServerConnector (server , executor , scheduler , null ,
105- acceptors , selectors , new HttpConnectionFactory (httpConf ));
108+ ServerConnector connector = new ServerConnector (server );
109+ connector .addConnectionFactory (new HttpConnectionFactory (httpConf ));
106110 connector .setPort (port );
107111 connector .setHost ("0.0.0.0" );
108112
109113 server .addConnector (connector );
110114
111- AbstractHandler handler = applications .size () == 1 ?
112- new JettyHandler (applications .get (0 ), bufferSize , maxRequestSize ) :
113- new JettyMultiHandler (applications , bufferSize , maxRequestSize );
115+ AbstractHandler handler = new JettyHandler (applications .get (0 ), bufferSize , maxRequestSize );
114116
115117 if (gzip ) {
116118 GzipHandler gzipHandler = new GzipHandler ();
0 commit comments