public static WindowsAzureRole configureJDKServer(
      WindowsAzureRole role, Map<String, String> depMap) throws Exception {
    try {
      File templateFile = new File(depMap.get("tempFile"));
      if (!(depMap.get("jdkChecked").equalsIgnoreCase("false")
          && depMap.get("jdkAutoDwnldChecked").equalsIgnoreCase("true"))) {
        // Third party JDK name
        if (depMap.get("jdkThrdPartyChecked").equalsIgnoreCase("true")) {
          String jdkName = depMap.get("jdkName");
          role.setJDKSourcePath(depMap.get("jdkLoc"), templateFile, jdkName);
          role.setJDKCloudName(jdkName);
        } else {
          role.setJDKSourcePath(depMap.get("jdkLoc"), templateFile, "");
        }
        // JDK download group
        // By default auto upload will be selected.
        String jdkTabUrl = depMap.get("jdkUrl");
        if (depMap.get("jdkAutoDwnldChecked").equalsIgnoreCase("true")
            || depMap.get("jdkThrdPartyChecked").equalsIgnoreCase("true")) {
          if (jdkTabUrl.equalsIgnoreCase(AUTO_TXT)) {
            jdkTabUrl = auto;
          }
          role.setJDKCloudUploadMode(WARoleComponentCloudUploadMode.auto);
        }
        role.setJDKCloudURL(jdkTabUrl);
        role.setJDKCloudKey(depMap.get("jdkKey"));
        /*
         * By default package type is local,
         * hence store JAVA_HOME for cloud.
         */
        role.setJDKCloudHome(depMap.get("javaHome"));
      }

      // Server
      if (depMap.get("serChecked").equalsIgnoreCase("true")) {
        String srvName = depMap.get("servername");
        if (!srvName.isEmpty()) {
          String srvPriPort = WindowsAzureProjectManager.getHttpPort(srvName, templateFile);
          if (role.isValidEndpoint(httpEp, WindowsAzureEndpointType.Input, srvPriPort, HTTP_PORT)) {
            role.addEndpoint(httpEp, WindowsAzureEndpointType.Input, srvPriPort, HTTP_PORT);
          }

          role.setServer(srvName, depMap.get("serLoc"), templateFile);

          if (depMap.get("srvThrdPartyChecked").equalsIgnoreCase("true")) {
            String altSrcUrl = depMap.get("srvThrdAltSrc");
            if (!altSrcUrl.isEmpty()) {
              role.setServerCldAltSrc(altSrcUrl);
            }
            String thrdName = depMap.get("srvThrdPartyName");
            if (!thrdName.isEmpty()) {
              role.setServerCloudName(thrdName);
            }
            role.setServerCloudValue(depMap.get("srvHome"));
          }

          String srvTabUrl = depMap.get("srvUrl");
          if (depMap.get("srvAutoDwnldChecked").equalsIgnoreCase("true")
              || depMap.get("srvThrdPartyChecked").equalsIgnoreCase("true")) {
            if (srvTabUrl.equalsIgnoreCase(AUTO_TXT)) {
              srvTabUrl = auto;
            }
            role.setServerCloudUploadMode(WARoleComponentCloudUploadMode.auto);
          }
          role.setServerCloudURL(srvTabUrl);
          role.setServerCloudKey(depMap.get("srvKey"));
          role.setServerCloudHome(depMap.get("srvHome"));
        }
      }
    } catch (Exception e) {
      throw new Exception(e.getMessage(), e);
    }
    return role;
  }