📄 socketfactfactory.java
字号:
package lib.commons.net;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import lib.commons.Utils;
import lib.commons.config.DomConfig;
public final class SocketFactFactory {
private static Map _factMap;
private static SocketFactory _defaultSocketFact = new SocketFactory();
private static String _defaultFactName;
private SocketFactFactory() {
}
public static String getDefaultFactName() {
return null == _defaultFactName ? Utils.EMPTY_STRING : _defaultFactName;
}
public static SocketFactory getSocketFactory() {
SocketFactory fact = getSocketFactory(null);
return null == fact ? _defaultSocketFact : fact;
}
public static SocketFactory getSocketFactory(String factName) {
factName = null == factName ? getDefaultFactName() : factName;
SocketFactory fact = null;
Map tmpfactMap = _factMap;
if (null != tmpfactMap && tmpfactMap.containsKey(factName))
fact = (SocketFactory) tmpfactMap.get(factName);
return fact;
}
public static Socket createSocket(String address, int port,
int connectionTimeout, int readTimeout) throws IOException,
UnknownHostException {
SocketFactory fact = getSocketFactory();
Socket socket = null;
if (null != fact)
socket = fact.createSocket(address, port, connectionTimeout,
readTimeout);
return socket;
}
public static Socket createSocket(String factName, String address,
int port, int connectionTimeout, int readTimeout)
throws IOException, UnknownHostException {
SocketFactory fact = getSocketFactory(factName);
Socket socket = null;
if (null != fact)
socket = fact.createSocket(address, port, connectionTimeout,
readTimeout);
return socket;
}
private static lib.commons.logging.Log log = lib.commons.logging.LogFactory
.getLog(SocketFactFactory.class);
public static void loadXmlFile(String xmlFilePath) {
try {
DomConfig domConfig = DomConfig.loadXmlFile(xmlFilePath);
DomConfig factFactConfig = domConfig
.selectChildConfig("SocketFactFactory");
if (null == factFactConfig || factFactConfig.isEmpty())
factFactConfig = domConfig;
loadDomConfig(factFactConfig);
} catch (Exception err) {
log.error("Load xml file '" + xmlFilePath + "' error:"
+ err.getMessage(), err);
}
}
public static void loadXml(String xml) {
try {
DomConfig domConfig = DomConfig.loadXml(xml);
DomConfig factFactConfig = domConfig
.selectChildConfig("SocketFactFactory");
if (null == factFactConfig || factFactConfig.isEmpty())
factFactConfig = domConfig;
loadDomConfig(factFactConfig);
} catch (Exception err) {
log.error("Load xml '" + xml + "' error:" + err.getMessage(), err);
}
}
public static void loadDomConfig(DomConfig domConfig) {
Map tmp_factMap = new HashMap();
String tmp_defaultFactName = null;
if (null != domConfig && !domConfig.isEmpty()) {
try {
tmp_defaultFactName = domConfig
.selectValue("DefualtSocketFactory");
} catch (Exception err) {
log.error(
"Load DefualtSocketFactory error:" + err.getMessage(),
err);
}
try {
DomConfig[] factConfigs = domConfig
.selectChildConfigs("SocketFactory");
for (int i = 0; null != factConfigs && i < factConfigs.length; i++) {
try {
String factName = factConfigs[i].selectValue("name");
factName = null == factName ? Utils.EMPTY_STRING
: factName;
if (!tmp_factMap.containsKey(factName)) {
String clazz = factConfigs[i].selectValue("class");
SocketFactory tmpsocketFact = (SocketFactory) Class
.forName(clazz).newInstance();
DomConfig propConfig = factConfigs[i]
.selectChildConfig("properties");
SocketFactory socketFact = tmpsocketFact
.createInstance(propConfig);
tmp_factMap.put(factName, socketFact);
} else {
log.warn("Load SocketFactory warn : " + factName
+ " is exists");
}
} catch (Exception ex) {
log.error("Load SocketFactory " + i + " error:"
+ ex.getMessage(), ex);
}
}
} catch (Exception err) {
log.error("Load SocketFactory error:" + err.getMessage(), err);
}
}
_factMap = tmp_factMap;
_defaultFactName = tmp_defaultFactName;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -