aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pom.xml7
-rw-r--r--server/sonar-server/pom.xml4
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/app/TomcatConnectors.java1
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/app/TomcatContexts.java7
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java80
5 files changed, 27 insertions, 72 deletions
diff --git a/pom.xml b/pom.xml
index 060a80d0c73..9cad53b940f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,7 +57,7 @@
<jetty.version>8.1.12.v20130726</jetty.version>
<logback.version>1.1.7</logback.version>
<slf4j.version>1.7.21</slf4j.version>
- <tomcat.version>8.0.32</tomcat.version>
+ <tomcat.version>8.5.9</tomcat.version>
<elasticsearch.version>2.3.5</elasticsearch.version>
<orchestrator.version>3.14.0.833</orchestrator.version>
<okhttp.version>3.3.1</okhttp.version>
@@ -996,11 +996,6 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-logging-juli</artifactId>
- <version>${tomcat.version}</version>
- </dependency>
- <dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
diff --git a/server/sonar-server/pom.xml b/server/sonar-server/pom.xml
index e420e95efee..fe686bff205 100644
--- a/server/sonar-server/pom.xml
+++ b/server/sonar-server/pom.xml
@@ -48,10 +48,6 @@
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-logging-juli</artifactId>
- </dependency>
- <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
diff --git a/server/sonar-server/src/main/java/org/sonar/server/app/TomcatConnectors.java b/server/sonar-server/src/main/java/org/sonar/server/app/TomcatConnectors.java
index 2111ccaa2aa..1ce5611e932 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/app/TomcatConnectors.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/app/TomcatConnectors.java
@@ -42,7 +42,6 @@ class TomcatConnectors {
static void configure(Tomcat tomcat, Props props) {
Connector httpConnector = newHttpConnector(props);
- tomcat.setConnector(httpConnector);
tomcat.getService().addConnector(httpConnector);
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/app/TomcatContexts.java b/server/sonar-server/src/main/java/org/sonar/server/app/TomcatContexts.java
index b15d76e0854..a12cc406cf1 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/app/TomcatContexts.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/app/TomcatContexts.java
@@ -19,9 +19,6 @@
*/
package org.sonar.server.app;
-import static java.lang.String.format;
-import static org.apache.commons.lang.StringUtils.isEmpty;
-
import com.google.common.annotations.VisibleForTesting;
import java.io.File;
import java.io.IOException;
@@ -36,6 +33,9 @@ import org.sonar.api.utils.log.Loggers;
import org.sonar.process.ProcessProperties;
import org.sonar.process.Props;
+import static java.lang.String.format;
+import static org.apache.commons.lang.StringUtils.isEmpty;
+
/**
* Configures Tomcat contexts:
* <ul>
@@ -98,7 +98,6 @@ public class TomcatContexts {
try {
StandardContext context = (StandardContext) tomcat.addWebapp(contextPath, dir.getAbsolutePath());
context.setClearReferencesHttpClientKeepAliveThread(false);
- context.setClearReferencesStatic(false);
context.setClearReferencesStopThreads(false);
context.setClearReferencesStopTimerThreads(false);
context.setClearReferencesStopTimerThreads(false);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java b/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java
index 0ab6b24c9bf..057ac23e02a 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/app/TomcatConnectorsTest.java
@@ -38,9 +38,8 @@ import static org.mockito.Mockito.verify;
public class TomcatConnectorsTest {
- Tomcat tomcat = mock(Tomcat.class, Mockito.RETURNS_DEEP_STUBS);
-
- // ---- connectors
+ private static final int DEFAULT_PORT = 9000;
+ private Tomcat tomcat = mock(Tomcat.class, Mockito.RETURNS_DEEP_STUBS);
@Test
public void configure_thread_pool() {
@@ -52,53 +51,27 @@ public class TomcatConnectorsTest {
TomcatConnectors.configure(tomcat, props);
- verify(tomcat).setConnector(argThat(new PropertiesMatcher(
- ImmutableMap.<String, Object>of("minSpareThreads", 2, "maxThreads", 30, "acceptCount", 20))));
+ verifyHttpConnector(DEFAULT_PORT, ImmutableMap.of("minSpareThreads", 2, "maxThreads", 30, "acceptCount", 20));
}
@Test
- public void configure_default_thread_pool() {
+ public void configure_defaults() {
Props props = new Props(new Properties());
TomcatConnectors.configure(tomcat, props);
- verify(tomcat).setConnector(argThat(new PropertiesMatcher(
- ImmutableMap.<String, Object>of("minSpareThreads", 5, "maxThreads", 50, "acceptCount", 25))));
+ verifyHttpConnector(DEFAULT_PORT, ImmutableMap.of("minSpareThreads", 5, "maxThreads", 50, "acceptCount", 25));
}
@Test
public void different_thread_pools_for_connectors() {
Properties p = new Properties();
- p.setProperty("sonar.web.port", "9000");
p.setProperty("sonar.web.http.minThreads", "2");
Props props = new Props(p);
TomcatConnectors.configure(tomcat, props);
- verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher<Connector>() {
- @Override
- public boolean matches(Object o) {
- Connector c = (Connector) o;
- return c.getPort() == 9000 && c.getProperty("minSpareThreads").equals(2);
- }
- }));
- }
-
- @Test
- public void http_connector_is_enabled() {
- Properties p = new Properties();
- p.setProperty("sonar.web.port", "9000");
- Props props = new Props(p);
-
- TomcatConnectors.configure(tomcat, props);
-
- verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher<Connector>() {
- @Override
- public boolean matches(Object o) {
- Connector c = (Connector) o;
- return c.getScheme().equals("http") && c.getPort() == 9000 && c.getProtocol().equals(TomcatConnectors.HTTP_PROTOCOL);
- }
- }));
+ verifyHttpConnector(DEFAULT_PORT, ImmutableMap.of("minSpareThreads", 2));
}
@Test
@@ -149,11 +122,9 @@ public class TomcatConnectorsTest {
@Test
public void test_max_http_header_size_for_http_connection() {
- Properties properties = new Properties();
+ TomcatConnectors.configure(tomcat, new Props(new Properties()));
- Props props = new Props(properties);
- TomcatConnectors.configure(tomcat, props);
- verifyConnectorProperty(tomcat, "http", "maxHttpHeaderSize", TomcatConnectors.MAX_HTTP_HEADER_SIZE_BYTES);
+ verifyHttpConnector(DEFAULT_PORT, ImmutableMap.of("maxHttpHeaderSize", TomcatConnectors.MAX_HTTP_HEADER_SIZE_BYTES));
}
@Test
@@ -171,32 +142,27 @@ public class TomcatConnectorsTest {
}));
}
- private static void verifyConnectorProperty(Tomcat tomcat, final String connectorScheme,
- final String property, final Object propertyValue) {
+ private void verifyHttpConnector(int expectedPort, Map<String,Object> expectedProps) {
verify(tomcat.getService()).addConnector(argThat(new ArgumentMatcher<Connector>() {
@Override
public boolean matches(Object o) {
Connector c = (Connector) o;
- return c.getScheme().equals(connectorScheme) && c.getProperty(property).equals(propertyValue);
- }
- }));
- }
-
- private static class PropertiesMatcher extends ArgumentMatcher<Connector> {
- private final Map<String, Object> expected;
-
- PropertiesMatcher(Map<String, Object> expected) {
- this.expected = expected;
- }
-
- public boolean matches(Object o) {
- Connector c = (Connector) o;
- for (Map.Entry<String, Object> entry : expected.entrySet()) {
- if (!entry.getValue().equals(c.getProperty(entry.getKey()))) {
+ if (!c.getScheme().equals("http")) {
+ return false;
+ }
+ if (!c.getProtocol().equals(TomcatConnectors.HTTP_PROTOCOL)) {
return false;
}
+ if (c.getPort() != expectedPort) {
+ return false;
+ }
+ for (Map.Entry<String, Object> expectedProp : expectedProps.entrySet()) {
+ if (!expectedProp.getValue().equals(c.getProperty(expectedProp.getKey()))) {
+ return false;
+ }
+ }
+ return true;
}
- return true;
- }
+ }));
}
}