argos/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/config/configloaders/ProductionConfigLoader.java

83 lines
2.7 KiB
Java
Raw Normal View History

2018-06-27 12:29:21 +02:00
package eu.eudat.logic.proxy.config.configloaders;
2018-02-09 16:54:41 +01:00
2018-06-27 12:29:21 +02:00
import eu.eudat.logic.proxy.config.ExternalUrls;
2018-02-09 16:54:41 +01:00
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
2019-11-08 16:49:33 +01:00
import java.io.BufferedReader;
import java.io.FileReader;
2018-02-09 16:54:41 +01:00
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
2018-07-11 15:47:36 +02:00
import java.nio.file.Paths;
2019-11-08 16:49:33 +01:00
import java.util.LinkedList;
import java.util.List;
2018-02-09 16:54:41 +01:00
@Service("configLoader")
2018-11-27 15:13:56 +01:00
@Profile({ "production", "staging" })
2018-02-16 11:34:02 +01:00
public class ProductionConfigLoader implements ConfigLoader {
2018-02-09 16:54:41 +01:00
private ExternalUrls externalUrls;
2019-11-08 16:49:33 +01:00
private List<String> rdaProperties;
2018-02-09 16:54:41 +01:00
@Autowired
private Environment environment;
private void setExternalUrls() {
String fileUrl = this.environment.getProperty("configuration.externalUrls");
System.out.println("Loaded also config file: " + fileUrl);
String current = null;
InputStream is = null;
try {
current = new java.io.File(".").getCanonicalPath();
JAXBContext jaxbContext = JAXBContext.newInstance(ExternalUrls.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
2018-07-11 15:47:36 +02:00
is = new URL(Paths.get(fileUrl).toUri().toURL().toString()).openStream();
2018-02-09 16:54:41 +01:00
externalUrls = (ExternalUrls) jaxbUnmarshaller.unmarshal(is);
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("Cannot find in folder" + current);
} finally {
try {
if (is != null) is.close();
} catch (IOException e) {
System.out.println("Warning: Could not close a stream after reading from file: " + fileUrl);
}
}
}
2019-11-08 16:49:33 +01:00
private void setRdaProperties() {
String filePath = environment.getProperty("configuration.rda");
BufferedReader reader;
List<String> rdaList = new LinkedList<>();
try {
reader = new BufferedReader(new FileReader(Paths.get(filePath).toUri().toURL().toString()));
String line = reader.readLine();
while (line != null) {
rdaList.add(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
rdaProperties = rdaList;
}
2018-02-09 16:54:41 +01:00
public ExternalUrls getExternalUrls() {
this.setExternalUrls();
return externalUrls;
}
2019-11-08 16:49:33 +01:00
public List<String> getRdaProperties() {
this.setRdaProperties();
return rdaProperties;
}
2018-02-09 16:54:41 +01:00
}