Ver Fonte

AMBARI-17991 Ambari agent unable to register with server when server response is too big (dsen)

Dmytro Sen há 9 anos atrás
pai
commit
a76215f67d

+ 1 - 1
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

+ 8 - 2
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>

+ 25 - 0
ambari-logsearch/ambari-logsearch-portal/pom.xml

@@ -594,6 +594,31 @@
       <artifactId>spring-security-kerberos-client</artifactId>
       <version>1.0.1.RELEASE</version>
     </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>

+ 14 - 8
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>

+ 14 - 9
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>
@@ -1358,11 +1368,6 @@
       <artifactId>jetty-util</artifactId>
       <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>

+ 7 - 7
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);
     }

+ 51 - 108
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);
@@ -673,31 +649,6 @@ public class AmbariServer {
     SLF4JBridgeHandler.install();
   }
 
-  /**
-   *  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>
@@ -705,7 +656,7 @@ public class AmbariServer {
    * <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);
   }
 
   /**
@@ -775,14 +726,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.

+ 2 - 2
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();

+ 2 - 2
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 {

+ 1 - 2
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 + "/");

+ 1 - 4
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);
   }
 
-}
+}