MCPcopy Index your code
hub / github.com/apache/tomcat / createStartDigester

Method createStartDigester

java/org/apache/catalina/startup/Catalina.java:484–590  ·  view source on GitHub ↗

Create and configure the Digester we will be using for startup. @return the main digester to parse server.xml

()

Source from the content-addressed store, hash-verified

482 * @return the main digester to parse server.xml
483 */
484 protected Digester createStartDigester() {
485 // Initialize the digester
486 Digester digester = new Digester();
487 digester.setValidating(false);
488 digester.setRulesValidation(true);
489 Map<Class<?>,List<String>> fakeAttributes = new HashMap<>();
490 // Ignore className on all elements
491 List<String> objectAttrs = new ArrayList<>();
492 objectAttrs.add("className");
493 fakeAttributes.put(Object.class, objectAttrs);
494 // Ignore attribute added by Eclipse for its internal tracking
495 List<String> contextAttrs = new ArrayList<>();
496 contextAttrs.add("source");
497 fakeAttributes.put(StandardContext.class, contextAttrs);
498 // Ignore Connector attribute used internally but set on Server
499 List<String> connectorAttrs = new ArrayList<>();
500 connectorAttrs.add("portOffset");
501 fakeAttributes.put(Connector.class, connectorAttrs);
502 digester.setFakeAttributes(fakeAttributes);
503 digester.setUseContextClassLoader(true);
504
505 // Configure the actions we will be using
506 digester.addObjectCreate("Server", "org.apache.catalina.core.StandardServer", "className");
507 digester.addSetProperties("Server");
508 digester.addSetNext("Server", "setServer", "org.apache.catalina.Server");
509
510 digester.addObjectCreate("Server/GlobalNamingResources", "org.apache.catalina.deploy.NamingResourcesImpl");
511 digester.addSetProperties("Server/GlobalNamingResources");
512 digester.addSetNext("Server/GlobalNamingResources", "setGlobalNamingResources",
513 "org.apache.catalina.deploy.NamingResourcesImpl");
514
515 digester.addRule("Server/Listener", new ListenerCreateRule(null, "className"));
516 digester.addSetProperties("Server/Listener");
517 digester.addSetNext("Server/Listener", "addLifecycleListener", "org.apache.catalina.LifecycleListener");
518
519 digester.addObjectCreate("Server/Service", "org.apache.catalina.core.StandardService", "className");
520 digester.addSetProperties("Server/Service");
521 digester.addSetNext("Server/Service", "addService", "org.apache.catalina.Service");
522
523 digester.addObjectCreate("Server/Service/Listener", null, // MUST be specified in the element
524 "className");
525 digester.addSetProperties("Server/Service/Listener");
526 digester.addSetNext("Server/Service/Listener", "addLifecycleListener", "org.apache.catalina.LifecycleListener");
527
528 // Executor
529 digester.addObjectCreate("Server/Service/Executor", "org.apache.catalina.core.StandardThreadExecutor",
530 "className");
531 digester.addSetProperties("Server/Service/Executor");
532
533 digester.addSetNext("Server/Service/Executor", "addExecutor", "org.apache.catalina.Executor");
534
535 digester.addRule("Server/Service/Connector", new ConnectorCreateRule());
536 digester.addSetProperties("Server/Service/Connector",
537 new String[] { "executor", "sslImplementationName", "protocol" });
538 digester.addSetNext("Server/Service/Connector", "addConnector", "org.apache.catalina.connector.Connector");
539
540 digester.addRule("Server/Service/Connector", new AddPortOffsetRule());
541

Callers 1

parseServerXmlMethod · 0.95

Calls 12

setValidatingMethod · 0.95
setRulesValidationMethod · 0.95
setFakeAttributesMethod · 0.95
addObjectCreateMethod · 0.95
addSetPropertiesMethod · 0.95
addSetNextMethod · 0.95
addRuleMethod · 0.95
addRuleSetMethod · 0.95
addClusterRuleSetMethod · 0.95
addMethod · 0.65
putMethod · 0.65

Tested by

no test coverage detected