📄 standardserver.java
字号:
*
* @exception Exception if an exception occurs while storing
*/
private void storeContext(PrintWriter writer, int indent,
Context context) throws Exception {
String configFile = context.getConfigFile();
if (configFile != null) {
File config = new File(configFile);
if (!config.isAbsolute()) {
config = new File(System.getProperty("catalina.base"),
configFile);
}
// Open an output writer for the new configuration file
writer = null;
try {
writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(config), "UTF8"));
} catch (IOException e) {
if (writer != null) {
try {
writer.close();
} catch (Throwable t) {
;
}
}
throw (e);
}
writer.println("<?xml version='1.0' encoding='utf-8'?>");
indent = 0;
}
// Store the beginning of this element
for (int i = 0; i < indent; i++) {
writer.print(' ');
}
writer.print("<Context");
storeAttributes(writer, context);
writer.println(">");
// Store nested <InstanceListener> elements
String iListeners[] = context.findInstanceListeners();
for (int i = 0; i < iListeners.length; i++) {
for (int j = 0; j < indent; j++) {
writer.print(' ');
}
writer.print("<InstanceListener>");
writer.print(iListeners[i]);
writer.println("</InstanceListener>");
}
// Store nested <Listener> elements
if (context instanceof Lifecycle) {
LifecycleListener listeners[] =
((Lifecycle) context).findLifecycleListeners();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i].getClass().getName().equals
(SERVER_LISTENER_CLASS_NAME)) {
continue;
}
storeListener(writer, indent + 2, listeners[i]);
}
}
// Store nested <Loader> element
Loader loader = context.getLoader();
if (loader != null) {
storeLoader(writer, indent + 2, loader);
}
// Store nested <Logger> element
Logger logger = context.getLogger();
if (logger != null) {
Logger parentLogger = null;
if (context.getParent() != null) {
parentLogger = context.getParent().getLogger();
}
if (logger != parentLogger) {
storeLogger(writer, indent + 2, logger);
}
}
// Store nested <Manager> element
Manager manager = context.getManager();
if (manager != null) {
storeManager(writer, indent + 2, manager);
}
// Store nested <Parameter> elements
ApplicationParameter[] appParams = context.findApplicationParameters();
for (int i = 0; i < appParams.length; i++) {
for (int j = 0; j < indent + 2; j++) {
writer.print(' ');
}
writer.print("<Parameter");
storeAttributes(writer, false, appParams[i]);
writer.println("/>");
}
// Store nested <Realm> element
Realm realm = context.getRealm();
if (realm != null) {
Realm parentRealm = null;
if (context.getParent() != null) {
parentRealm = context.getParent().getRealm();
}
if (realm != parentRealm) {
storeRealm(writer, indent + 2, realm);
}
}
// Store nested <Resources> element
DirContext resources = context.getResources();
if (resources != null) {
storeResources(writer, indent + 2, resources);
}
// Store nested <Valve> elements
if (context instanceof Pipeline) {
Valve valves[] = ((Pipeline) context).getValves();
for (int i = 0; i < valves.length; i++) {
storeValve(writer, indent + 2, valves[i]);
}
}
// Store nested <WrapperLifecycle> elements
String wLifecycles[] = context.findWrapperLifecycles();
for (int i = 0; i < wLifecycles.length; i++) {
for (int j = 0; j < indent; j++) {
writer.print(' ');
}
writer.print("<WrapperLifecycle>");
writer.print(wLifecycles[i]);
writer.println("</WrapperLifecycle>");
}
// Store nested <WrapperListener> elements
String wListeners[] = context.findWrapperListeners();
for (int i = 0; i < wListeners.length; i++) {
for (int j = 0; j < indent; j++) {
writer.print(' ');
}
writer.print("<WrapperListener>");
writer.print(wListeners[i]);
writer.println("</WrapperListener>");
}
// Store nested naming resources elements
NamingResources nresources = context.getNamingResources();
if (nresources != null) {
storeNamingResources(writer, indent + 2, nresources);
}
// Store the ending of this element
for (int i = 0; i < indent; i++) {
writer.print(' ');
}
writer.println("</Context>");
if (configFile != null) {
// Flush and close the output file
try {
writer.flush();
} catch (Exception e) {
throw (e);
}
try {
writer.close();
} catch (Exception e) {
throw (e);
}
}
}
/**
* Store the specified DefaultContext properties.
*
* @param writer PrintWriter to which we are storing
* @param indent Number of spaces to indent this element
* @param dcontext Object whose properties are being stored
*
* @exception Exception if an exception occurs while storing
*/
private void storeDefaultContext(PrintWriter writer, int indent,
DefaultContext dcontext)
throws Exception {
// Store the beginning of this element
for (int i = 0; i < indent; i++) {
writer.print(' ');
}
writer.print("<DefaultContext");
storeAttributes(writer, dcontext);
writer.println(">");
// Store nested <InstanceListener> elements
String iListeners[] = dcontext.findInstanceListeners();
for (int i = 0; i < iListeners.length; i++) {
for (int j = 0; j < indent; j++) {
writer.print(' ');
}
writer.print("<InstanceListener>");
writer.print(iListeners[i]);
writer.println("</InstanceListener>");
}
// Store nested <Listener> elements
if (dcontext instanceof Lifecycle) {
LifecycleListener listeners[] =
((Lifecycle) dcontext).findLifecycleListeners();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i].getClass().getName().equals
(SERVER_LISTENER_CLASS_NAME)) {
continue;
}
storeListener(writer, indent + 2, listeners[i]);
}
}
// Store nested <Loader> element
Loader loader = dcontext.getLoader();
if (loader != null) {
storeLoader(writer, indent + 2, loader);
}
// Store nested <Logger> element
/* Nested logger not currently supported on DefaultContext
Logger logger = dcontext.getLogger();
if (logger != null) {
Logger parentLogger = null;
if (dcontext.getParent() != null) {
parentLogger = dcontext.getParent().getLogger();
}
if (logger != parentLogger) {
storeLogger(writer, indent + 2, logger);
}
}
*/
// Store nested <Manager> element
Manager manager = dcontext.getManager();
if (manager != null) {
storeManager(writer, indent + 2, manager);
}
// Store nested <Parameter> elements
ApplicationParameter[] appParams =
dcontext.findApplicationParameters();
for (int i = 0; i < appParams.length; i++) {
for (int j = 0; j < indent + 2; j++) {
writer.print(' ');
}
writer.print("<Parameter");
storeAttributes(writer, false, appParams[i]);
writer.println("/>");
}
// Store nested <Realm> element
/* Nested realm not currently supported on DefaultContext
Realm realm = dcontext.getRealm();
if (realm != null) {
Realm parentRealm = null;
if (dcontext.getParent() != null) {
parentRealm = dcontext.getParent().getRealm();
}
if (realm != parentRealm) {
storeRealm(writer, indent + 2, realm);
}
}
*/
// Store nested <Resources> element
DirContext resources = dcontext.getResources();
if (resources != null) {
storeResources(writer, indent + 2, resources);
}
// Store nested <Valve> elements
if (dcontext instanceof Pipeline) {
Valve valves[] = ((Pipeline) dcontext).getValves();
for (int i = 0; i < valves.length; i++) {
storeValve(writer, indent + 2, valves[i]);
}
}
// Store nested <WrapperLifecycle> elements
String wLifecycles[] = dcontext.findWrapperLifecycles();
for (int i = 0; i < wLifecycles.length; i++) {
for (int j = 0; j < indent; j++) {
writer.print(' ');
}
writer.print("<WrapperLifecycle>");
writer.print(wLifecycles[i]);
writer.println("</WrapperLifecycle>");
}
// Store nested <WrapperListener> elements
String wListeners[] = dcontext.findWrapperListeners();
for (int i = 0; i < wListeners.length; i++) {
for (int j = 0; j < indent; j++) {
writer.print(' ');
}
writer.print("<WrapperListener>");
writer.print(wListeners[i]);
writer.println("</WrapperListener>");
}
// Store nested naming resources elements
NamingResources nresources = dcontext.getNamingResources();
if (nresources != null) {
storeNamingResources(writer, indent + 2, nresources);
}
// Store the ending of this element
for (int i = 0; i < indent; i++) {
writer.print(' ');
}
writer.println("</DefaultContext>");
}
/**
* Store the specified Engine properties.
*
* @param writer PrintWriter to which we are storing
* @param indent Number of spaces to indent this element
* @param engine Object whose properties are being stored
*
* @exception Exception if an exception occurs while storing
*/
private void storeEngine(PrintWriter writer, int indent,
Engine engine) throws Exception {
// Store the beginning of this element
for (int i = 0; i < indent; i++) {
writer.print(' ');
}
writer.print("<Engine");
storeAttributes(writer, engine);
writer.println(">");
// Store nested <DefaultContext> element
if (engine instanceof StandardEngine) {
DefaultContext dcontext =
((StandardEngine) engine).getDefaultContext();
if (dcontext != null) {
storeDefaultContext(writer, indent + 2, dcontext);
}
}
// Store nested <Host> elements (or other relevant containers)
Container children[] = engine.findChildren();
for (int i = 0; i < children.length; i++) {
if (children[i] instanceof Context) {
storeContext(writer, indent + 2, (Context) children[i]);
} else if (children[i] instanceof Engine) {
storeEngine(writer, indent + 2, (Engine) children[i]);
} else if (children[i] instanceof Host) {
storeHost(writer, indent + 2, (Host) children[i]);
}
}
// Store nested <Listener> elements
if (engine instanceof Lifecycle) {
LifecycleListener listeners[] =
((Lifecycle) engine).findLifecycleListeners();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i].getClass().getName().equals
(SERVER_LISTENER_CLASS_NAME)) {
continue;
}
storeListener(writer, indent + 2, listeners[i]);
}
}
// Store nested <Logger> element
Logger logger = engine.getLogger();
if (logger != null) {
Logger parentLogger = null;
if (engine.getParent() != null) {
parentLogger = engine.getParent().getLogger();
}
if (logger != parentLogger) {
storeLogger(writer, indent + 2, logger);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -