/*
* Copyright 2015 Red Hat, Inc.
*
* 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 org.jboss.as.arquillian.container.managed;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import org.jboss.arquillian.container.spi.ConfigurationException;
import org.jboss.as.arquillian.container.DistributionContainerConfiguration;
/**
* The managed container configuration
*
* @author <a href="mailto:aslak@redhat.com">Aslak Knutsen</a>
* @author Thomas.Diesler@jboss.com
*/
public class ManagedContainerConfiguration extends DistributionContainerConfiguration {
/**
* Default timeout value waiting on ports is 10 seconds
*/
private static final Integer DEFAULT_VALUE_WAIT_FOR_PORTS_TIMEOUT_SECONDS = 10;
private String javaVmArguments = System.getProperty("jboss.options");
private String jbossArguments;
private int startupTimeoutInSeconds = 60;
private int stopTimeoutInSeconds = 60;
private boolean outputToConsole = true;
private String serverConfig = System.getProperty("jboss.server.config.file.name");
private boolean allowConnectingToRunningServer = Boolean.parseBoolean(System.getProperty("allowConnectingToRunningServer", "false"));
private boolean enableAssertions = true;
private boolean adminOnly = false;
private Integer[] waitForPorts;
private Integer waitForPortsTimeoutInSeconds;
private boolean setupCleanServerBaseDir = false;
private String cleanServerBaseDir;
public ManagedContainerConfiguration() {
}
@Override
public void validate() throws ConfigurationException {
super.validate();
}
public String getJavaVmArguments() {
return javaVmArguments;
}
public void setJavaVmArguments(String javaVmArguments) {
this.javaVmArguments = javaVmArguments;
}
public String getJbossArguments() {
return jbossArguments;
}
public void setJbossArguments(String jbossArguments) {
this.jbossArguments = jbossArguments;
}
public void setStartupTimeoutInSeconds(int startupTimeoutInSeconds) {
this.startupTimeoutInSeconds = startupTimeoutInSeconds;
}
public int getStartupTimeoutInSeconds() {
return startupTimeoutInSeconds;
}
public void setStopTimeoutInSeconds(int stopTimeoutInSeconds) {
this.stopTimeoutInSeconds = stopTimeoutInSeconds;
}
/**
* Number of seconds to wait for the container process to shutdown; defaults to 60
*/
public int getStopTimeoutInSeconds() {
return stopTimeoutInSeconds;
}
public void setOutputToConsole(boolean outputToConsole) {
this.outputToConsole = outputToConsole;
}
public boolean isOutputToConsole() {
return outputToConsole;
}
/**
* Get the server configuration file name. Equivalent to [-server-config=...] on the command line.
*/
public String getServerConfig() {
return serverConfig;
}
/**
* Set the server configuration file name. Equivalent to [-server-config=...] on the command line.
*/
public void setServerConfig(String serverConfig) {
this.serverConfig = serverConfig;
}
public boolean isAllowConnectingToRunningServer() {
return allowConnectingToRunningServer;
}
public void setAllowConnectingToRunningServer(final boolean allowConnectingToRunningServer) {
this.allowConnectingToRunningServer = allowConnectingToRunningServer;
}
public boolean isEnableAssertions() {
return enableAssertions;
}
public void setEnableAssertions(final boolean enableAssertions) {
this.enableAssertions = enableAssertions;
}
public Integer[] getWaitForPorts() {
return waitForPorts;
}
public void setWaitForPorts(String waitForPorts) {
final Scanner scanner = new Scanner(waitForPorts);
final List<Integer> list = new ArrayList<Integer>();
while (scanner.hasNextInt()) {
list.add(scanner.nextInt());
}
this.waitForPorts = list.toArray(new Integer[] {});
}
public Integer getWaitForPortsTimeoutInSeconds() {
return waitForPortsTimeoutInSeconds != null ? waitForPortsTimeoutInSeconds
: DEFAULT_VALUE_WAIT_FOR_PORTS_TIMEOUT_SECONDS;
}
public void setWaitForPortsTimeoutInSeconds(final Integer waitForPortsTimeoutInSeconds) {
this.waitForPortsTimeoutInSeconds = waitForPortsTimeoutInSeconds;
}
public boolean isAdminOnly() {
return adminOnly;
}
public void setAdminOnly(boolean adminOnly) {
this.adminOnly = adminOnly;
}
public boolean isSetupCleanServerBaseDir() {
return setupCleanServerBaseDir;
}
public void setSetupCleanServerBaseDir(boolean setupCleanServerBaseDir) {
this.setupCleanServerBaseDir = setupCleanServerBaseDir;
}
public String getCleanServerBaseDir() {
return cleanServerBaseDir;
}
public void setCleanServerBaseDir(String cleanServerBaseDir) {
this.cleanServerBaseDir = cleanServerBaseDir;
}
}