Skip to content

Commit 6cfe7a5

Browse files
committed
Fix properties mapping
1 parent 75f259b commit 6cfe7a5

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# Version 3.1.4 (2018-12-18)
2+
3+
* [fix] Fix macro and function evaluation in properties mapping/unmapping.
4+
15
# Version 3.1.3 (2018-12-03)
26

37
* [chg] Built and tested with OpenJDK 11 (minimum Java version still being 8).

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
<groupId>org.seedstack.coffig</groupId>
2121
<artifactId>coffig</artifactId>
22-
<version>3.1.3-SNAPSHOT</version>
22+
<version>3.1.4-SNAPSHOT</version>
2323

2424
<properties>
2525
<shed.version>1.1.4</shed.version>

src/main/java/org/seedstack/coffig/mapper/PropertiesMapper.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,19 @@
1010

1111
import java.lang.reflect.Type;
1212
import java.util.Properties;
13+
import org.seedstack.coffig.Coffig;
1314
import org.seedstack.coffig.TreeNode;
1415
import org.seedstack.coffig.node.MapNode;
15-
import org.seedstack.coffig.node.ValueNode;
1616
import org.seedstack.coffig.spi.ConfigurationMapper;
1717

1818
public class PropertiesMapper implements ConfigurationMapper {
19+
private Coffig coffig;
20+
21+
@Override
22+
public void initialize(Coffig coffig) {
23+
this.coffig = coffig;
24+
}
25+
1926
@Override
2027
public boolean canHandle(Type type) {
2128
return type instanceof Class && type.equals(Properties.class);
@@ -26,7 +33,8 @@ public Object map(TreeNode treeNode, Type type) {
2633
Properties properties = new Properties();
2734
if (treeNode.type() == TreeNode.Type.MAP_NODE) {
2835
treeNode.namedNodes()
29-
.forEach(namedNode -> properties.setProperty(namedNode.name(), namedNode.node().value()));
36+
.forEach(namedNode -> properties.setProperty(namedNode.name(),
37+
(String) coffig.getMapper().map(namedNode.node(), String.class)));
3038
} else {
3139
treeNode.nodes().forEach(item -> properties.setProperty(item.value(), ""));
3240
}
@@ -38,7 +46,7 @@ public TreeNode unmap(Object object, Type type) {
3846
MapNode mapNode = new MapNode();
3947
((Properties) object).forEach((key, value) -> {
4048
if (key != null) {
41-
mapNode.set(String.valueOf(key), new ValueNode(String.valueOf(value)));
49+
mapNode.set(String.valueOf(key), coffig.getMapper().unmap(value, String.class));
4250
}
4351
});
4452
return mapNode;

0 commit comments

Comments
 (0)