package com.softwaremill.common.test.web.selenium;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import javax.annotation.Nullable;
import java.util.Map;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Collections2.transform;
/**
*
* @author maciek
* @author Pawel Wrzeszcz
* @author Jaroslaw Kijanowski
*/
public class ServerProperties {
private String serverHome;
// Defaults
private String configuration = "default";
private int portset = 2;
private boolean running = false;
private int deploymentTimeoutMinutes = 5;
private String additionalSystemProperties = "";
private int asVersion = 6;
private boolean secured = false;
private String username = "admin";
private String password = "admin";
public ServerProperties(String serverHome) {
this.serverHome = serverHome;
}
public String getServerHome() {
return serverHome;
}
public String getConfiguration() {
return configuration;
}
public int getPortset() {
return portset;
}
public boolean isRunning() {
return running;
}
public int getDeploymentTimeoutMinutes() {
return deploymentTimeoutMinutes;
}
public String getAdditionalSystemProperties() {
return additionalSystemProperties;
}
public ServerProperties configuration(String configuration) {
this.configuration = configuration;
return this;
}
public ServerProperties portset(int portset) {
this.portset = portset;
return this;
}
public ServerProperties running(boolean running) {
this.running = running;
return this;
}
public ServerProperties deploymentTimeoutMinutes(int deploymentTimeoutMinutes) {
this.deploymentTimeoutMinutes = deploymentTimeoutMinutes;
return this;
}
public ServerProperties additionalSystemProperties(String additionalSystemProperties) {
this.additionalSystemProperties = additionalSystemProperties;
return this;
}
public ServerProperties additionalSystemPropertiesFrom(Map<String, String> propertyMap) {
this.additionalSystemProperties = Joiner.on(" ").join(transform(checkNotNull(propertyMap).entrySet(), new Function<Map.Entry<String, String>, String>() {
@Override
public String apply(@Nullable Map.Entry<String, String> input) {
return "-D" + input.getKey() + "=" + input.getValue();
}
}));
return this;
}
public int getAsVersion() {
return asVersion;
}
public ServerProperties asVersion(int asVersion) {
this.asVersion = asVersion;
return this;
}
public boolean isSecured() {
return secured;
}
public ServerProperties secured(boolean secured) {
this.secured = secured;
return this;
}
public String getUsername() {
return username;
}
public ServerProperties username(String username) {
this.username = username;
return this;
}
public String getPassword() {
return password;
}
public ServerProperties password(String password) {
this.password = password;
return this;
}
}