Only use AprLifecycleListener when native library is available
Closes gh-16040
This commit is contained in:
parent
db4623c519
commit
22c9364237
|
|
@ -22,7 +22,6 @@ import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.catalina.Context;
|
import org.apache.catalina.Context;
|
||||||
|
|
@ -67,8 +66,7 @@ public class TomcatReactiveWebServerFactory extends AbstractReactiveWebServerFac
|
||||||
|
|
||||||
private List<Valve> engineValves = new ArrayList<>();
|
private List<Valve> engineValves = new ArrayList<>();
|
||||||
|
|
||||||
private List<LifecycleListener> contextLifecycleListeners = new ArrayList<>(
|
private List<LifecycleListener> contextLifecycleListeners = getDefaultLifecycleListeners();
|
||||||
Collections.singleton(new AprLifecycleListener()));
|
|
||||||
|
|
||||||
private List<TomcatContextCustomizer> tomcatContextCustomizers = new ArrayList<>();
|
private List<TomcatContextCustomizer> tomcatContextCustomizers = new ArrayList<>();
|
||||||
|
|
||||||
|
|
@ -95,6 +93,13 @@ public class TomcatReactiveWebServerFactory extends AbstractReactiveWebServerFac
|
||||||
super(port);
|
super(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<LifecycleListener> getDefaultLifecycleListeners() {
|
||||||
|
AprLifecycleListener aprLifecycleListener = new AprLifecycleListener();
|
||||||
|
return AprLifecycleListener.isAprAvailable()
|
||||||
|
? new ArrayList<>(Arrays.asList(aprLifecycleListener))
|
||||||
|
: new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WebServer getWebServer(HttpHandler httpHandler) {
|
public WebServer getWebServer(HttpHandler httpHandler) {
|
||||||
Tomcat tomcat = new Tomcat();
|
Tomcat tomcat = new Tomcat();
|
||||||
|
|
|
||||||
|
|
@ -111,8 +111,7 @@ public class TomcatServletWebServerFactory extends AbstractServletWebServerFacto
|
||||||
|
|
||||||
private List<Valve> contextValves = new ArrayList<>();
|
private List<Valve> contextValves = new ArrayList<>();
|
||||||
|
|
||||||
private List<LifecycleListener> contextLifecycleListeners = new ArrayList<>(
|
private List<LifecycleListener> contextLifecycleListeners = getDefaultLifecycleListeners();
|
||||||
Collections.singleton(new AprLifecycleListener()));
|
|
||||||
|
|
||||||
private List<TomcatContextCustomizer> tomcatContextCustomizers = new ArrayList<>();
|
private List<TomcatContextCustomizer> tomcatContextCustomizers = new ArrayList<>();
|
||||||
|
|
||||||
|
|
@ -155,6 +154,13 @@ public class TomcatServletWebServerFactory extends AbstractServletWebServerFacto
|
||||||
super(contextPath, port);
|
super(contextPath, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<LifecycleListener> getDefaultLifecycleListeners() {
|
||||||
|
AprLifecycleListener aprLifecycleListener = new AprLifecycleListener();
|
||||||
|
return AprLifecycleListener.isAprAvailable()
|
||||||
|
? new ArrayList<>(Arrays.asList(aprLifecycleListener))
|
||||||
|
: new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WebServer getWebServer(ServletContextInitializer... initializers) {
|
public WebServer getWebServer(ServletContextInitializer... initializers) {
|
||||||
Tomcat tomcat = new Tomcat();
|
Tomcat tomcat = new Tomcat();
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,13 @@ public class TomcatReactiveWebServerFactoryTests
|
||||||
@Test
|
@Test
|
||||||
public void defaultTomcatListeners() {
|
public void defaultTomcatListeners() {
|
||||||
TomcatReactiveWebServerFactory factory = getFactory();
|
TomcatReactiveWebServerFactory factory = getFactory();
|
||||||
assertThat(factory.getContextLifecycleListeners()).hasSize(1).first()
|
if (AprLifecycleListener.isAprAvailable()) {
|
||||||
.isInstanceOf(AprLifecycleListener.class);
|
assertThat(factory.getContextLifecycleListeners()).hasSize(1).first()
|
||||||
|
.isInstanceOf(AprLifecycleListener.class);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
assertThat(factory.getContextLifecycleListeners()).isEmpty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -134,8 +134,13 @@ public class TomcatServletWebServerFactoryTests
|
||||||
@Test
|
@Test
|
||||||
public void defaultTomcatListeners() {
|
public void defaultTomcatListeners() {
|
||||||
TomcatServletWebServerFactory factory = getFactory();
|
TomcatServletWebServerFactory factory = getFactory();
|
||||||
assertThat(factory.getContextLifecycleListeners()).hasSize(1).first()
|
if (AprLifecycleListener.isAprAvailable()) {
|
||||||
.isInstanceOf(AprLifecycleListener.class);
|
assertThat(factory.getContextLifecycleListeners()).hasSize(1).first()
|
||||||
|
.isInstanceOf(AprLifecycleListener.class);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
assertThat(factory.getContextLifecycleListeners()).isEmpty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue