This leverages existing capabilities of teh JDK and the OS
to grab a port at random and not have it stolen by another
process. It's very hard to avoid that race condition in
pure Java code, so why bother?
User can set port<0 to disable autoStart of connectors (e.g.
to start a web application context but not have it listen on
any port). In that case the actual socket port will be set to
0 (and therefore if it ever starts up the local port will
be random).
@ -54,8 +53,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
@@ -54,8 +53,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
privateIntegersessionTimeout;
privatebooleanscan=false;
@NotNull
privateStringcontextPath="";
@ -81,14 +78,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
@@ -81,14 +78,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
this.port=port;
}
publicbooleangetScan(){
returnthis.scan;
}
publicvoidsetScan(booleanscan){
this.scan=scan;
}
publicInetAddressgetAddress(){
returnthis.address;
}
@ -112,9 +101,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
@@ -112,9 +101,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
@ -132,26 +118,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
@@ -132,26 +118,6 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer {
@ -82,7 +82,6 @@ public abstract class AbstractEmbeddedServletContainerFactory implements
@@ -82,7 +82,6 @@ public abstract class AbstractEmbeddedServletContainerFactory implements
@ -94,7 +93,6 @@ public abstract class AbstractEmbeddedServletContainerFactory implements
@@ -94,7 +93,6 @@ public abstract class AbstractEmbeddedServletContainerFactory implements
@ -129,16 +127,9 @@ public abstract class AbstractEmbeddedServletContainerFactory implements
@@ -129,16 +127,9 @@ public abstract class AbstractEmbeddedServletContainerFactory implements
@Override
publicvoidsetPort(intport){
checkPort(port);
this.port=port;
}
privatevoidcheckPort(intport){
if(port<0||port>65535){
thrownewIllegalArgumentException("Port must be between 1 and 65535");
@ -81,6 +86,7 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer {
@@ -81,6 +86,7 @@ public class JettyEmbeddedServletContainer implements EmbeddedServletContainer {
@ -123,7 +124,7 @@ public class JettyEmbeddedServletContainerFactory extends
@@ -123,7 +124,7 @@ public class JettyEmbeddedServletContainerFactory extends
postProcessWebAppContext(context);
server.setHandler(context);
this.logger.info("Server initialized with port: "+getPort());
this.logger.info("Server initialized with port: "+port);
returngetJettyEmbeddedServletContainer(server);
}
@ -241,7 +242,7 @@ public class JettyEmbeddedServletContainerFactory extends
@@ -241,7 +242,7 @@ public class JettyEmbeddedServletContainerFactory extends
@ -104,6 +104,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
@@ -104,6 +104,7 @@ public class TomcatEmbeddedServletContainer implements EmbeddedServletContainer
if(connector!=null&&this.autoStart){
try{
connector.getProtocolHandler().start();
this.logger.info("Tomcat started on port: "+connector.getLocalPort());
@ -193,12 +193,8 @@ public class TomcatEmbeddedServletContainerFactory extends
@@ -193,12 +193,8 @@ public class TomcatEmbeddedServletContainerFactory extends
// Needs to be protected so it can be used by subclasses
@ -259,7 +255,7 @@ public class TomcatEmbeddedServletContainerFactory extends
@@ -259,7 +255,7 @@ public class TomcatEmbeddedServletContainerFactory extends