docs: public static String compileDeployment(Catalog catalog,
              DeploymentType deployment,
              boolean isPlaceHolderCatalog)
      {
          String errmsg = null;
  
          try {
              validateDeployment(catalog, deployment);
  
              // add our hacky Deployment to the catalog
              if (catalog.getClusters().get("cluster").getDeployment().get("deployment") == null) {
                  catalog.getClusters().get("cluster").getDeployment().add("deployment");
              }
  
              // set the cluster info
              setClusterInfo(catalog, deployment);
  
              //Set the snapshot schedule
              setSnapshotInfo(catalog, deployment.getSnapshot());
  
              //Set enable security
              setSecurityEnabled(catalog, deployment.getSecurity());
  
              // set the users info
              // We'll skip this when building the dummy catalog on startup
              // so that we don't spew misleading user/role warnings
              if (!isPlaceHolderCatalog) {
                  setUsersInfo(catalog, deployment.getUsers());
              }
  
              // set the HTTPD info
              setHTTPDInfo(catalog, deployment.getHttpd(), deployment.getSsl());
  
              setDrInfo(catalog, deployment.getDr(), deployment.getCluster(), isPlaceHolderCatalog);
  
              if (!isPlaceHolderCatalog) {
                  setExportInfo(catalog, deployment.getExport());
                  setImportInfo(catalog, deployment.getImport());
                  setSnmpInfo(deployment.getSnmp());
              }
  
              setCommandLogInfo( catalog, deployment.getCommandlog());
              //This is here so we can update our local list of paths.
              //I would not have needed this if validateResourceMonitorInfo didnt exist here.
              VoltDB.instance().loadLegacyPathProperties(deployment);
  
              setupPaths(deployment.getPaths());
              validateResourceMonitorInfo(deployment);
          }
          catch (Exception e) {
              // Anything that goes wrong anywhere in trying to handle the deployment file
              // should return an error, and let the caller decide what to do (crash or not, for
              // example)
              errmsg = "Error validating deployment configuration: " + e.getMessage();
              hostLog.error(errmsg);
              return errmsg;
          }
  
          return null;
      }