Repository: ambari Updated Branches: refs/heads/branch-2.4 6c8248dec -> a76215f67
AMBARI-17991 Ambari agent unable to register with server when server response is too big (dsen) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a76215f6 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a76215f6 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a76215f6 Branch: refs/heads/branch-2.4 Commit: a76215f67d7e95e5a33d72012e16efb34f4de6c6 Parents: 6c8248d Author: Dmytro Sen <[email protected]> Authored: Thu Aug 4 18:36:58 2016 +0300 Committer: Dmytro Sen <[email protected]> Committed: Thu Aug 4 18:37:42 2016 +0300 ---------------------------------------------------------------------- .../src/main/python/ambari_agent/security.py | 2 +- ambari-funtest/pom.xml | 10 +- .../ambari-logsearch-portal/pom.xml | 25 +++ ambari-project/pom.xml | 22 ++- ambari-server/pom.xml | 23 +-- .../ambari/server/api/AmbariErrorHandler.java | 14 +- .../ambari/server/controller/AmbariServer.java | 159 ++++++------------- .../server/stack/ConfigurationDirectory.java | 4 +- .../apache/ambari/server/utils/JsonUtils.java | 4 +- .../server/api/AmbariErrorHandlerTest.java | 3 +- .../audit/request/DefaultEventCreatorTest.java | 5 +- 11 files changed, 126 insertions(+), 145 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-agent/src/main/python/ambari_agent/security.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/security.py b/ambari-agent/src/main/python/ambari_agent/security.py index 779b85c..a0b5e7e 100644 --- a/ambari-agent/src/main/python/ambari_agent/security.py +++ b/ambari-agent/src/main/python/ambari_agent/security.py @@ -98,7 +98,7 @@ class VerifiedHTTPSConnection(httplib.HTTPSConnection): if self.sock: self.sock.close() logger.info("SSL Connect being called.. connecting to the server") - sock = socket.create_connection((self.host, self.port), 60) + sock = socket.create_connection((self.host, self.port), 90) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) if self._tunnel_host: self.sock = sock http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-funtest/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-funtest/pom.xml b/ambari-funtest/pom.xml index 422137a..257af3b 100644 --- a/ambari-funtest/pom.xml +++ b/ambari-funtest/pom.xml @@ -302,8 +302,14 @@ </dependency> <!--jsp support for jetty --> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-jsp</artifactId> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-api-2.1-glassfish</artifactId> + <version>2.1.v20100127</version> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-2.1-glassfish</artifactId> + <version>2.1.v20100127</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-logsearch/ambari-logsearch-portal/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/pom.xml b/ambari-logsearch/ambari-logsearch-portal/pom.xml index 6233b48..2b2ca50 100755 --- a/ambari-logsearch/ambari-logsearch-portal/pom.xml +++ b/ambari-logsearch/ambari-logsearch-portal/pom.xml @@ -596,6 +596,31 @@ </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-security</artifactId> + <version>${jetty-version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>${jetty-version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-servlet</artifactId> + <version>${jetty-version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-servlets</artifactId> + <version>${jetty-version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>${jetty-version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>${jetty-version}</version> <exclusions> http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-project/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-project/pom.xml b/ambari-project/pom.xml index 019108b..64e0ff5 100644 --- a/ambari-project/pom.xml +++ b/ambari-project/pom.xml @@ -29,6 +29,7 @@ <properties> <ambari.dir>${project.parent.basedir}</ambari.dir> <powermock.version>1.6.3</powermock.version> + <jetty.version>8.1.19.v20160209</jetty.version> </properties> <profiles> <profile> @@ -260,32 +261,37 @@ <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> - <version>9.2.11.v20150529</version> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-security</artifactId> - <version>9.2.11.v20150529</version> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlet</artifactId> - <version>9.2.11.v20150529</version> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlets</artifactId> - <version>9.2.11.v20150529</version> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> - <version>9.2.11.v20150529</version> + <version>${jetty.version}</version> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-jsp</artifactId> - <version>9.2.11.v20150529</version> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-api-2.1-glassfish</artifactId> + <version>2.1.v20100127</version> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-2.1-glassfish</artifactId> + <version>2.1.v20100127</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml index 8d59460..63c2185 100644 --- a/ambari-server/pom.xml +++ b/ambari-server/pom.xml @@ -45,7 +45,6 @@ <tarballResourcesFolder>src/main/resources</tarballResourcesFolder> <skipPythonTests>false</skipPythonTests> <hadoop.version>2.7.1</hadoop.version> - <jetty.version>9.2.11.v20150529</jetty.version> <empty.dir>src/main/package</empty.dir> <!-- any directory in project with not very big amount of files (not to waste-load them) --> </properties> <build> @@ -1090,22 +1089,32 @@ <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-security</artifactId> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlet</artifactId> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlets</artifactId> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> + <version>${jetty.version}</version> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-jsp</artifactId> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-api-2.1-glassfish</artifactId> + <version>2.1.v20100127</version> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-2.1-glassfish</artifactId> + <version>2.1.v20100127</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> @@ -1115,6 +1124,7 @@ <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> + <version>${jetty.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> @@ -1268,7 +1278,7 @@ <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> - <version>2.2.2</version> + <version>2.7</version> </dependency> <dependency> <groupId>org.postgresql</groupId> @@ -1359,11 +1369,6 @@ <version>${jetty.version}</version> </dependency> <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-util-ajax</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.3.1</version> http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/src/main/java/org/apache/ambari/server/api/AmbariErrorHandler.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/AmbariErrorHandler.java b/ambari-server/src/main/java/org/apache/ambari/server/api/AmbariErrorHandler.java index 373face..c4a80f2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/AmbariErrorHandler.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/AmbariErrorHandler.java @@ -25,8 +25,7 @@ import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.security.authorization.jwt.JwtAuthenticationProperties; import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.MimeTypes; -import org.eclipse.jetty.server.HttpChannel; -import org.eclipse.jetty.server.HttpConnection; +import org.eclipse.jetty.server.AbstractHttpConnection; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.ErrorHandler; @@ -51,14 +50,15 @@ public class AmbariErrorHandler extends ErrorHandler { @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException { - HttpChannel httpChannel = HttpConnection.getCurrentConnection().getHttpChannel(); - httpChannel.getRequest().setHandled(true); - response.setContentType(MimeTypes.Type.TEXT_PLAIN.asString()); + AbstractHttpConnection connection = AbstractHttpConnection.getCurrentConnection(); + connection.getRequest().setHandled(true); + + response.setContentType(MimeTypes.TEXT_PLAIN); Map<String, Object> errorMap = new LinkedHashMap<String, Object>(); - int code = httpChannel.getResponse().getStatus(); + int code = connection.getResponse().getStatus(); errorMap.put("status", code); - String message = httpChannel.getResponse().getReason(); + String message = connection.getResponse().getReason(); if (message == null) { message = HttpStatus.getMessage(code); } http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java index bd96868..a6d8d6a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java @@ -119,15 +119,11 @@ import org.apache.ambari.server.view.ViewDirectoryWatcher; import org.apache.ambari.server.view.ViewRegistry; import org.apache.ambari.server.view.ViewThrottleFilter; import org.apache.velocity.app.Velocity; -import org.eclipse.jetty.http.HttpVersion; -import org.eclipse.jetty.server.HttpConfiguration; -import org.eclipse.jetty.server.HttpConnectionFactory; -import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SessionIdManager; import org.eclipse.jetty.server.SessionManager; -import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.nio.SelectChannelConnector; +import org.eclipse.jetty.server.ssl.SslSelectChannelConnector; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.FilterHolder; import org.eclipse.jetty.servlet.ServletContextHandler; @@ -413,11 +409,10 @@ public class AmbariServer { if (configs.getAgentSSLAuthentication()) { //Secured connector for 2-way auth SslContextFactory contextFactoryTwoWay = new SslContextFactory(); - HttpConfiguration httpConfigurationTwoWay = new HttpConfiguration(); - httpConfigurationTwoWay.setSecureScheme("https"); - httpConfigurationTwoWay.setSecurePort(configs.getTwoWayAuthPort()); - httpConfigurationTwoWay.addCustomizer(new SecureRequestCustomizer()); - setHeaderSize(httpConfigurationTwoWay); + disableInsecureProtocols(contextFactoryTwoWay); + + SslSelectChannelConnector sslConnectorTwoWay = new SslSelectChannelConnector(contextFactoryTwoWay); + sslConnectorTwoWay.setPort(configs.getTwoWayAuthPort()); String keystore = configsMap.get(Configuration.SRVR_KSTR_DIR_KEY) + File.separator + configsMap.get(Configuration.KSTR_NAME_KEY); @@ -427,20 +422,21 @@ public class AmbariServer { String srvrCrtPass = configsMap.get(Configuration.SRVR_CRT_PASS_KEY); - contextFactoryTwoWay.setKeyStorePath(keystore); - contextFactoryTwoWay.setTrustStorePath(truststore); - contextFactoryTwoWay.setKeyManagerPassword(srvrCrtPass); - contextFactoryTwoWay.setKeyStorePassword(srvrCrtPass); - contextFactoryTwoWay.setTrustStorePassword(srvrCrtPass); - contextFactoryTwoWay.setKeyStoreType(configsMap.get(Configuration.KSTR_TYPE_KEY)); - contextFactoryTwoWay.setTrustStoreType(configsMap.get(Configuration.TSTR_TYPE_KEY)); - contextFactoryTwoWay.setNeedClientAuth(configs.getTwoWaySsl()); - disableInsecureProtocols(contextFactoryTwoWay); + sslConnectorTwoWay.setKeystore(keystore); + sslConnectorTwoWay.setTruststore(truststore); + sslConnectorTwoWay.setPassword(srvrCrtPass); + sslConnectorTwoWay.setKeyPassword(srvrCrtPass); + sslConnectorTwoWay.setTrustPassword(srvrCrtPass); + sslConnectorTwoWay.setKeystoreType(configsMap.get(Configuration.KSTR_TYPE_KEY)); + sslConnectorTwoWay.setTruststoreType(configsMap.get(Configuration.TSTR_TYPE_KEY)); + sslConnectorTwoWay.setNeedClientAuth(configs.getTwoWaySsl()); + sslConnectorTwoWay.setRequestHeaderSize(configs.getHttpRequestHeaderSize()); + sslConnectorTwoWay.setResponseHeaderSize(configs.getHttpResponseHeaderSize()); //SSL Context Factory SslContextFactory contextFactoryOneWay = new SslContextFactory(true); contextFactoryOneWay.setKeyStorePath(keystore); - contextFactoryOneWay.setTrustStorePath(truststore); + contextFactoryOneWay.setTrustStore(truststore); contextFactoryOneWay.setKeyStorePassword(srvrCrtPass); contextFactoryOneWay.setKeyManagerPassword(srvrCrtPass); contextFactoryOneWay.setTrustStorePassword(srvrCrtPass); @@ -449,43 +445,32 @@ public class AmbariServer { contextFactoryOneWay.setNeedClientAuth(false); disableInsecureProtocols(contextFactoryOneWay); - HttpConfiguration httpConfigurationOneWay = new HttpConfiguration(); - httpConfigurationOneWay.setSecureScheme("https"); - httpConfigurationOneWay.setSecurePort(configs.getOneWayAuthPort()); - httpConfigurationOneWay.addCustomizer(new SecureRequestCustomizer()); - setHeaderSize(httpConfigurationOneWay); - - Map <String, Integer> agentSelectorAcceptorMap = getDesiredAgentAcceptorSelector(serverForAgent); - // SSL for 1-way auth - ServerConnector sslConnectorOneWay = new ServerConnector(serverForAgent, - agentSelectorAcceptorMap.get("desiredAcceptors"), agentSelectorAcceptorMap.get("desiredSelectors"), - new SslConnectionFactory(contextFactoryOneWay, HttpVersion.HTTP_1_1.asString()), - new HttpConnectionFactory(httpConfigurationOneWay)); - + //Secured connector for 1-way auth + SslSelectChannelConnector sslConnectorOneWay = new SslSelectChannelConnector(contextFactoryOneWay); sslConnectorOneWay.setPort(configs.getOneWayAuthPort()); + sslConnectorOneWay.setRequestHeaderSize(configs.getHttpRequestHeaderSize()); + sslConnectorOneWay.setResponseHeaderSize(configs.getHttpResponseHeaderSize()); - // SSL for 2-way auth - ServerConnector sslConnectorTwoWay = new ServerConnector(serverForAgent, - agentSelectorAcceptorMap.get("desiredAcceptors"), agentSelectorAcceptorMap.get("desiredSelectors"), - new SslConnectionFactory(contextFactoryTwoWay, HttpVersion.HTTP_1_1.asString()), - new HttpConnectionFactory(httpConfigurationTwoWay)); - - sslConnectorTwoWay.setPort(configs.getTwoWayAuthPort()); + // because there are two connectors sharing the same pool, cut each's + // acceptors in half + int sslAcceptors = sslConnectorOneWay.getAcceptors(); + sslConnectorOneWay.setAcceptors(Math.max(2, sslAcceptors / 2)); + sslConnectorTwoWay.setAcceptors(Math.max(2, sslAcceptors / 2)); // Agent Jetty thread pool configureJettyThreadPool(serverForAgent, sslConnectorOneWay.getAcceptors(), - AGENT_THREAD_POOL_NAME, configs.getAgentThreadPoolSize()); + "qtp-ambari-agent", configs.getAgentThreadPoolSize()); serverForAgent.addConnector(sslConnectorOneWay); serverForAgent.addConnector(sslConnectorTwoWay); } else { - ServerConnector agentConnector = new ServerConnector(serverForAgent); + SelectChannelConnector agentConnector = new SelectChannelConnector(); agentConnector.setPort(configs.getOneWayAuthPort()); - agentConnector.setIdleTimeout(configs.getConnectionMaxIdleTime()); + agentConnector.setMaxIdleTime(configs.getConnectionMaxIdleTime()); // Agent Jetty thread pool - configureJettyThreadPool(serverForAgent, agentConnector.getAcceptors(), AGENT_THREAD_POOL_NAME, - configs.getAgentThreadPoolSize()); + configureJettyThreadPool(serverForAgent, agentConnector.getAcceptors(), "qtp-ambari-agent", + configs.getAgentThreadPoolSize()); serverForAgent.addConnector(agentConnector); } @@ -548,7 +533,7 @@ public class AmbariServer { } /* Configure the API server to use the NIO connectors */ - ServerConnector apiConnector; + SelectChannelConnector apiConnector; if (configs.getApiSSLAuthentication()) { String httpsKeystore = configsMap.get(Configuration.CLIENT_API_SSL_KSTR_DIR_NAME_KEY) + @@ -561,35 +546,26 @@ public class AmbariServer { SslContextFactory contextFactoryApi = new SslContextFactory(); disableInsecureProtocols(contextFactoryApi); - - contextFactoryApi.setKeyStorePath(httpsKeystore); - contextFactoryApi.setTrustStorePath(httpsTruststore); - contextFactoryApi.setKeyManagerPassword(httpsCrtPass); - contextFactoryApi.setKeyStorePassword(httpsCrtPass); - contextFactoryApi.setTrustStorePassword(httpsCrtPass); - contextFactoryApi.setKeyStoreType(configsMap.get(Configuration.CLIENT_API_SSL_KSTR_TYPE_KEY)); - contextFactoryApi.setTrustStoreType(configsMap.get(Configuration.CLIENT_API_SSL_KSTR_TYPE_KEY)); - - HttpConfiguration httpConfigurationSSL = new HttpConfiguration(); - httpConfigurationSSL.setSecurePort(configs.getClientSSLApiPort()); - httpConfigurationSSL.addCustomizer(new SecureRequestCustomizer()); - setHeaderSize(httpConfigurationSSL); - - ServerConnector https = new ServerConnector(server, new SslConnectionFactory(contextFactoryApi, "http/1.1"), - new HttpConnectionFactory(httpConfigurationSSL)); - https.setPort(configs.getClientSSLApiPort()); - https.setIdleTimeout(configs.getConnectionMaxIdleTime()); - apiConnector = https; + SslSelectChannelConnector sapiConnector = new SslSelectChannelConnector(contextFactoryApi); + sapiConnector.setPort(configs.getClientSSLApiPort()); + sapiConnector.setKeystore(httpsKeystore); + sapiConnector.setTruststore(httpsTruststore); + sapiConnector.setPassword(httpsCrtPass); + sapiConnector.setKeyPassword(httpsCrtPass); + sapiConnector.setTrustPassword(httpsCrtPass); + sapiConnector.setKeystoreType(configsMap.get(Configuration.CLIENT_API_SSL_KSTR_TYPE_KEY)); + sapiConnector.setTruststoreType(configsMap.get(Configuration.CLIENT_API_SSL_KSTR_TYPE_KEY)); + sapiConnector.setMaxIdleTime(configs.getConnectionMaxIdleTime()); + apiConnector = sapiConnector; } else { - HttpConfiguration httpConfiguration = new HttpConfiguration(); - httpConfiguration.setSecurePort(configs.getClientApiPort()); - setHeaderSize(httpConfiguration); - - apiConnector = new ServerConnector(server, new HttpConnectionFactory(httpConfiguration)); + apiConnector = new SelectChannelConnector(); apiConnector.setPort(configs.getClientApiPort()); - apiConnector.setIdleTimeout(configs.getConnectionMaxIdleTime()); + apiConnector.setMaxIdleTime(configs.getConnectionMaxIdleTime()); } + apiConnector.setRequestHeaderSize(configs.getHttpRequestHeaderSize()); + apiConnector.setResponseHeaderSize(configs.getHttpResponseHeaderSize()); + // Client Jetty thread pool configureJettyThreadPool(server, apiConnector.getAcceptors(), CLIENT_THREAD_POOL_NAME, configs.getClientThreadPoolSize()); server.addConnector(apiConnector); @@ -674,38 +650,13 @@ public class AmbariServer { } /** - * Calculate desired Acceptor and Selector for Jetty agent ServerConnector - * @param serverForAgent - * the Jetty server instance which will have the selector and Acceptor set on it - * @return jettySelectorAcceptorMap - * Map with "desiredAcceptors" and "desiredSelectors" keys - */ - protected Map<String, Integer> getDesiredAgentAcceptorSelector(Server serverForAgent) { - ServerConnector serverConnector = new ServerConnector(serverForAgent); - Map <String, Integer> jettySelectorAcceptorMap = new HashMap<>(); - // By default Jetty-9 assigns Math.max(1, Math.min(4, (cores available to JVM)/8)) acceptors to a ServerConnector - int defaultAcceptors = serverConnector.getAcceptors(); - - // By default Jetty-9 assigns Math.max(1, Math.min(4, (cores available to JVM)/2))) selectors to a ServerConnector - int defaultSelectors = serverConnector.getSelectorManager().getSelectorCount(); - - // because there are two connectors sharing the same pool, cut each's - // acceptors and selectors in half - int desiredAcceptors = Math.max(2, defaultAcceptors / 2); - int desiredSelectors = Math.max(2, defaultSelectors / 2); - jettySelectorAcceptorMap.put("desiredAcceptors", desiredAcceptors); - jettySelectorAcceptorMap.put("desiredSelectors", desiredSelectors); - return jettySelectorAcceptorMap; - } - - /** * The Jetty thread pool consists of three basic types of threads: * <ul> * <li>Acceptors</li> * <li>Selectors</li> * <li>Threads which can actually do stuff</li> * <ul> - * The {@link ServerConnector} uses the + * The {@link SelectChannelConnector} uses the * {@link Runtime#availableProcessors()} as a way to determine how many * acceptors and selectors to create. If the number of processors is too * great, then there will be no threads left to fullfil connection requests. @@ -751,9 +702,9 @@ public class AmbariServer { threadPoolName, acceptorThreads * 2, configuredThreadPoolSize, Runtime.getRuntime().availableProcessors()); - final QueuedThreadPool qtp = server.getBean(QueuedThreadPool.class); + QueuedThreadPool qtp = new QueuedThreadPool(configuredThreadPoolSize); qtp.setName(threadPoolName); - qtp.setMaxThreads(configuredThreadPoolSize); + server.setThreadPool(qtp); } /** @@ -776,14 +727,6 @@ public class AmbariServer { } /** - * Propagate header size to Jetty HTTP configuration - */ - private void setHeaderSize(HttpConfiguration httpConfiguration) { - httpConfiguration.setResponseHeaderSize(configs.getHttpResponseHeaderSize()); - httpConfiguration.setRequestHeaderSize(configs.getHttpRequestHeaderSize()); - } - - /** * Performs basic configuration of root handler with static values and values * from configuration file. * http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationDirectory.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationDirectory.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationDirectory.java index 44cdf2b..cfdf9fc 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationDirectory.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationDirectory.java @@ -25,7 +25,7 @@ import org.apache.ambari.server.state.stack.ConfigurationXml; import org.apache.ambari.server.utils.JsonUtils; import org.apache.ambari.server.utils.XmlUtils; import org.apache.commons.io.FileUtils; -import org.eclipse.jetty.util.StringUtil; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,7 +73,7 @@ public class ConfigurationDirectory extends StackDefinitionDirectory { */ public ConfigurationDirectory(String directoryName, String propertiesDirectoryName) { super(directoryName); - if(!StringUtil.isBlank(propertiesDirectoryName)) { + if(!StringUtils.isBlank(propertiesDirectoryName)) { propertiesDirFile = new File(propertiesDirectoryName); } parsePath(); http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/src/main/java/org/apache/ambari/server/utils/JsonUtils.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/utils/JsonUtils.java b/ambari-server/src/main/java/org/apache/ambari/server/utils/JsonUtils.java index 63c88d8..ff4bc1d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/utils/JsonUtils.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/utils/JsonUtils.java @@ -19,7 +19,7 @@ package org.apache.ambari.server.utils; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; -import org.eclipse.jetty.util.StringUtil; +import org.apache.commons.lang.StringUtils; /** * Static Helper methods for Json processing. @@ -35,7 +35,7 @@ public class JsonUtils { */ public static boolean isValidJson(String jsonString) { - if(StringUtil.isBlank(jsonString)) { + if(StringUtils.isBlank(jsonString)) { return false; } try { http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/src/test/java/org/apache/ambari/server/api/AmbariErrorHandlerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/AmbariErrorHandlerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/AmbariErrorHandlerTest.java index 30c22a2..5ecadca 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/AmbariErrorHandlerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/AmbariErrorHandlerTest.java @@ -26,7 +26,6 @@ import com.sun.jersey.api.client.WebResource; import org.apache.ambari.server.configuration.Configuration; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.junit.Test; @@ -66,7 +65,7 @@ public class AmbariErrorHandlerTest { server.start(); Connector connector = server.getConnectors()[0]; - int localPort = ((ServerConnector)connector).getLocalPort(); + int localPort = server.getConnectors()[0].getLocalPort(); Client client = new Client(); WebResource resource = client.resource("http://localhost:" + localPort + "/"); http://git-wip-us.apache.org/repos/asf/ambari/blob/a76215f6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java index 1e063ec..778b3ed 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java @@ -232,7 +232,6 @@ public class DefaultEventCreatorTest { return null; } - @Override public String changeSessionId() { return null; } @@ -282,7 +281,6 @@ public class DefaultEventCreatorTest { return null; } - @Override public <T extends HttpUpgradeHandler> T upgrade(Class<T> aClass) throws IOException, ServletException { return null; } @@ -312,7 +310,6 @@ public class DefaultEventCreatorTest { return 0; } - @Override public long getContentLengthLong() { return 0; } @@ -512,4 +509,4 @@ public class DefaultEventCreatorTest { Assert.assertEquals(expected, actual); } -} \ No newline at end of file +}
