James Moger
2011-12-22 e6935876b97a63bae2ec087b4fc390c832aef155
src/com/gitblit/GitBlitServer.java
@@ -65,7 +65,7 @@
   private static Logger logger;
   public static void main(String[] args) {
   public static void main(String... args) {
      Params params = new Params();
      JCommander jc = new JCommander(params);
      try {
@@ -130,10 +130,28 @@
    */
   private static void start(Params params) {
      FileSettings settings = Params.FILESETTINGS;
      if (!StringUtils.isEmpty(params.settingsfile)) {
         if (new File(params.settingsfile).exists()) {
            settings = new FileSettings(params.settingsfile);
         }
      }
      logger = LoggerFactory.getLogger(GitBlitServer.class);
      logger.info(Constants.BORDER);
      logger.info(Constants.getGitBlitVersion());
      logger.info("            _____  _  _    _      _  _  _");
      logger.info("           |  __ \\(_)| |  | |    | |(_)| |");
      logger.info("           | |  \\/ _ | |_ | |__  | | _ | |_");
      logger.info("           | | __ | || __|| '_ \\ | || || __|");
      logger.info("           | |_\\ \\| || |_ | |_) || || || |_");
      logger.info("            \\____/|_| \\__||_.__/ |_||_| \\__|");
      int spacing = (Constants.BORDER.length() - Constants.getGitBlitVersion().length()) / 2;
      StringBuilder sb = new StringBuilder();
      while (spacing > 0) {
         spacing--;
         sb.append(' ');
      }
      logger.info(sb.toString() + Constants.getGitBlitVersion());
      logger.info("");
      logger.info(Constants.BORDER);
      String osname = System.getProperty("os.name");
@@ -147,7 +165,7 @@
         Connector httpConnector = createConnector(params.useNIO, params.port);
         String bindInterface = settings.getString(Keys.server.httpBindInterface, null);
         if (!StringUtils.isEmpty(bindInterface)) {
            logger.warn(MessageFormat.format("Binding connector on port {0} to {1}",
            logger.warn(MessageFormat.format("Binding connector on port {0,number,0} to {1}",
                  params.port, bindInterface));
            httpConnector.setHost(bindInterface);
         }
@@ -170,8 +188,9 @@
                  params.useNIO, params.securePort);
            String bindInterface = settings.getString(Keys.server.httpsBindInterface, null);
            if (!StringUtils.isEmpty(bindInterface)) {
               logger.warn(MessageFormat.format("Binding ssl connector on port {0} to {1}",
                     params.securePort, bindInterface));
               logger.warn(MessageFormat.format(
                     "Binding ssl connector on port {0,number,0} to {1}", params.securePort,
                     bindInterface));
               secureConnector.setHost(bindInterface);
            }
            if (params.securePort < 1024 && !isWindows()) {
@@ -209,7 +228,7 @@
      // Root WebApp Context
      WebAppContext rootContext = new WebAppContext();
      rootContext.setContextPath("/");
      rootContext.setContextPath(settings.getString(Keys.server.contextPath, "/"));
      rootContext.setServer(server);
      rootContext.setWar(location.toExternalForm());
      rootContext.setTempDirectory(tempDir);
@@ -237,7 +256,7 @@
      // Setup the GitBlit context
      GitBlit gitblit = GitBlit.self();
      gitblit.configureContext(settings);
      gitblit.configureContext(settings, true);
      rootContext.addEventListener(gitblit);
      try {
@@ -288,6 +307,9 @@
   /**
    * Creates an https connector.
    * 
    * SSL renegotiation will be enabled if the JVM is 1.6.0_22 or later.
    * oracle.com/technetwork/java/javase/documentation/tlsreadme2-176330.html
    *
    * @param keystore
    * @param password
    * @param useNIO
@@ -308,7 +330,24 @@
         SslSocketConnector ssl = new SslSocketConnector();
         connector = ssl;
      }
      connector.setAllowRenegotiate(false);
      // disable renegotiation unless this is a patched JVM
      boolean allowRenegotiation = false;
      String v = System.getProperty("java.version");
      if (v.startsWith("1.7")) {
         allowRenegotiation = true;
      } else if (v.startsWith("1.6")) {
         // 1.6.0_22 was first release with RFC-5746 implemented fix.
         if (v.indexOf('_') > -1) {
            String b = v.substring(v.indexOf('_') + 1);
            if (Integer.parseInt(b) >= 22) {
               allowRenegotiation = true;
            }
         }
      }
      if (allowRenegotiation) {
         logger.info("   allowing SSL renegotiation on Java " + v);
         connector.setAllowRenegotiate(allowRenegotiation);
      }
      connector.setKeystore(keystore.getAbsolutePath());
      connector.setPassword(password);
      connector.setPort(port);
@@ -428,5 +467,11 @@
      @Parameter(names = "--shutdownPort", description = "Port for Shutdown Monitor to listen on. (port <= 0 will disable this monitor)")
      public Integer shutdownPort = FILESETTINGS.getInteger(Keys.server.shutdownPort, 8081);
      /*
       * Setting overrides
       */
      @Parameter(names = { "--settings" }, description = "Path to alternative settings")
      public String settingsfile;
   }
}