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

📄 configreader.java

📁 一个用java编写的服务器,对于学习网络编程的人来说是个很好的例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		digester.addBeanPropertySetter(curTag+"/client-object-handler", "clientObjectHandler");
		digester.addBeanPropertySetter(curTag+"/console-logging-level", "consoleLoggingLevel");
		digester.addBeanPropertySetter(curTag+"/console-logging-formatter", "consoleLoggingFormatter");
		//<default-data-mode>
		digester.addObjectCreate(curTag+"/default-data-mode", DefaultDataMode.class);
		digester.addBeanPropertySetter(curTag+"/default-data-mode/data-type-in", "dataModeIn");
		digester.addBeanPropertySetter(curTag+"/default-data-mode/data-type-out", "dataModeOut");
		digester.addSetNext(curTag+"/default-data-mode","setDefaultDataMode");
		//</default-data-mode>
		//<object-pool>
		digester.addObjectCreate(curTag+"/object-pool", ObjectPoolConfig.class);
		digester.addBeanPropertySetter(curTag+"/object-pool/max-active", "maxActive");
		digester.addBeanPropertySetter(curTag+"/object-pool/max-idle", "maxIdle");
		digester.addBeanPropertySetter(curTag+"/object-pool/init-size", "initSize");
		digester.addBeanPropertySetter(curTag+"/object-pool/pool-manager", "poolManager");
		//<thread-object-pool>
		digester.addObjectCreate(curTag+"/object-pool/thread-object-pool", ThreadObjectPoolConfig.class);
		digester.addBeanPropertySetter(curTag+"/object-pool/thread-object-pool/max-active", "maxActive");
		digester.addBeanPropertySetter(curTag+"/object-pool/thread-object-pool/max-idle", "maxIdle");
		digester.addBeanPropertySetter(curTag+"/object-pool/thread-object-pool/init-size", "initSize");
		digester.addSetNext(curTag+"/object-pool/thread-object-pool","setThreadObjectPoolConfig");
		//</thread-object-pool>
		//<client-handler-object-pool>
		digester.addObjectCreate(curTag+"/object-pool/client-handler-object-pool", ClientHandlerObjectPoolConfig.class);
		digester.addBeanPropertySetter(curTag+"/object-pool/client-handler-object-pool/max-active", "maxActive");
		digester.addBeanPropertySetter(curTag+"/object-pool/client-handler-object-pool/max-idle", "maxIdle");
		digester.addBeanPropertySetter(curTag+"/object-pool/client-handler-object-pool/init-size", "initSize");
		digester.addSetNext(curTag+"/object-pool/client-handler-object-pool","setClientHandlerObjectPoolConfig");
		//</client-handler-object-pool>
		//<byte-buffer-object-pool>
		digester.addObjectCreate(curTag+"/object-pool/byte-buffer-object-pool", ByteBufferObjectPoolConfig.class);
		digester.addBeanPropertySetter(curTag+"/object-pool/byte-buffer-object-pool/max-active", "maxActive");
		digester.addBeanPropertySetter(curTag+"/object-pool/byte-buffer-object-pool/max-idle", "maxIdle");
		digester.addBeanPropertySetter(curTag+"/object-pool/byte-buffer-object-pool/init-size", "initSize");
		digester.addSetNext(curTag+"/object-pool/byte-buffer-object-pool","setByteBufferObjectPoolConfig");
		//</byte-buffer-object-pool>
		//<client-data-object-pool>
		digester.addObjectCreate(curTag+"/object-pool/client-data-object-pool", ClientDataObjectPoolConfig.class);
		digester.addBeanPropertySetter(curTag+"/object-pool/client-data-object-pool/max-active", "maxActive");
		digester.addBeanPropertySetter(curTag+"/object-pool/client-data-object-pool/max-idle", "maxIdle");
		digester.addBeanPropertySetter(curTag+"/object-pool/client-data-object-pool/init-size", "initSize");
		digester.addSetNext(curTag+"/object-pool/client-data-object-pool","setClientDataObjectPoolConfig");
		//</client-data-object-pool>
		digester.addSetNext(curTag+"/object-pool", "setObjectPoolConfig");
		//</object-pool>		
		//<command-shell>
		digester.addBeanPropertySetter(curTag+"/command-shell/enable", "commandShellEnable");
		digester.addBeanPropertySetter(curTag+"/command-shell/prompt-name", "commandShellPromptName");
		//</command-shell>
		//<communication-logging><enable>
		digester.addBeanPropertySetter(curTag+"/communication-logging/enable", "communicationLogging");
		//<access-constraint>
		digester.addObjectCreate(curTag+"/access-constraint", AccessConstraintConfig.class);
		//<ip-filter>
		digester.addObjectCreate(curTag+"/access-constraint/ip-filter", IpFilterConfig.class);
		digester.addBeanPropertySetter(curTag+"/access-constraint/ip-filter/enable", "enable");
		digester.addBeanPropertySetter(curTag+"/access-constraint/ip-filter/allow-access", "allowAccess");
		//<ip-collection>
		digester.addCallMethod(curTag+"/access-constraint/ip-filter/ip-collection/client-ip-address", "addClientIpAddress", 0);
		//<ip-collection>
		digester.addSetNext(curTag+"/access-constraint/ip-filter", "setIpFilterConfig");
		//<ip-filter>
		digester.addSetNext(curTag+"/access-constraint", "setAccessConstraintConfig");
		//</access-constraint>	
		//<server-hooks>
		digester.addObjectCreate(curTag+"/server-hooks", ServerHooks.class);
		digester.addCallMethod(curTag+"/server-hooks/class-name", "addClassName", 0);
		digester.addSetNext(curTag+"/server-hooks", "setServerHooks");
		//</server-hooks>

		//<secure>
		digester.addObjectCreate(curTag+"/secure", Secure.class);
		digester.addBeanPropertySetter(curTag+"/secure/enable", "enable");
		digester.addBeanPropertySetter(curTag+"/secure/load", "load");
		digester.addBeanPropertySetter(curTag+"/secure/port", "port");
		digester.addBeanPropertySetter(curTag+"/secure/protocol", "protocol");
		digester.addBeanPropertySetter(curTag+"/secure/client-auth-enable", "clientAuthEnable");
		//<secure-store>
		digester.addObjectCreate(curTag+"/secure/secure-store", SecureStore.class);
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/type", "type");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/algorithm", "algorithm");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/provider", "provider");
		//<key-store-info>
		digester.addObjectCreate(curTag+"/secure/secure-store/key-store-info", KeyStoreInfo.class);
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/key-store-info/store-file", "storeFile");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/key-store-info/store-password", "storePassword");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/key-store-info/key-password", "keyPassword");
		digester.addSetNext(curTag+"/secure/secure-store/key-store-info","setKeyStoreInfo");
		//</key-store-info>
		//<trust-store-info>
		digester.addObjectCreate(curTag+"/secure/secure-store/trust-store-info", TrustStoreInfo.class);
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/trust-store-info/store-file", "storeFile");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/trust-store-info/store-password", "storePassword");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/trust-store-info/type", "type");
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/trust-store-info/provider", "provider");
		digester.addSetNext(curTag+"/secure/secure-store/trust-store-info","setTrustStoreInfo");
		//</trust-store-info>
		digester.addBeanPropertySetter(curTag+"/secure/secure-store/secure-store-manager", "secureStoreManager");
		digester.addSetNext(curTag+"/secure/secure-store","setSecureStore");
		//</secure-store>
		digester.addSetNext(curTag+"/secure","setSecure");
		//</secure>
		digester.addBeanPropertySetter(curTag+"/command-plugin", "commandPlugin");
		//<advanced-settings>
		digester.addObjectCreate(curTag+"/advanced-settings", AdvancedSettings.class);
		digester.addBeanPropertySetter(curTag+"/advanced-settings/charset", "charset");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/byte-buffer-size", "byteBufferSize");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/backlog", "backlog");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/use-direct-byte-buffer", "useDirectByteBuffer");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/socket-linger", "socketLinger");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/debug-non-blocking-mode", "debugNonBlockingMode");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/client-identifier", "clientIdentifier");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/qsobject-pool-maker", "qSObjectPoolMaker");
		digester.addBeanPropertySetter(curTag+"/advanced-settings/max-threads-for-nio-write", "maxThreadsForNioWrite");
		digester.addSetNext(curTag+"/advanced-settings","setAdvancedSettings");
		//</advanced-settings>
		digester.addSetNext(curTag, "setQSAdminServerConfig");
		//</qsadmin-server>


		//<db-object-pool>
		subTag = "db-object-pool";
		digester.addObjectCreate(mainTag+"/"+subTag, DBObjectPoolConfig.class);
		//<database-connection-set>
		digester.addObjectCreate(mainTag+"/"+subTag+"/database-connection-set", DatabaseConnectionSet.class);
		//<database-connection>
		curTag = mainTag+"/"+subTag+"/database-connection-set/database-connection";
		digester.addObjectCreate(curTag, DatabaseConnectionConfig.class);
		digester.addBeanPropertySetter(curTag+"/id", "id");
		digester.addBeanPropertySetter(curTag+"/driver", "driver");
		digester.addBeanPropertySetter(curTag+"/url", "url");
		digester.addBeanPropertySetter(curTag+"/username", "username");
		digester.addBeanPropertySetter(curTag+"/password", "password");
		digester.addSetNext(curTag, "addDatabaseConnection");
		//</database-connection>
		digester.addSetNext(mainTag+"/"+subTag+"/database-connection-set", "setDatabaseConnectionSet");
		//</database-connection-set>
		//<db-pool-util>
		curTag = mainTag+"/"+subTag+"/db-pool-util";
		digester.addBeanPropertySetter(curTag, "dbPoolUtil");
		//</db-pool-util>		
		digester.addSetNext(mainTag+"/"+subTag, "setDBObjectPoolConfig");
		//</db-object-pool>


		//<application-configuration>
		subTag = "application-configuration";
		digester.addObjectCreate(mainTag+"/"+subTag, ApplicationConfiguration.class);
		digester.addBeanPropertySetter(mainTag+"/"+subTag+"/prompt-type", "promptType");
		curTag = mainTag+"/"+subTag+"/"+"property";
		digester.addObjectCreate(curTag, Property.class);
		digester.addBeanPropertySetter(curTag+"/property-name", "name");
		digester.addBeanPropertySetter(curTag+"/property-value", "value");
		digester.addSetNext(curTag, "addProperty");
		digester.addSetNext(mainTag+"/"+subTag, "setApplicationConfiguration");
		//</application-configuration>


		//<init-server-hooks>
		subTag = "init-server-hooks";
		digester.addObjectCreate(mainTag+"/"+subTag, InitServerHooks.class);
		digester.addCallMethod(mainTag+"/"+subTag+"/class-name", 
			"addClassName", 0);
		digester.addSetNext(mainTag+"/"+subTag, "setInitServerHooks");
		//</init-server-hooks>

		logger.fine("Loading config from xml file : " + input.getAbsolutePath());
		QuickServerConfig qsc = (QuickServerConfig) digester.parse(input);
		qsc.setConfigFile(input.getAbsolutePath());
		
		loadMissingApplicationConfiguration(qsc);

		QuickServer.setDebugNonBlockingMode(qsc.getAdvancedSettings().getDebugNonBlockingMode());

		return qsc;
	}

	private static void loadMissingApplicationConfiguration(QuickServerConfig qsc) 
			throws IOException {
		ApplicationConfiguration ac = qsc.getApplicationConfiguration();
		if(ac==null) return;

		//check if any application-configuration had missing property-value
		Set propertyNames = ac.keySet();
		Iterator iterator = propertyNames.iterator();
		String key = null;
		Object value = null;
		char sv[] = null;
		SensitiveInput sensitiveInput = null;
		boolean guiPrompt = ac.getPromptType().equals("console")==false?true:false;

		while(iterator.hasNext()) {
			key = (String) iterator.next();
			value = ac.get(key);
			if(value==null) {
				if(guiPrompt && sensitiveInput==null) {
					sensitiveInput = new SensitiveInput(
						qsc.getName()+" - Input Prompt");
				}
				
				if(guiPrompt)
					sv = sensitiveInput.getInput(key);
				else
					sv = PasswordField.getPassword("Input property value for "+key+" : ");				

				if(sv!=null) {
					value = new String(sv);
					ac.put(key, value);
				}
				value = null;
			}
		}
	}

	/**
	 * Make the file passed absolute, relative to the location of 
	 * configuration file that loaded QuickServerConfig object passed. 
	 * @since 1.4
	 */
	public static File makeAbsoluteToConfig(String fileName, 
			QuickServerConfig config) {
		File file = new File(fileName);
		if(config==null) return file;
		if(file.isAbsolute()==false) {
			String temp = config.getConfigFile();
			file = new File(temp);
			temp = file.getParent() + File.separatorChar + fileName;
			file = new File(temp);
		}
		return file;
	}
}

⌨️ 快捷键说明

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