SLING-8221 Feature model does not override from command line a property if set in pom.xml
diff --git a/src/main/java/org/apache/sling/maven/slingstart/FeatureModelConverter.java b/src/main/java/org/apache/sling/maven/slingstart/FeatureModelConverter.java
index 3dba845..bbb2d19 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/FeatureModelConverter.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/FeatureModelConverter.java
@@ -137,14 +137,18 @@
s = replaceAll(s, "project.version", project.getVersion());
s = replaceAll(s, "project.osgiVersion", getOSGiVersion(project.getVersion()));
+ s = replaceProperties(System.getProperties(), s);
+ s = replaceProperties(project.getProperties(), s);
- Properties props = project.getProperties();
+ return s;
+ }
+
+ private static String replaceProperties(Properties props, String s) {
if (props != null) {
for (String key : props.stringPropertyNames()) {
s = replaceAll(s, key, props.getProperty(key));
}
}
-
return s;
}
diff --git a/src/test/java/org/apache/sling/maven/slingstart/FeatureModelConverterTest.java b/src/test/java/org/apache/sling/maven/slingstart/FeatureModelConverterTest.java
index 850e16d..3184022 100644
--- a/src/test/java/org/apache/sling/maven/slingstart/FeatureModelConverterTest.java
+++ b/src/test/java/org/apache/sling/maven/slingstart/FeatureModelConverterTest.java
@@ -157,4 +157,22 @@
"xxx${project.groupId}yyy${project.artifactId}${project.osgiVersion}"));
assertEquals("xxxbaryyy", FeatureModelConverter.replaceVars(mp, "xxx${foo}yyy"));
}
+
+ @Test
+ public void testReplaceVarsFromSystemProperties() {
+ Properties storedProps = new Properties();
+ storedProps.putAll(System.getProperties());
+
+ try {
+ System.setProperty("blah", "hello");
+
+ MavenProject mp = Mockito.mock(MavenProject.class);
+ Mockito.when(mp.getVersion()).thenReturn("1");
+ assertEquals("hello hello ${blaaah}", FeatureModelConverter.replaceVars(mp,
+ "${blah} ${blah} ${blaaah}"));
+ } finally {
+ // Restore the system properties
+ System.setProperties(storedProps);
+ }
+ }
}