Skip to content

Commit

Permalink
Moved refreshing config factory util to the Config package.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed Oct 12, 2015
1 parent 16b4d43 commit eb492dd
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 94 deletions.
4 changes: 2 additions & 2 deletions rapidoid-config/pom.xml
Expand Up @@ -14,12 +14,12 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.rapidoid</groupId> <groupId>org.rapidoid</groupId>
<artifactId>rapidoid-u</artifactId> <artifactId>rapidoid-io</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.rapidoid</groupId> <groupId>org.rapidoid</groupId>
<artifactId>rapidoid-log</artifactId> <artifactId>rapidoid-jackson</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
Expand Down
39 changes: 39 additions & 0 deletions rapidoid-config/src/main/java/org/rapidoid/config/Conf.java
@@ -1,6 +1,11 @@
package org.rapidoid.config; package org.rapidoid.config;


import java.util.Map;

import org.rapidoid.data.YAML;
import org.rapidoid.io.Res;
import org.rapidoid.log.Log; import org.rapidoid.log.Log;
import org.rapidoid.util.U;


/* /*
* #%L * #%L
Expand Down Expand Up @@ -263,4 +268,38 @@ public static void setConfigPath(String configPath) {
Conf.configPath = cleanPath(configPath); Conf.configPath = cleanPath(configPath);
} }


public static Config refreshing(String path, String filename) {
Log.info("Initializing auto-refreshing config", "path", path, "filename", filename);
path = U.safe(path);

String firstFile = U.path(Conf.rootPath(), path, filename);
String defaultFile = U.path(Conf.rootPathDefault(), path, filename);

final Config config = new Config();
final Res res = Res.from(filename, true, firstFile, defaultFile);

res.onChange(path + ":" + filename, new Runnable() {
@SuppressWarnings("unchecked")
@Override
public void run() {
Map<String, Object> configData = U.map();

if (res.exists()) {
byte[] bytes = res.getBytesOrNull();

if (bytes != null && bytes.length > 0) {
configData = YAML.parse(bytes, Map.class);
}
}

config.assign(configData);
}
});

res.trackChanges();
res.exists(); // trigger loading

return config;
}

} }
5 changes: 5 additions & 0 deletions rapidoid-config/src/main/java/org/rapidoid/config/Config.java
Expand Up @@ -153,4 +153,9 @@ public String toString() {
return properties.toString(); return properties.toString();
} }


@SuppressWarnings("unchecked")
public <T> T get(String key) {
return (T) properties.get(key);
}

} }
@@ -1,4 +1,4 @@
package org.rapidoid.util; package org.rapidoid.config;


/* /*
* #%L * #%L
Expand All @@ -25,25 +25,24 @@
import org.junit.Test; import org.junit.Test;
import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since; import org.rapidoid.annotation.Since;
import org.rapidoid.config.Conf;
import org.rapidoid.config.Config;
import org.rapidoid.io.IO; import org.rapidoid.io.IO;
import org.rapidoid.log.Log; import org.rapidoid.log.Log;
import org.rapidoid.test.TestCommons; import org.rapidoid.test.TestCommons;
import org.rapidoid.util.U;


@Authors("Nikolche Mihajlovski") @Authors("Nikolche Mihajlovski")
@Since("4.4.0") @Since("4.4.0")
public class LiveTest extends TestCommons { public class RefreshingConfigTest extends TestCommons {


@Test @Test
public void testLiveConfig() { public void testRefreshingConfig() {
File tmp = createTempFile(); File tmp = createTempFile();
Log.info("Created temporary file", "file", tmp); Log.info("Created temporary file", "file", tmp);


Conf.setRootPath(tmp.getParent()); Conf.setRootPath(tmp.getParent());


String filename = tmp.getName(); String filename = tmp.getName();
Config config = Live.config("", filename); Config config = Conf.refreshing("", filename);


eq(config.toMap(), U.map()); eq(config.toMap(), U.map());


Expand Down
12 changes: 1 addition & 11 deletions rapidoid-ctx/pom.xml
Expand Up @@ -14,17 +14,7 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.rapidoid</groupId> <groupId>org.rapidoid</groupId>
<artifactId>rapidoid-annotations</artifactId> <artifactId>rapidoid-config</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-u</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-log</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
Expand Down
5 changes: 0 additions & 5 deletions rapidoid-io/pom.xml
Expand Up @@ -27,11 +27,6 @@
<artifactId>rapidoid-cls</artifactId> <artifactId>rapidoid-cls</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-config</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.rapidoid</groupId> <groupId>org.rapidoid</groupId>
<artifactId>rapidoid-lambda</artifactId> <artifactId>rapidoid-lambda</artifactId>
Expand Down
70 changes: 0 additions & 70 deletions rapidoid-utils/src/main/java/org/rapidoid/util/Live.java

This file was deleted.

0 comments on commit eb492dd

Please sign in to comment.