public void generateAppEngineWebXml()

in utils/src/main/java/com/google/apphosting/utils/config/AppYaml.java [1343:1479]


  public void generateAppEngineWebXml(Writer writer) {
    XmlWriter xml = new XmlWriter(writer);
    xml.startElement("appengine-web-app", "xmlns", "http://appengine.google.com/ns/1.0");
    xml.simpleElement("application", getApplication());
    addOptionalElement(xml, "version", getVersion());
    addOptionalElement(xml, "runtime", getRuntime());
    addOptionalElement(xml, "module", getModule());
    addOptionalElement(xml, "instance-class", getInstance_class());
    addOptionalElement(xml, "public-root", publicRoot);
    addOptionalElement(xml, "auto-id-policy", getAuto_id_policy());
    if (automaticScaling != null) {
      xml.startElement("automatic-scaling");
      addOptionalElement(xml, "min-pending-latency", automaticScaling.getMin_pending_latency());
      addOptionalElement(xml, "max-pending-latency", automaticScaling.getMax_pending_latency());
      addOptionalElement(xml, "min-idle-instances", automaticScaling.getMin_idle_instances());
      addOptionalElement(xml, "max-idle-instances", automaticScaling.getMax_idle_instances());
      addOptionalElement(xml, "min-instances", automaticScaling.getMin_instances());
      addOptionalElement(xml, "max-instances", automaticScaling.getMax_instances());
      addOptionalElement(
          xml, "target-cpu-utilization", automaticScaling.getTarget_cpu_utilization());
      addOptionalElement(
          xml,
          "target-throughput-utilization",
          automaticScaling.getTarget_throughput_utilization());
      addOptionalElement(xml, "max-concurrent-requests",
          automaticScaling.getMax_concurrent_requests());
      xml.endElement("automatic-scaling");
    }
    if (manualScaling != null) {
      xml.startElement("manual-scaling");
      xml.simpleElement("instances", manualScaling.getInstances());
      xml.endElement("manual-scaling");
    }
    if (basicScaling != null) {
      xml.startElement("basic-scaling");
      xml.simpleElement("max-instances", basicScaling.getMax_instances());
      addOptionalElement(xml, "idle-timeout", basicScaling.getIdle_timeout());
      xml.endElement("basic-scaling");
    }
    xml.startElement("static-files");
    if (staticFiles != null) {
      for (StaticFile file : staticFiles) {
        if (file.getInclude() != null) {
          generateInclude(file, xml);
        } else {
          xml.emptyElement("exclude", /* attributes: */ "path", file.getExclude());
        }
      }
    }
    xml.endElement("static-files");
    xml.startElement("resource-files");
    if (resourceFiles != null) {
      for (ResourceFile file : resourceFiles) {
        String name;
        String path;
        if (file.getInclude() != null) {
          name = "include";
          path = file.getInclude();
        } else {
          name = "exclude";
          path = file.getExclude();
        }
        xml.emptyElement(name, "path", path);
      }
    }
    xml.endElement("resource-files");
    xml.simpleElement("ssl-enabled", getSsl_enabled());
    xml.simpleElement("precompilation-enabled", getPrecompilation_enabled());
    if (isThreadsafeSet()) {
      xml.simpleElement("threadsafe", getThreadsafe());
    }
    xml.simpleElement("code-lock", getCode_lock());
    xml.simpleElement("sessions-enabled", getSessions_enabled());
    if (asyncSessionPersistence != null) {
      xml.simpleElement("async-session-persistence", null,
          "enabled", getAsync_session_persistence().getEnabled(),
          "queue-name", getAsync_session_persistence().getQueue_name());
    }
    if (systemProperties != null) {
      xml.startElement("system-properties");
      systemProperties.forEach(
          (name, value) -> xml.emptyElement("property", "name", name, "value", value));
      xml.endElement("system-properties");
    }
    if (envVariables != null) {
      xml.startElement("env-variables");
      envVariables.forEach(
          (name, value) -> xml.emptyElement("env-var", "name", name, "value", value));
      xml.endElement("env-variables");
    }
    if (buildEnvVariables != null) {
      xml.startElement("build-env-variables");
      buildEnvVariables.forEach(
          (name, value) -> xml.emptyElement("build-env-var", "name", name, "value", value));
      xml.endElement("build-env-variables");
    }
    if (betaSettings != null) {
      xml.startElement("beta-settings");
      betaSettings.forEach(
          (name, value) ->
              xml.emptyElement("beta-setting", "name", name, "value", value));
      xml.endElement("beta-settings");
    }
    boolean warmupService = false;
    if (inboundServices != null) {
      xml.startElement("inbound-services");
      for (String service : inboundServices) {
        if (AppEngineWebXml.WARMUP_SERVICE.equals(service)) {
          warmupService = true;
        } else {
          xml.simpleElement("service", service);
        }
      }
      xml.endElement("inbound-services");
    }
    xml.simpleElement("warmup-requests-enabled", Boolean.toString(warmupService));
    if (adminConsole != null && adminConsole.getPages() != null) {
      xml.startElement("admin-console");
      for (AdminPage page : adminConsole.getPages()) {
        xml.emptyElement("page", "name", page.getName(), "url", page.getUrl());
      }
      xml.endElement("admin-console");
    }
    if (errorHandlers != null) {
      xml.startElement("static-error-handlers");
      for (ErrorHandler handler : errorHandlers) {
        xml.emptyElement("handler",
                         "file", handler.getFile(),
                         "error-code", handler.getError_code());
      }
      xml.endElement("static-error-handlers");
    }
    if (apiConfig != null) {
      apiConfig.generateXml(xml);
    }
    xml.endElement("appengine-web-app");
  }