31
31
import org .springframework .http .server .reactive .HttpHandler ;
32
32
import org .springframework .http .server .reactive .ServerHttpRequest ;
33
33
import org .springframework .http .server .reactive .ServerHttpResponse ;
34
+ import org .springframework .util .Assert ;
34
35
import org .springframework .util .StringUtils ;
35
36
36
37
/**
@@ -90,7 +91,7 @@ private void createWebServer() {
90
91
String webServerFactoryBeanName = getWebServerFactoryBeanName ();
91
92
ReactiveWebServerFactory webServerFactory = getWebServerFactory (webServerFactoryBeanName );
92
93
boolean lazyInit = getBeanFactory ().getBeanDefinition (webServerFactoryBeanName ).isLazyInit ();
93
- this .serverManager = ServerManager . get (webServerFactory , lazyInit );
94
+ this .serverManager = new ServerManager (webServerFactory , lazyInit );
94
95
}
95
96
initPropertySources ();
96
97
}
@@ -124,8 +125,11 @@ protected void finishRefresh() {
124
125
125
126
private WebServer startReactiveWebServer () {
126
127
ServerManager serverManager = this .serverManager ;
127
- ServerManager .start (serverManager , this ::getHttpHandler );
128
- return ServerManager .getWebServer (serverManager );
128
+ if (serverManager != null ) {
129
+ serverManager .start (this ::getHttpHandler );
130
+ return serverManager .server ;
131
+ }
132
+ return null ;
129
133
}
130
134
131
135
/**
@@ -166,11 +170,13 @@ protected void onClose() {
166
170
167
171
private void stopAndReleaseReactiveWebServer () {
168
172
ServerManager serverManager = this .serverManager ;
169
- try {
170
- ServerManager .stop (serverManager );
171
- }
172
- finally {
173
- this .serverManager = null ;
173
+ if (serverManager != null ) {
174
+ try {
175
+ serverManager .server .stop ();
176
+ }
177
+ finally {
178
+ this .serverManager = null ;
179
+ }
174
180
}
175
181
}
176
182
@@ -181,7 +187,8 @@ private void stopAndReleaseReactiveWebServer() {
181
187
*/
182
188
@ Override
183
189
public WebServer getWebServer () {
184
- return ServerManager .getWebServer (this .serverManager );
190
+ ServerManager serverManager = this .serverManager ;
191
+ return (serverManager != null ) ? serverManager .server : null ;
185
192
}
186
193
187
194
@ Override
@@ -225,6 +232,7 @@ static final class ServerManager implements HttpHandler {
225
232
private volatile HttpHandler handler ;
226
233
227
234
private ServerManager (ReactiveWebServerFactory factory , boolean lazyInit ) {
235
+ Assert .notNull (factory , "ReactiveWebServerFactory must not be null" );
228
236
this .handler = this ::handleUninitialized ;
229
237
this .server = factory .getWebServer (this );
230
238
this .lazyInit = lazyInit ;
@@ -243,31 +251,10 @@ HttpHandler getHandler() {
243
251
return this .handler ;
244
252
}
245
253
246
- static ServerManager get (ReactiveWebServerFactory factory , boolean lazyInit ) {
247
- return new ServerManager (factory , lazyInit );
248
- }
249
-
250
- static WebServer getWebServer (ServerManager manager ) {
251
- return (manager != null ) ? manager .server : null ;
252
- }
253
-
254
- static void start (ServerManager manager , Supplier <HttpHandler > handlerSupplier ) {
255
- if (manager != null && manager .server != null ) {
256
- manager .handler = manager .lazyInit ? new LazyHttpHandler (Mono .fromSupplier (handlerSupplier ))
257
- : handlerSupplier .get ();
258
- manager .server .start ();
259
- }
260
- }
261
-
262
- static void stop (ServerManager manager ) {
263
- if (manager != null && manager .server != null ) {
264
- try {
265
- manager .server .stop ();
266
- }
267
- catch (Exception ex ) {
268
- throw new IllegalStateException (ex );
269
- }
270
- }
254
+ private void start (Supplier <HttpHandler > handlerSupplier ) {
255
+ this .handler = this .lazyInit ? new LazyHttpHandler (Mono .fromSupplier (handlerSupplier ))
256
+ : handlerSupplier .get ();
257
+ this .server .start ();
271
258
}
272
259
273
260
}
0 commit comments