Repository: ambari
Updated Branches:
  refs/heads/trunk 96bdf2cb9 -> c03b6d4b0


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/c03b6d4b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c03b6d4b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c03b6d4b

Branch: refs/heads/trunk
Commit: c03b6d4b01fbc336c296c9a1a92ca1308cba6ffc
Parents: 96bdf2c
Author: Dmytro Sen <[email protected]>
Authored: Thu Aug 4 18:36:58 2016 +0300
Committer: Dmytro Sen <[email protected]>
Committed: Thu Aug 4 18:36:58 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/c03b6d4b/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 72ae954..3cc07fc 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/c03b6d4b/ambari-funtest/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-funtest/pom.xml b/ambari-funtest/pom.xml
index ebc34ec..66678c2 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/c03b6d4b/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 0a24759..7a46fe5 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/c03b6d4b/ambari-project/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-project/pom.xml b/ambari-project/pom.xml
index c7a0a6a..2615b46 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/c03b6d4b/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index 814973b..72d4257 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/c03b6d4b/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/c03b6d4b/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/c03b6d4b/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/c03b6d4b/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/c03b6d4b/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/c03b6d4b/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
+}

Reply via email to