/*
* Copyright 2015 Liu Huanting.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package fm.liu.timo.config.model;
import fm.liu.timo.config.Isolations;
/**
* @author Liu Huanting 2015年5月9日
* 系统级参数配置信息
*/
public class SystemConfig {
private static final int DEFAULT_PORT = 8066;
private static final int DEFAULT_MANAGER_PORT = 9066;
private static final String DEFAULT_CHARSET = "UTF-8";
private static final int DEFAULT_PROCESSORS =
Runtime.getRuntime().availableProcessors();
private static final long DEFAULT_IDLE_TIMEOUT = 8 * 3600 * 1000L;
private static final long DEFAULT_PROCESSOR_CHECK_PERIOD = 10 * 1000L;
private static final long DEFAULT_DATANODE_IDLE_CHECK_PERIOD = 60 * 1000L;
private static final int DEFAULT_PARSER_COMMENT_VERSION = 50148;
private static final int DEFAULT_HEARTBEAT_PERIOD = 1000;
private static final int DEFAULT_HEARTBEAT_TIMEOUT = 300;
private static final int DEFAULT_QUERY_TIMEOUT = 300;
private static final int DEFAULT_SQL_RECORD_COUNT = 10;
private static final boolean DEFAULT_ENABLE_XA = false;
private int serverPort;
private int managerPort;
private String charset;
private int processors;
private int processorHandler;
private int processorExecutor;
private int initExecutor;
private int timerExecutor;
private int managerExecutor;
private long idleTimeout;
private long processorCheckPeriod;
private long dataNodeIdleCheckPeriod;
private int txIsolation;
private int parserCommentVersion;
private String url;
private String username;
private String password;
private int heartbeatPeriod;
private int heartbeatTimeout;
private int queryTimeout;
private int sqlRecordCount;
private boolean enableXA;
public SystemConfig() {
this.serverPort = DEFAULT_PORT;
this.managerPort = DEFAULT_MANAGER_PORT;
this.charset = DEFAULT_CHARSET;
this.processors = DEFAULT_PROCESSORS;
this.processorHandler = DEFAULT_PROCESSORS;
this.processorExecutor = DEFAULT_PROCESSORS;
this.managerExecutor = DEFAULT_PROCESSORS;
this.timerExecutor = DEFAULT_PROCESSORS;
this.initExecutor = DEFAULT_PROCESSORS;
this.idleTimeout = DEFAULT_IDLE_TIMEOUT;
this.processorCheckPeriod = DEFAULT_PROCESSOR_CHECK_PERIOD;
this.dataNodeIdleCheckPeriod = DEFAULT_DATANODE_IDLE_CHECK_PERIOD;
this.txIsolation = Isolations.REPEATED_READ;
this.parserCommentVersion = DEFAULT_PARSER_COMMENT_VERSION;
this.heartbeatPeriod = DEFAULT_HEARTBEAT_PERIOD;
this.heartbeatTimeout = DEFAULT_HEARTBEAT_TIMEOUT;
this.queryTimeout = DEFAULT_QUERY_TIMEOUT;
this.sqlRecordCount = DEFAULT_SQL_RECORD_COUNT;
this.setEnableXA(DEFAULT_ENABLE_XA);
}
public String getCharset() {
return charset;
}
public void setCharset(String charset) {
this.charset = charset;
}
public int getServerPort() {
return serverPort;
}
public void setServerPort(int serverPort) {
this.serverPort = serverPort;
}
public int getManagerPort() {
return managerPort;
}
public void setManagerPort(int managerPort) {
this.managerPort = managerPort;
}
public int getProcessors() {
return processors;
}
public void setProcessors(int processors) {
this.processors = processors;
}
public int getProcessorHandler() {
return processorHandler;
}
public void setProcessorHandler(int processorExecutor) {
this.processorHandler = processorExecutor;
}
public int getProcessorExecutor() {
return processorExecutor;
}
public void setProcessorExecutor(int processorExecutor) {
this.processorExecutor = processorExecutor;
}
public int getManagerExecutor() {
return managerExecutor;
}
public void setManagerExecutor(int managerExecutor) {
this.managerExecutor = managerExecutor;
}
public int getTimerExecutor() {
return timerExecutor;
}
public void setTimerExecutor(int timerExecutor) {
this.timerExecutor = timerExecutor;
}
public int getInitExecutor() {
return initExecutor;
}
public void setInitExecutor(int initExecutor) {
this.initExecutor = initExecutor;
}
public long getIdleTimeout() {
return idleTimeout;
}
public void setIdleTimeout(long idleTimeout) {
this.idleTimeout = idleTimeout;
}
public long getProcessorCheckPeriod() {
return processorCheckPeriod;
}
public void setProcessorCheckPeriod(long processorCheckPeriod) {
this.processorCheckPeriod = processorCheckPeriod;
}
public long getDataNodeIdleCheckPeriod() {
return dataNodeIdleCheckPeriod;
}
public void setDataNodeIdleCheckPeriod(long dataNodeIdleCheckPeriod) {
this.dataNodeIdleCheckPeriod = dataNodeIdleCheckPeriod;
}
public int getTxIsolation() {
return txIsolation;
}
public void setTxIsolation(int txIsolation) {
this.txIsolation = txIsolation;
}
public int getParserCommentVersion() {
return parserCommentVersion;
}
public void setParserCommentVersion(int parserCommentVersion) {
this.parserCommentVersion = parserCommentVersion;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getHeartbeatPeriod() {
return heartbeatPeriod;
}
public void setHeartbeatPeriod(int heartbeatPeriod) {
this.heartbeatPeriod = heartbeatPeriod;
}
public int getHeartbeatTimeout() {
return heartbeatTimeout;
}
public void setHeartbeatTimeout(int heartbeatTimeout) {
this.heartbeatTimeout = heartbeatTimeout;
}
public int getQueryTimeout() {
return queryTimeout * 1000;
}
public void setQueryTimeout(int queryTimeout) {
this.queryTimeout = queryTimeout;
}
public int getSqlRecordCount() {
return sqlRecordCount;
}
public void setSqlRecordCount(int sqlRecordCount) {
this.sqlRecordCount = sqlRecordCount;
}
public boolean isEnableXA() {
return enableXA;
}
public void setEnableXA(boolean enableXA) {
this.enableXA = enableXA;
}
}