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");
}