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

Method parseServerXml

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

Parse the server.xml configuration file. @param start true if parsing for start, false if parsing for stop

(boolean start)

Source from the content-addressed store, hash-verified

646 * @param start <code>true</code> if parsing for start, <code>false</code> if parsing for stop
647 */
648 protected void parseServerXml(boolean start) {
649 // Set configuration source
650 ConfigFileLoader
651 .setSource(new CatalinaBaseConfigurationSource(Bootstrap.getCatalinaBaseFile(), getConfigFile()));
652 File file = configFile();
653
654 if (useGeneratedCode && !Digester.isGeneratedCodeLoaderSet()) {
655 // Load loader
656 String loaderClassName = generatedCodePackage + ".DigesterGeneratedCodeLoader";
657 try {
658 Digester.GeneratedCodeLoader loader = (Digester.GeneratedCodeLoader) Catalina.class.getClassLoader()
659 .loadClass(loaderClassName).getDeclaredConstructor().newInstance();
660 Digester.setGeneratedCodeLoader(loader);
661 } catch (Exception e) {
662 if (log.isDebugEnabled()) {
663 log.debug(sm.getString("catalina.noLoader", loaderClassName), e);
664 } else {
665 log.info(sm.getString("catalina.noLoader", loaderClassName));
666 }
667 // No loader so don't use generated code
668 useGeneratedCode = false;
669 }
670 }
671
672 // Init source location
673 File serverXmlLocation = null;
674 String xmlClassName = null;
675 if (generateCode || useGeneratedCode) {
676 xmlClassName = start ? generatedCodePackage + ".ServerXml" : generatedCodePackage + ".ServerXmlStop";
677 }
678 if (generateCode) {
679 if (generatedCodeLocationParameter != null) {
680 generatedCodeLocation = new File(generatedCodeLocationParameter);
681 if (!generatedCodeLocation.isAbsolute()) {
682 generatedCodeLocation = new File(Bootstrap.getCatalinaHomeFile(), generatedCodeLocationParameter);
683 }
684 } else if (generatedCodeLocation == null) {
685 generatedCodeLocation = new File(Bootstrap.getCatalinaHomeFile(), "work");
686 }
687 serverXmlLocation = new File(generatedCodeLocation, generatedCodePackage);
688 if (!serverXmlLocation.isDirectory() && !serverXmlLocation.mkdirs()) {
689 log.warn(sm.getString("catalina.generatedCodeLocationError", generatedCodeLocation.getAbsolutePath()));
690 // Disable code generation
691 generateCode = false;
692 }
693 }
694
695 ServerXml serverXml = null;
696 if (useGeneratedCode) {
697 serverXml = (ServerXml) Digester.loadGeneratedClass(xmlClassName);
698 }
699
700 if (serverXml != null) {
701 try {
702 serverXml.load(this);
703 } catch (Exception e) {
704 log.warn(sm.getString("catalina.configFail", "GeneratedCode"), e);
705 }

Callers 2

stopServerMethod · 0.95
loadMethod · 0.95

Calls 15

setSourceMethod · 0.95
getCatalinaBaseFileMethod · 0.95
getConfigFileMethod · 0.95
configFileMethod · 0.95
getCatalinaHomeFileMethod · 0.95
loadGeneratedClassMethod · 0.95
loadMethod · 0.95
getSourceMethod · 0.95
createStartDigesterMethod · 0.95
createStopDigesterMethod · 0.95

Tested by

no test coverage detected