package at.ac.tuwien.dsg.cloud.elise.collector.CollectorSettings;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.security.CodeSource;
import java.util.Properties;
import java.util.UUID;
import java.util.logging.Level;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ConductorConfiguration {
public static Logger logger = LoggerFactory.getLogger(ConductorConfiguration.class);
public static final String CURRENT_DIR = System.getProperty("user.dir");
public static final String COLLECTOR_ADAPTOR_CONFIG_FILE = CURRENT_DIR + "/adaptor.conf";
public static final String ELISE_CONFIGURATION_FILE = CURRENT_DIR + "/salsa.engine.properties";
private static String conductorID = null;
public static String getJarDir() {
try {
CodeSource codeSource = ConductorConfiguration.class.getProtectionDomain().getCodeSource();
File jarFile = new File(codeSource.getLocation().toURI().getPath());
return jarFile.getParentFile().getPath();
} catch (URISyntaxException ex) {
java.util.logging.Logger.getLogger(ConductorConfiguration.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
public static String getExtensionFolder() {
return getJarDir()+"/extensions";
}
public static String getCollectorFolder(String collectorName){
return getExtensionFolder() +"/" + collectorName;
}
/*** GET parameters in the configuration file ***/
public static String getELISE_IP() {
return getGenericParameter("SALSA_CENTER_IP", "localhost");
}
public static String getELISE_port() {
return getGenericParameter("SALSA_CENTER_PORT", "8080");
}
public static String getBroker() {
return getGenericParameter("BROKER", "tcp://iot.eclipse.org:1883");
}
public static String getBrokerType() {
return getGenericParameter("BROKER_TYPE", "mqtt");
}
/*** GET parameters that combine of different ones ***/
public static String getConductorID() {
if (conductorID == null) {
conductorID = UUID.randomUUID().toString();
}
return conductorID;
}
public static String getELISE_REST_ENDPOINT() {
return "http://" + getELISE_IP() + ":" + getELISE_port() + "/elise-service/rest";
}
public static String getELISE_REST_ENDPOINT_LOCAL() {
return "http://localhost:" + getELISE_port() + "/elise-service/rest";
}
public static String getGenericParameter(String key, String theDefault) {
Properties prop = new Properties();
InputStream input;
File myFile = new File(ELISE_CONFIGURATION_FILE);
try {
if (!myFile.exists()) {
myFile.createNewFile();
}
input = new FileInputStream(ELISE_CONFIGURATION_FILE);
// load a properties file
prop.load(input);
String param = prop.getProperty(key);
if (param != null) { // just return default MQTT
return param;
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return theDefault;
}
}