All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.devocative.artemis.Config Maven / Gradle / Ivy

package org.devocative.artemis;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.Collections;
import java.util.List;

@Getter
@Setter
@Accessors(chain = true)
public class Config {
	private static final String ARTEMIS_PROFILE_ENV = "ARTEMIS_PROFILE";
	private static final String ARTEMIS_PROFILE_SYS_PROP = "artemis.profile";
	private static final String ARTEMIS_BASE_URL_ENV = "ARTEMIS_BASE_URL";
	private static final String ARTEMIS_BASE_URL_SYS_PROP = "artemis.base.url";
	private static final String ARTEMIS_DEV_MODE_ENV = "ARTEMIS_DEV_MODE";
	private static final String ARTEMIS_DEV_MODE_SYS_PROP = "artemis.dev.mode";
	private static final String ARTEMIS_PARALLEL_ENV = "ARTEMIS_PARALLEL";
	private static final String ARTEMIS_PARALLEL_SYS_PROP = "artemis.parallel";

	// ------------------------------

	private final String name;
	private String profile;
	private String baseUrl;
	private Boolean devMode;
	private List onlyScenarios = Collections.emptyList();
	private String baseDir;
	private Integer parallel;
	private Integer loop = 1;
	private Boolean consoleLog;

	// ------------------------------

	public Config() {
		this("artemis");
	}

	public Config(String name) {
		this.name = name;
	}

	// ------------------------------

	public Config setParallel(int parallel) {
		this.parallel = parallel > 0 ? parallel : 1;
		return this;
	}

	public Config setLoop(int loop) {
		this.loop = loop > 0 ? loop : 1;
		return this;
	}

	public void init() {
		if (getProfile() == null) {
			setProfile(findValue(ARTEMIS_PROFILE_ENV, ARTEMIS_PROFILE_SYS_PROP, "local"));
		}

		if (getBaseUrl() == null) {
			setBaseUrl(findValue(ARTEMIS_BASE_URL_ENV, ARTEMIS_BASE_URL_SYS_PROP, "http://localhost:8080"));
		}

		if (getDevMode() == null) {
			setDevMode(Boolean.valueOf(findValue(ARTEMIS_DEV_MODE_ENV, ARTEMIS_DEV_MODE_SYS_PROP, "false")));
		}

		if (getParallel() == null) {
			setParallel(Integer.parseInt(findValue(ARTEMIS_PARALLEL_ENV, ARTEMIS_PARALLEL_SYS_PROP, "1")));
		}
	}

	// ------------------------------

	private String findValue(String envVar, String sysVar, String def) {
		if (System.getenv(envVar) != null) {
			return System.getenv(envVar);
		} else if (System.getProperty(sysVar) != null) {
			return System.getProperty(sysVar);
		}
		return def;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy