org.async.rmi.config.Configuration Maven / Gradle / Ivy
package org.async.rmi.config;
import org.async.rmi.TimeSpan;
import org.async.rmi.Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.concurrent.TimeUnit;
/**
* Created by Barak Bar Orion
* 05/10/14.
*/
public class Configuration {
@SuppressWarnings("UnusedDeclaration")
private static final Logger logger = LoggerFactory.getLogger(Configuration.class);
private int configurePort = 0;
private int actualPort;
private TimeSpan clientConnectTimeout = new TimeSpan(30, TimeUnit.SECONDS);
private TimeSpan clientTimeout = new TimeSpan(30, TimeUnit.SECONDS);
private String serverHostName;
private NetMap netMap;
public static Configuration readDefault() {
String ymlFileName = System.getProperty("java.rmi.server.config", "config.yml");
File ymlFile = new File(ymlFileName);
if (ymlFile.exists()) {
logger.debug("reading configuration from {}", ymlFile.getAbsolutePath());
try {
return Util.readConfiguration(ymlFile);
} catch (Exception e) {
logger.error(e.toString(), e);
return new Configuration();
}
} else {
return new Configuration();
}
}
public Configuration() {
this.netMap = NetMap.empty();
}
public int getConfigurePort() {
return configurePort;
}
public String getServerHostName() {
if (serverHostName == null) {
return System.getProperty("java.rmi.server.hostname", null);
}
return serverHostName;
}
@SuppressWarnings("UnusedDeclaration")
public void setServerHostName(String serverHostName) {
this.serverHostName = serverHostName;
}
public void setConfigurePort(int configurePort) {
this.configurePort = configurePort;
}
public int getActualPort() {
return actualPort;
}
public void setActualPort(int actualPort) {
this.actualPort = actualPort;
}
public TimeSpan getClientConnectTimeout() {
return clientConnectTimeout;
}
public Configuration setClientConnectTimeout(long time, TimeUnit timeUnit) {
this.clientConnectTimeout = new TimeSpan(time, timeUnit);
return this;
}
public TimeSpan getClientTimeout() {
return clientTimeout;
}
public void setClientTimeout(long time, TimeUnit timeUnit) {
this.clientTimeout = new TimeSpan(time, timeUnit);
}
public NetMap getNetMap() {
return netMap;
}
public void setNetMap(NetMap netMap) {
this.netMap = netMap;
}
@SuppressWarnings("UnusedDeclaration")
public void setClientConnectTimeout(TimeSpan clientConnectTimeout) {
this.clientConnectTimeout = clientConnectTimeout;
}
@SuppressWarnings("UnusedDeclaration")
public void setClientTimeout(TimeSpan clientTimeout) {
this.clientTimeout = clientTimeout;
}
}