Skip to content
This repository was archived by the owner on Sep 1, 2024. It is now read-only.

Commit d2cb336

Browse files
committed
Added support for special value $PREFIX in ReatMetric configuration
1 parent ac3b155 commit d2cb336

6 files changed

Lines changed: 27 additions & 3 deletions

File tree

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ Example of remoting configuration:
140140
## Roadmap
141141

142142
### To version 1.1.0
143-
- Add support for a prefix tag (.e.g. $REATMETRIC) in ReatMetric configuration modules, in addition to $HOME, to allow the specification of a root path for the configuration via Java system property
144143
- persist implementation based on PostgreSQL and Timeseries
145144
- SNMP driver
146145
- SNMP generator for SNMP driver

eu.dariolucia.reatmetric.core/Documentation.adoc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,12 @@ eu.dariolucia.reatmetric.core.configuration. It is an XML file using namespace d
6262
_http://dariolucia.eu/reatmetric/core/configuration_.
6363

6464
The elements that can contain a path support the special value $HOME, which is replaced at runtime with the contents
65-
of the _user.home_ system variable.
65+
of the _user.home_ system variable. A special value $PREFIX can also be used, which is replaced at runtime with the
66+
contents of the _reatmetric.prefix.dir_ system variable, which can be provided as Java property at start-up:
67+
68+
----
69+
-Dreatmetric.prefix.dir=<path>
70+
----
6671

6772
A commented example of such file is presented below.
6873

eu.dariolucia.reatmetric.core/src/main/java/eu/dariolucia/reatmetric/core/configuration/ServiceCoreConfiguration.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,30 @@ public class ServiceCoreConfiguration {
3131
private static final String HOME_VAR = "$HOME";
3232
private static final String HOME_DIR = System.getProperty("user.home");
3333

34+
private static final String PREFIX_VAR = "$PREFIX";
35+
private static final String PREFIX_DIR = System.getProperty("reatmetric.prefix.dir", "");
36+
3437
public static ServiceCoreConfiguration load(InputStream is) throws JAXBException {
3538
JAXBContext jc = JAXBContext.newInstance(ServiceCoreConfiguration.class);
3639
Unmarshaller u = jc.createUnmarshaller();
3740
ServiceCoreConfiguration configuration = (ServiceCoreConfiguration) u.unmarshal(is);
38-
// Update $HOME
41+
// Update $HOME and $PREFIX
3942
if(configuration.getArchiveLocation() != null) {
4043
configuration.setArchiveLocation(configuration.getArchiveLocation().replace(HOME_VAR, HOME_DIR));
44+
configuration.setArchiveLocation(configuration.getArchiveLocation().replace(PREFIX_VAR, PREFIX_DIR));
4145
}
4246
configuration.setDefinitionsLocation(configuration.getDefinitionsLocation().replace(HOME_VAR, HOME_DIR));
4347
if(configuration.getLogPropertyFile() != null) {
4448
configuration.setLogPropertyFile(configuration.getLogPropertyFile().replace(HOME_VAR, HOME_DIR));
49+
configuration.setLogPropertyFile(configuration.getLogPropertyFile().replace(PREFIX_VAR, PREFIX_DIR));
4550
}
4651
if(configuration.getSchedulerConfiguration() != null) {
4752
configuration.setSchedulerConfiguration(configuration.getSchedulerConfiguration().replace(HOME_VAR, HOME_DIR));
53+
configuration.setSchedulerConfiguration(configuration.getSchedulerConfiguration().replace(PREFIX_VAR, PREFIX_DIR));
4854
}
4955
for(DriverConfiguration dc : configuration.getDrivers()) {
5056
dc.setConfiguration(dc.getConfiguration().replace(HOME_VAR, HOME_DIR));
57+
dc.setConfiguration(dc.getConfiguration().replace(PREFIX_VAR, PREFIX_DIR));
5158
}
5259
//
5360
return configuration;

eu.dariolucia.reatmetric.driver.automation.base/src/main/java/eu/dariolucia/reatmetric/driver/automation/base/definition/AutomationConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,17 @@ public class AutomationConfiguration {
3131
private static final String HOME_VAR = "$HOME";
3232
private static final String HOME_DIR = System.getProperty("user.home");
3333

34+
private static final String PREFIX_VAR = "$PREFIX";
35+
private static final String PREFIX_DIR = System.getProperty("reatmetric.prefix.dir", "");
36+
3437
public static AutomationConfiguration load(InputStream is) throws IOException {
3538
try {
3639
JAXBContext jc = JAXBContext.newInstance(AutomationConfiguration.class);
3740
Unmarshaller u = jc.createUnmarshaller();
3841
AutomationConfiguration o = (AutomationConfiguration) u.unmarshal(is);
3942
if(o.getScriptFolder() != null) {
4043
o.setScriptFolder(o.getScriptFolder().replace(HOME_VAR, HOME_DIR));
44+
o.setScriptFolder(o.getScriptFolder().replace(PREFIX_VAR, PREFIX_DIR));
4145
}
4246
return o;
4347
} catch (JAXBException e) {

eu.dariolucia.reatmetric.driver.socket/src/main/java/eu/dariolucia/reatmetric/driver/socket/configuration/SocketConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ public class SocketConfiguration {
4040
private static final String HOME_VAR = "$HOME";
4141
private static final String HOME_DIR = System.getProperty("user.home");
4242

43+
private static final String PREFIX_VAR = "$PREFIX";
44+
private static final String PREFIX_DIR = System.getProperty("reatmetric.prefix.dir", "");
45+
4346
public static SocketConfiguration load(InputStream is) throws IOException {
4447
try {
4548
JAXBContext jc = JAXBContext.newInstance(SocketConfiguration.class);
@@ -49,6 +52,7 @@ public static SocketConfiguration load(InputStream is) throws IOException {
4952
for (MessageDefinition<?> md : sc.getMessageDefinitions()) {
5053
if(md instanceof BinaryMessageDefinition) {
5154
((BinaryMessageDefinition) md).setLocation(((BinaryMessageDefinition) md).getLocation().replace(HOME_VAR, HOME_DIR));
55+
((BinaryMessageDefinition) md).setLocation(((BinaryMessageDefinition) md).getLocation().replace(PREFIX_VAR, PREFIX_DIR));
5256
}
5357
}
5458
}

eu.dariolucia.reatmetric.driver.spacecraft/src/main/java/eu/dariolucia/reatmetric/driver/spacecraft/definition/SpacecraftConfiguration.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ public class SpacecraftConfiguration {
3232

3333
private static final String HOME_VAR = "$HOME";
3434
private static final String HOME_DIR = System.getProperty("user.home");
35+
36+
private static final String PREFIX_VAR = "$PREFIX";
37+
private static final String PREFIX_DIR = System.getProperty("reatmetric.prefix.dir", "");
38+
3539
public static SpacecraftConfiguration load(InputStream is) throws IOException {
3640
try {
3741
JAXBContext jc = JAXBContext.newInstance(SpacecraftConfiguration.class);
@@ -40,6 +44,7 @@ public static SpacecraftConfiguration load(InputStream is) throws IOException {
4044
if(o.getPacketServiceConfiguration() != null) {
4145
for (ServiceConfiguration sc : o.getPacketServiceConfiguration().getServices()) {
4246
sc.setConfiguration(sc.getConfiguration().replace(HOME_VAR, HOME_DIR));
47+
sc.setConfiguration(sc.getConfiguration().replace(PREFIX_VAR, PREFIX_DIR));
4348
}
4449
}
4550
return o;

0 commit comments

Comments
 (0)