Skip to content

Commit ad767ca

Browse files
committed
Polish "Simplify the configuration of the ProtocolHandler"
Closes gh-16342
1 parent 2eaa64f commit ad767ca

File tree

5 files changed

+35
-19
lines changed

5 files changed

+35
-19
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/ReactiveWebServerFactoryConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static class EmbeddedTomcat {
7878
public TomcatReactiveWebServerFactory tomcatReactiveWebServerFactory(
7979
ObjectProvider<TomcatConnectorCustomizer> connectorCustomizers,
8080
ObjectProvider<TomcatContextCustomizer> contextCustomizers,
81-
ObjectProvider<TomcatProtocolHandlerCustomizer> protocolHandlerCustomizers) {
81+
ObjectProvider<TomcatProtocolHandlerCustomizer<?>> protocolHandlerCustomizers) {
8282
TomcatReactiveWebServerFactory factory = new TomcatReactiveWebServerFactory();
8383
factory.getTomcatConnectorCustomizers().addAll(
8484
connectorCustomizers.orderedStream().collect(Collectors.toList()));

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public static class EmbeddedTomcat {
6868
public TomcatServletWebServerFactory tomcatServletWebServerFactory(
6969
ObjectProvider<TomcatConnectorCustomizer> connectorCustomizers,
7070
ObjectProvider<TomcatContextCustomizer> contextCustomizers,
71-
ObjectProvider<TomcatProtocolHandlerCustomizer> protocolHandlerCustomizers) {
71+
ObjectProvider<TomcatProtocolHandlerCustomizer<?>> protocolHandlerCustomizers) {
7272
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
7373
factory.getTomcatConnectorCustomizers().addAll(
7474
connectorCustomizers.orderedStream().collect(Collectors.toList()));

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/ConfigurableTomcatWebServerFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public interface ConfigurableTomcatWebServerFactory extends ConfigurableWebServe
7474
* @param tomcatProtocolHandlerCustomizers the customizers to add
7575
*/
7676
void addProtocolHandlerCustomizers(
77-
TomcatProtocolHandlerCustomizer... tomcatProtocolHandlerCustomizers);
77+
TomcatProtocolHandlerCustomizer<?>... tomcatProtocolHandlerCustomizers);
7878

7979
/**
8080
* Set the character encoding to use for URL decoding. If not specified 'UTF-8' will

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatReactiveWebServerFactory.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@
3434
import org.apache.catalina.loader.WebappLoader;
3535
import org.apache.catalina.startup.Tomcat;
3636
import org.apache.coyote.AbstractProtocol;
37+
import org.apache.coyote.ProtocolHandler;
3738
import org.apache.coyote.http2.Http2Protocol;
3839
import org.apache.tomcat.util.scan.StandardJarScanFilter;
3940

41+
import org.springframework.boot.util.LambdaSafe;
4042
import org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFactory;
4143
import org.springframework.boot.web.reactive.server.ReactiveWebServerFactory;
4244
import org.springframework.boot.web.server.WebServer;
@@ -72,7 +74,7 @@ public class TomcatReactiveWebServerFactory extends AbstractReactiveWebServerFac
7274

7375
private List<TomcatConnectorCustomizer> tomcatConnectorCustomizers = new ArrayList<>();
7476

75-
private List<TomcatProtocolHandlerCustomizer> tomcatProtocolHandlerCustomizers = new ArrayList<>();
77+
private List<TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizers = new ArrayList<>();
7678

7779
private String protocol = DEFAULT_PROTOCOL;
7880

@@ -170,10 +172,7 @@ protected void customizeConnector(Connector connector) {
170172
if (connector.getProtocolHandler() instanceof AbstractProtocol) {
171173
customizeProtocol((AbstractProtocol<?>) connector.getProtocolHandler());
172174
}
173-
174-
this.tomcatProtocolHandlerCustomizers.forEach(
175-
(customizer) -> customizer.customize(connector.getProtocolHandler()));
176-
175+
invokeProtocolHandlerCustomizers(connector);
177176
if (getUriEncoding() != null) {
178177
connector.setURIEncoding(getUriEncoding().name());
179178
}
@@ -190,6 +189,15 @@ protected void customizeConnector(Connector connector) {
190189
}
191190
}
192191

192+
@SuppressWarnings("unchecked")
193+
private void invokeProtocolHandlerCustomizers(Connector connector) {
194+
ProtocolHandler protocolHandler = connector.getProtocolHandler();
195+
LambdaSafe
196+
.callbacks(TomcatProtocolHandlerCustomizer.class,
197+
this.tomcatProtocolHandlerCustomizers, protocolHandler)
198+
.invoke((customizer) -> customizer.customize(protocolHandler));
199+
}
200+
193201
private void customizeProtocol(AbstractProtocol<?> protocol) {
194202
if (getAddress() != null) {
195203
protocol.setAddress(getAddress());
@@ -287,7 +295,7 @@ public Collection<TomcatConnectorCustomizer> getTomcatConnectorCustomizers() {
287295
* @param tomcatProtocolHandlerCustomizers the customizers to set
288296
*/
289297
public void setTomcatProtocolHandlerCustomizers(
290-
Collection<? extends TomcatProtocolHandlerCustomizer> tomcatProtocolHandlerCustomizers) {
298+
Collection<? extends TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizers) {
291299
Assert.notNull(tomcatProtocolHandlerCustomizers,
292300
"TomcatProtocolHandlerCustomizers must not be null");
293301
this.tomcatProtocolHandlerCustomizers = new ArrayList<>(
@@ -301,7 +309,7 @@ public void setTomcatProtocolHandlerCustomizers(
301309
*/
302310
@Override
303311
public void addProtocolHandlerCustomizers(
304-
TomcatProtocolHandlerCustomizer... tomcatProtocolHandlerCustomizers) {
312+
TomcatProtocolHandlerCustomizer<?>... tomcatProtocolHandlerCustomizers) {
305313
Assert.notNull(tomcatProtocolHandlerCustomizers,
306314
"TomcatProtocolHandlerCustomizers must not be null");
307315
this.tomcatProtocolHandlerCustomizers
@@ -313,7 +321,7 @@ public void addProtocolHandlerCustomizers(
313321
* will be applied to the Tomcat {@link Connector}.
314322
* @return the customizers that will be applied
315323
*/
316-
public Collection<TomcatProtocolHandlerCustomizer> getTomcatProtocolHandlerCustomizers() {
324+
public Collection<TomcatProtocolHandlerCustomizer<?>> getTomcatProtocolHandlerCustomizers() {
317325
return this.tomcatProtocolHandlerCustomizers;
318326
}
319327

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@
5858
import org.apache.catalina.webresources.EmptyResource;
5959
import org.apache.catalina.webresources.StandardRoot;
6060
import org.apache.coyote.AbstractProtocol;
61+
import org.apache.coyote.ProtocolHandler;
6162
import org.apache.coyote.http2.Http2Protocol;
6263
import org.apache.tomcat.util.scan.StandardJarScanFilter;
6364

65+
import org.springframework.boot.util.LambdaSafe;
6466
import org.springframework.boot.web.server.ErrorPage;
6567
import org.springframework.boot.web.server.MimeMappings;
6668
import org.springframework.boot.web.server.WebServer;
@@ -117,7 +119,7 @@ public class TomcatServletWebServerFactory extends AbstractServletWebServerFacto
117119

118120
private List<TomcatConnectorCustomizer> tomcatConnectorCustomizers = new ArrayList<>();
119121

120-
private List<TomcatProtocolHandlerCustomizer> tomcatProtocolHandlerCustomizers = new ArrayList<>();
122+
private List<TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizers = new ArrayList<>();
121123

122124
private List<Connector> additionalTomcatConnectors = new ArrayList<>();
123125

@@ -305,10 +307,7 @@ protected void customizeConnector(Connector connector) {
305307
if (connector.getProtocolHandler() instanceof AbstractProtocol) {
306308
customizeProtocol((AbstractProtocol<?>) connector.getProtocolHandler());
307309
}
308-
309-
this.tomcatProtocolHandlerCustomizers.forEach(
310-
(customizer) -> customizer.customize(connector.getProtocolHandler()));
311-
310+
invokeProtocolHandlerCustomizers(connector);
312311
if (getUriEncoding() != null) {
313312
connector.setURIEncoding(getUriEncoding().name());
314313
}
@@ -331,6 +330,15 @@ private void customizeProtocol(AbstractProtocol<?> protocol) {
331330
}
332331
}
333332

333+
@SuppressWarnings("unchecked")
334+
private void invokeProtocolHandlerCustomizers(Connector connector) {
335+
ProtocolHandler protocolHandler = connector.getProtocolHandler();
336+
LambdaSafe
337+
.callbacks(TomcatProtocolHandlerCustomizer.class,
338+
this.tomcatProtocolHandlerCustomizers, protocolHandler)
339+
.invoke((customizer) -> customizer.customize(protocolHandler));
340+
}
341+
334342
private void customizeSsl(Connector connector) {
335343
new SslConnectorCustomizer(getSsl(), getSslStoreProvider()).customize(connector);
336344
if (getHttp2() != null && getHttp2().isEnabled()) {
@@ -631,7 +639,7 @@ public Collection<TomcatConnectorCustomizer> getTomcatConnectorCustomizers() {
631639
* @param tomcatProtocolHandlerCustomizer the customizers to set
632640
*/
633641
public void setTomcatProtocolHandlerCustomizers(
634-
Collection<? extends TomcatProtocolHandlerCustomizer> tomcatProtocolHandlerCustomizer) {
642+
Collection<? extends TomcatProtocolHandlerCustomizer<?>> tomcatProtocolHandlerCustomizer) {
635643
Assert.notNull(tomcatProtocolHandlerCustomizer,
636644
"TomcatProtocolHandlerCustomizers must not be null");
637645
this.tomcatProtocolHandlerCustomizers = new ArrayList<>(
@@ -645,7 +653,7 @@ public void setTomcatProtocolHandlerCustomizers(
645653
*/
646654
@Override
647655
public void addProtocolHandlerCustomizers(
648-
TomcatProtocolHandlerCustomizer... tomcatProtocolHandlerCustomizers) {
656+
TomcatProtocolHandlerCustomizer<?>... tomcatProtocolHandlerCustomizers) {
649657
Assert.notNull(tomcatProtocolHandlerCustomizers,
650658
"TomcatProtocolHandlerCustomizers must not be null");
651659
this.tomcatProtocolHandlerCustomizers
@@ -657,7 +665,7 @@ public void addProtocolHandlerCustomizers(
657665
* will be applied to the Tomcat {@link Connector}.
658666
* @return the customizers that will be applied
659667
*/
660-
public Collection<TomcatProtocolHandlerCustomizer> getTomcatProtocolHandlerCustomizers() {
668+
public Collection<TomcatProtocolHandlerCustomizer<?>> getTomcatProtocolHandlerCustomizers() {
661669
return this.tomcatProtocolHandlerCustomizers;
662670
}
663671

0 commit comments

Comments
 (0)