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);
+        }
+    }
 }