in utils/src/main/java/com/google/apphosting/utils/config/AppEngineWebXmlProcessor.java [122:278]
private void processSecondLevelNode(Element elt, AppEngineWebXml appEngineWebXml) {
String elementName = elt.getTagName();
switch (elementName) {
case "system-properties":
processSystemPropertiesNode(elt, appEngineWebXml);
break;
case "vm-settings":
case "beta-settings":
processBetaSettingsNode(elt, appEngineWebXml);
break;
case "vm-health-check":
case "health-check":
processHealthCheckNode(elt, appEngineWebXml);
break;
case "liveness-check":
processLivenessCheckNode(elt, appEngineWebXml);
break;
case "readiness-check":
processReadinessCheckNode(elt, appEngineWebXml);
break;
case "resources":
processResourcesNode(elt, appEngineWebXml);
break;
case "network":
processNetworkNode(elt, appEngineWebXml);
break;
case "env-variables":
processEnvironmentVariablesNode(elt, appEngineWebXml);
break;
case "build-env-variables":
processBuildEnvironmentVariablesNode(elt, appEngineWebXml);
break;
case "application":
processApplicationNode(elt, appEngineWebXml);
break;
case "entrypoint":
processEntrypointNode(elt, appEngineWebXml);
break;
case "runtime-channel":
processRuntimeChannelNode(elt, appEngineWebXml);
break;
case "runtime":
processRuntimeNode(elt, appEngineWebXml);
break;
case "version":
processVersionNode(elt, appEngineWebXml);
break;
case "source-language":
logger.warning(
"The element <source-language> in appengine-web.xml file was ignored.");
break;
case "module":
moduleNodeFound = true;
processModuleNode(elt, appEngineWebXml);
break;
case "service":
serviceNodeFound = true;
processServiceNode(elt, appEngineWebXml);
break;
case "instance-class":
processInstanceClassNode(elt, appEngineWebXml);
break;
case "automatic-scaling":
processAutomaticScalingNode(elt, appEngineWebXml);
break;
case "manual-scaling":
processManualScalingNode(elt, appEngineWebXml);
break;
case "basic-scaling":
processBasicScalingNode(elt, appEngineWebXml);
break;
case "static-files":
processFilesetNode(elt, appEngineWebXml, FileType.STATIC);
break;
case "resource-files":
processFilesetNode(elt, appEngineWebXml, FileType.RESOURCE);
break;
case "ssl-enabled":
processSslEnabledNode(elt, appEngineWebXml);
break;
case "sessions-enabled":
processSessionsEnabledNode(elt, appEngineWebXml);
break;
case "async-session-persistence":
processAsyncSessionPersistenceNode(elt, appEngineWebXml);
break;
case "user-permissions":
processPermissionsNode(elt, appEngineWebXml);
break;
case "public-root":
processPublicRootNode(elt, appEngineWebXml);
break;
case "inbound-services":
processInboundServicesNode(elt, appEngineWebXml);
break;
case "precompilation-enabled":
processPrecompilationEnabledNode(elt, appEngineWebXml);
break;
case "admin-console":
processAdminConsoleNode(elt, appEngineWebXml);
break;
case "static-error-handlers":
processErrorHandlerNode(elt, appEngineWebXml);
break;
case "warmup-requests-enabled":
warmupNodeFound = true;
processWarmupRequestsEnabledNode(elt, appEngineWebXml);
break;
case "threadsafe":
processThreadsafeNode(elt, appEngineWebXml);
break;
case "app-engine-apis":
appEngineWebXml.setAppEngineApis(getBooleanValue(elt));
break;
case "auto-id-policy":
processAutoIdPolicyNode(elt, appEngineWebXml);
break;
case "code-lock":
processCodeLockNode(elt, appEngineWebXml);
break;
case "vm":
processVmNode(elt, appEngineWebXml);
break;
case "env":
processEnvNode(elt, appEngineWebXml);
break;
case "api-config":
processApiConfigNode(elt, appEngineWebXml);
break;
case "class-loader-config":
processClassLoaderConfig(elt, appEngineWebXml);
break;
case "url-stream-handler":
processUrlStreamHandler(elt, appEngineWebXml);
break;
case "use-google-connector-j":
processUseGoogleConnectorJNode(elt, appEngineWebXml);
break;
case "pagespeed":
logger.warning(
"app_id "
+ appEngineWebXml.getAppId()
+ " has <pagespeed> in appengine-web.xml file, ignored.");
break;
case "staging":
processStagingNode(elt, appEngineWebXml);
break;
case "vpc-access-connector":
processVpcAccessConnector(elt, appEngineWebXml);
break;
case "service-account":
processServiceAccountNode(elt, appEngineWebXml);
break;
default:
throw new AppEngineConfigException("Unrecognized element <" + elementName + ">");
}
}