package org.radargun.service; import java.nio.file.FileSystems; import java.util.Map; import org.radargun.Service; import org.radargun.config.Property; import org.radargun.utils.TimeConverter; /** * @author Matej Cimbora */ @Service(doc = "Parent for Master & Worker services") public abstract class AbstractSparkService extends JavaProcessService { @Property(doc = "Home directory of the Spark distribution.", optional = false) protected String home; @Property(doc = "Maximum time to wait until Spark's log file gets created after service was started. " + "Default is 30 seconds.", converter = TimeConverter.class) protected long logCreationTimeout = 30000; @Property(doc = "Maximum time to wait until Spark's startup process finishes. " + "Default is 5 seconds.", converter = TimeConverter.class) protected long startupProcessTimeout = 5000; @Override public Map<String, String> getEnvironment() { Map<String, String> envMap = super.getEnvironment(); envMap.put("SPARK_PID_DIR", FileSystems.getDefault().getPath(home, "pids").toString()); envMap.put("SPARK_IDENT_STRING", getPidFileIdent()); return envMap; } protected abstract String getPidFileIdent(); }