redis数据集插件。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

98 lines
2.5 KiB

package com.fr.plugin.db.redis.conf;
import com.fr.file.XMLFileManager;
import com.fr.general.GeneralContext;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.StringUtils;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLTools;
import com.fr.stable.xml.XMLableReader;
import java.io.InputStream;
/**
* Created by richie on 2017/6/5.
*/
public class ShellConfigManager extends XMLFileManager implements ShellConfigManagerProvider {
private static final String XML_TAG = "ShellConfigManager";
private static ShellConfigManagerProvider shellManager = null;
public synchronized static ShellConfigManager getInstance() {
return (ShellConfigManager) getProviderInstance();
}
public synchronized static ShellConfigManagerProvider getProviderInstance() {
if (shellManager == null) {
if (isClusterMember()) {
return shellManager;
}
shellManager.readXMLFile();
}
return shellManager;
}
private synchronized static boolean isClusterMember() {
return false;
}
static {
GeneralContext.addEnvChangedListener(new EnvChangedListener() {
public void envChanged() {
ShellConfigManager.envChanged();
}
});
}
private synchronized static void envChanged() {
shellManager = null;
}
private String shellText;
@Override
public String getShellText() {
return shellText;
}
public void setShellText(String shellText) {
this.shellText = shellText;
}
@Override
public void readXML(XMLableReader reader) {
if (reader.isAttr()) {
shellText = reader.getAttrAsString("shell", StringUtils.EMPTY);
}
}
@Override
public void writeXML(XMLPrintWriter writer) {
writer.startTAG(XML_TAG);
writer.attr("shell", shellText);
writer.end();
}
@Override
public String fileName() {
return "redis.xml";
}
@Override
public void readFromInputStream(InputStream input) throws Exception {
// 服务器端新建一个对象
ShellConfigManager manager = new ShellConfigManager();
// 从客户端传过来的inputstream中读取对象属性
XMLTools.readInputStreamXML(manager, input);
// 赋值给当前服务器端对象
shellManager = manager;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}