azkaban-aplcache

Refactoring the `ServerProvider` logic into separate methods

8/8/2017 10:32:46 PM

Details

diff --git a/azkaban-web-server/src/main/java/azkaban/webapp/WebServerProvider.java b/azkaban-web-server/src/main/java/azkaban/webapp/WebServerProvider.java
index c853928..7ae86e1 100644
--- a/azkaban-web-server/src/main/java/azkaban/webapp/WebServerProvider.java
+++ b/azkaban-web-server/src/main/java/azkaban/webapp/WebServerProvider.java
@@ -45,53 +45,60 @@ public class WebServerProvider implements Provider<Server> {
 
     final int maxThreads = this.props
         .getInt("jetty.maxThreads", Constants.DEFAULT_JETTY_MAX_THREAD_COUNT);
-    final boolean isStatsOn = this.props.getBoolean("jetty.connector.stats", true);
-    logger.info("Setting up connector with stats on: " + isStatsOn);
 
-    final boolean ssl;
+    final boolean useSsl = this.props.getBoolean("jetty.use.ssl", true);
     final int port;
     final Server server = new Server();
-    if (this.props.getBoolean("jetty.use.ssl", true)) {
+    if (useSsl) {
       final int sslPortNumber = this.props
           .getInt("jetty.ssl.port", Constants.DEFAULT_SSL_PORT_NUMBER);
       port = sslPortNumber;
-      ssl = true;
-      logger.info("Setting up Jetty Https Server with port:" + sslPortNumber
-          + " and numThreads:" + maxThreads);
-
-      final SslSocketConnector secureConnector = new SslSocketConnector();
-      secureConnector.setPort(sslPortNumber);
-      secureConnector.setKeystore(this.props.getString("jetty.keystore"));
-      secureConnector.setPassword(this.props.getString("jetty.password"));
-      secureConnector.setKeyPassword(this.props.getString("jetty.keypassword"));
-      secureConnector.setTruststore(this.props.getString("jetty.truststore"));
-      secureConnector.setTrustPassword(this.props.getString("jetty.trustpassword"));
-      secureConnector.setHeaderBufferSize(MAX_HEADER_BUFFER_SIZE);
-
-      // set up vulnerable cipher suites to exclude
-      final List<String> cipherSuitesToExclude = this.props
-          .getStringList("jetty.excludeCipherSuites");
-      logger.info("Excluded Cipher Suites: " + String.valueOf(cipherSuitesToExclude));
-      if (cipherSuitesToExclude != null && !cipherSuitesToExclude.isEmpty()) {
-        secureConnector.setExcludeCipherSuites(cipherSuitesToExclude.toArray(new String[0]));
-      }
-
-      server.addConnector(secureConnector);
+      server.addConnector(getSslSocketConnector(sslPortNumber));
     } else {
-      ssl = false;
       port = this.props.getInt("jetty.port", Constants.DEFAULT_PORT_NUMBER);
-      final SocketConnector connector = new SocketConnector();
-      connector.setPort(port);
-      connector.setHeaderBufferSize(MAX_HEADER_BUFFER_SIZE);
-      server.addConnector(connector);
+      server.addConnector(getSocketConnector(port));
     }
 
     // setting stats configuration for connectors
+    setStatsOnConnectors(server);
+
+    logger.info(String.format(
+        "Starting %sserver on port: %d # Max threads: %d", useSsl ? "SSL " : "", port, maxThreads));
+    return server;
+  }
+
+  private void setStatsOnConnectors(final Server server) {
+    final boolean isStatsOn = this.props.getBoolean("jetty.connector.stats", true);
+    logger.info("Setting up connector with stats on: " + isStatsOn);
     for (final Connector connector : server.getConnectors()) {
       connector.setStatsOn(isStatsOn);
     }
+  }
 
-    logger.info(String.format("Starting %sserver on port: %d", ssl ? "SSL " : "", port));
-    return server;
+  private SocketConnector getSocketConnector(final int port) {
+    final SocketConnector connector = new SocketConnector();
+    connector.setPort(port);
+    connector.setHeaderBufferSize(MAX_HEADER_BUFFER_SIZE);
+    return connector;
+  }
+
+  private SslSocketConnector getSslSocketConnector(final int sslPortNumber) {
+    final SslSocketConnector secureConnector = new SslSocketConnector();
+    secureConnector.setPort(sslPortNumber);
+    secureConnector.setKeystore(this.props.getString("jetty.keystore"));
+    secureConnector.setPassword(this.props.getString("jetty.password"));
+    secureConnector.setKeyPassword(this.props.getString("jetty.keypassword"));
+    secureConnector.setTruststore(this.props.getString("jetty.truststore"));
+    secureConnector.setTrustPassword(this.props.getString("jetty.trustpassword"));
+    secureConnector.setHeaderBufferSize(MAX_HEADER_BUFFER_SIZE);
+
+    // set up vulnerable cipher suites to exclude
+    final List<String> cipherSuitesToExclude = this.props
+        .getStringList("jetty.excludeCipherSuites");
+    logger.info("Excluded Cipher Suites: " + String.valueOf(cipherSuitesToExclude));
+    if (cipherSuitesToExclude != null && !cipherSuitesToExclude.isEmpty()) {
+      secureConnector.setExcludeCipherSuites(cipherSuitesToExclude.toArray(new String[0]));
+    }
+    return secureConnector;
   }
 }