⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quickserverconfig.java

📁 一个用java编写的服务器,对于学习网络编程的人来说是个很好的例子
💻 JAVA
字号:
/*
 * This file is part of the QuickServer library 
 * Copyright (C) 2003-2005 QuickServer.org
 *
 * Use, modification, copying and distribution of this software is subject to
 * the terms and conditions of the GNU Lesser General Public License. 
 * You should have received a copy of the GNU LGP License along with this 
 * library; if not, you can download a copy from <http://www.quickserver.org/>.
 *
 * For questions, suggestions, bug-reports, enhancement-requests etc.
 * visit http://www.quickserver.org
 *
 */

package org.quickserver.util.xmlreader;

import org.quickserver.net.server.QuickServer;

/**
 * This class encapsulate the configuration of QuickServer.
 * <p>
 * This is used by {@link QuickServer#configQuickServer} and
 * {@link QuickServer#initService} method to initialise 
 * QuickServer. 
 * </p>
 * @author Akshathkumar Shetty
 * @since 1.2
 */
public class QuickServerConfig extends BasicServerConfig {
	
	private QSAdminServerConfig qSAdminServerConfig;
	private DBObjectPoolConfig dDObjectPoolConfig;
	private ApplicationConfiguration applicationConfiguration;
	private InitServerHooks initServerHooks;

	private String securityManagerClass = null;
	private String configFile = null;
	private String applicationJarPath = null;

	public QuickServerConfig() {
		setName("QuickServer v"+QuickServer.getVersion());
	}
	
	/**
	 * Sets the QSAdminServer configuration.
	 * XML Tag: &lt;qsadmin-server&gt;&lt;/qsadmin-server&gt;
	 */
	public void setQSAdminServerConfig(QSAdminServerConfig config) {
		qSAdminServerConfig = config;
	}
	/**
	 * Returns QSAdminServer configuration.
	 */
	public QSAdminServerConfig getQSAdminServerConfig() {
		return qSAdminServerConfig;
	}

	/**
	 * Sets the DBObjectPoolConfig
	 * XML Tag: &lt;object-pool&gt;&lt;/object-pool&gt;
	 * @since 1.3
	 */
	public void setDBObjectPoolConfig(DBObjectPoolConfig dDObjectPoolConfig) {
		this.dDObjectPoolConfig = dDObjectPoolConfig;
	}
	/**
	 * Returns DBObjectPoolConfig
	 * @since 1.3
	 */
	public DBObjectPoolConfig getDBObjectPoolConfig() {
		return dDObjectPoolConfig;
	}

	/**
	 * Sets the Application Configuration. This can be used by application to 
	 * store its configuration information.
	 * XML Tag: &lt;application-configuration&gt;&lt;/application-configuration&gt;
	 * @since 1.3.2
	 */
	public void setApplicationConfiguration(
			ApplicationConfiguration applicationConfiguration) {
		this.applicationConfiguration = applicationConfiguration;
	}
	/**
	 * Returns ApplicationConfiguration
	 * @since 1.3.2
	 */
	public ApplicationConfiguration getApplicationConfiguration() {
		return applicationConfiguration;
	}


	/**
	 * Sets the SecurityManager class
	 * XML Tag: &lt;security-manager-class&gt;&lt;/security-manager-class&gt;
	 * @param securityManagerClass className the fully qualified name of the 
	 * class that extends {@link java.lang.SecurityManager}.
	 * @see #getSecurityManagerClass
	 * @since 1.3.3
	 */
	public void setSecurityManagerClass(String securityManagerClass) {
		if(securityManagerClass!=null)
			this.securityManagerClass = securityManagerClass;
	}
	/**
	 * Returns the SecurityManager class
	 * @see #setSecurityManagerClass
	 * @since 1.3.3
	 */
	public String getSecurityManagerClass() {
		return securityManagerClass;
	}

	/**
	 * Sets the file path of the file that loaded the config from.
	 * @since 1.3.3
	 */
	protected void setConfigFile(String fileName) {
		configFile = fileName;
	}

	/**
	 * Returns the file path of the file that loaded the configuration file.
	 * @since 1.3.3
	 */
	public String getConfigFile() {
		return configFile;
	}


	/**
	 * Sets the applications jar/s path. This can be either absolute or
	 * relative(to config file) path to the jar file or the directory containing the jars 
	 * needed by the application.
	 * @see #getApplicationJarPath
	 * @since 1.3.3
	 */
	public void setApplicationJarPath(String applicationJarPath) {
		this.applicationJarPath = applicationJarPath;
	}

	/**
	 * Returns the applications jar/s path. This can be either absolute or
	 * relative(to config file) path to the jar file or the directory containing the jars 
	 * needed by the application.
	 * @see #setApplicationJarPath
	 * @since 1.3.3
	 */
	public String getApplicationJarPath() {
		return applicationJarPath;
	}


	/**
	 * Sets the InitServerHooks. 
	 * @see #getInitServerHooks
	 * @since 1.4
	 */
	public void setInitServerHooks(InitServerHooks initServerHooks) {
		this.initServerHooks = initServerHooks;
	}

	/**
	 * Returns the InitServerHooks.
	 * @see #setInitServerHooks
	 * @since 1.4
	 */
	public InitServerHooks getInitServerHooks() {
		return initServerHooks;
	}

	/**
	 * Returns XML config of this class.
	 * @since 1.3
	 */
	public String toXML(String pad) {
		if(pad==null) pad="";
		StringBuffer sb = new StringBuffer();
		sb.append(pad+"<quickserver>\n");

		if(getName()!=null) 
			sb.append(pad+"\t<name>"+getName()+"</name>\n");
		if(getServerBanner()!=null) 
			sb.append(pad+"\t<server-banner>"+getServerBanner()+"</server-banner>\n");
		sb.append(pad+"\t<port>"+getPort()+"</port>\n");
		if(getBindAddr()!=null) 
			sb.append(pad+"\t<bind-address>"+getBindAddr()+"</bind-address>\n");

		sb.append( getServerMode().toXML(pad+"\t") );

		if(getClientEventHandler()!=null) 
			sb.append(pad+"\t<client-event-handler>"+getClientEventHandler()+"</client-event-handler>\n");
		if(getClientCommandHandler()!=null) 
			sb.append(pad+"\t<client-command-handler>"+getClientCommandHandler()+"</client-command-handler>\n");
		if(getClientObjectHandler()!=null) 
			sb.append(pad+"\t<client-object-handler>"+getClientObjectHandler()+"</client-object-handler>\n");
		if(getClientBinaryHandler()!=null) 
			sb.append(pad+"\t<client-binary-handler>"+getClientBinaryHandler()+"</client-binary-handler>\n");
		if(getClientWriteHandler()!=null) 
			sb.append(pad+"\t<client-write-handler>"+getClientWriteHandler()+"</client-write-handler>\n");
		if(getClientAuthenticationHandler()!=null)
			sb.append(pad+"\t<client-authentication-handler>"+getClientAuthenticationHandler()+"</client-authentication-handler>\n");
		else if(getAuthenticator()!=null)
			sb.append(pad+"\t<authenticator>"+getAuthenticator()+"</authenticator>\n");
		if(getClientData()!=null) 
			sb.append(pad+"\t<client-data>"+getClientData()+"</client-data>\n");
		if(getClientExtendedEventHandler()!=null) 
			sb.append(pad+"\t<client-extended-event-handler>"+getClientExtendedEventHandler()+"</client-extended-event-handler>\n");
	
		sb.append( getDefaultDataMode().toXML(pad+"\t") );

		sb.append(pad+"\t<timeout>"+getTimeout()+"</timeout>\n");
		if(getTimeoutMsg()!=null) 
			sb.append(pad+"\t<timeout-msg>"+getTimeoutMsg()+"</timeout-msg>\n");

		sb.append(pad+"\t<max-auth-try>"+getMaxAuthTry()+"</max-auth-try>\n");
		if(getMaxAuthTryMsg()!=null) 
			sb.append(pad+"\t<max-auth-try-msg>"+getMaxAuthTryMsg()+"</max-auth-try-msg>\n");
		
		sb.append(pad+"\t<max-connection>"+getMaxConnection()+"</max-connection>\n");
		if(getMaxConnectionMsg()!=null) 
			sb.append(pad+"\t<max-connection-msg>"+getMaxConnectionMsg()+"</max-connection-msg>\n");
		
		
		if(getConsoleLoggingLevel()!=null) 
			sb.append(pad+"\t<console-logging-level>"+getConsoleLoggingLevel()+"</console-logging-level>\n");
		if(getConsoleLoggingFormatter()!=null) 
			sb.append(pad+"\t<console-logging-formatter>"+getConsoleLoggingFormatter()+"</console-logging-formatter>\n");
		
		sb.append(getObjectPoolConfig().toXML(pad+"\t"));

		sb.append(pad+"\t<communication-logging>\n");
		sb.append(pad+"\t\t<enable>"+getCommunicationLogging()+"</enable>\n");
		sb.append(pad+"\t</communication-logging>\n");

		if(getDBObjectPoolConfig()!=null) {
			sb.append( getDBObjectPoolConfig().toXML(pad+"\t") );
		}

		if(getSecurityManagerClass()!=null) {
			sb.append(pad+"\t<security-manager-class>"+getSecurityManagerClass()+"</security-manager-class>\n");
		}

		if(getAccessConstraintConfig()!=null) {
			sb.append(getAccessConstraintConfig().toXML(pad+"\t"));
		}

		if(getQSAdminServerConfig()!=null) 
			sb.append( getQSAdminServerConfig().toXML(pad+"\t") );


		if(getApplicationConfiguration()!=null) {
			sb.append( getApplicationConfiguration().toXML(pad+"\t") );
		}

		if(getApplicationJarPath()!=null) {
			sb.append(pad+"\t<application-jar-path>"+
				getApplicationJarPath()+
				"</application-jar-path>\n");
		}

		if(getServerHooks()!=null) {
			sb.append( getServerHooks().toXML(pad+"\t") );
		}

		if(getInitServerHooks()!=null) {
			sb.append( getInitServerHooks().toXML(pad+"\t") );
		}

		sb.append( getSecure().toXML(pad+"\t") );
		sb.append( getAdvancedSettings().toXML(pad+"\t") );

		sb.append(pad+"</quickserver>\n");
		return sb.toString();
	}

	public String toString() {
		return toXML(null);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -