You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2019/01/18 16:42:54 UTC
[sling-slingfeature-maven-plugin] branch master updated: SLING-8221
Feature model does not override from command line a property if set in
pom.xml
This is an automated email from the ASF dual-hosted git repository.
davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new eb1ad3d SLING-8221 Feature model does not override from command line a property if set in pom.xml
eb1ad3d is described below
commit eb1ad3dc0381529552ce9fb7babbb1bf78577fa0
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Fri Jan 18 16:42:13 2019 +0000
SLING-8221 Feature model does not override from command line a property if set in pom.xml
---
.../apache/sling/feature/maven/Substitution.java | 7 +++--
.../sling/feature/maven/SubstitutionTest.java | 36 ++++++++++++++++++++--
2 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/maven/Substitution.java b/src/main/java/org/apache/sling/feature/maven/Substitution.java
index 6a7b46c..300b866 100644
--- a/src/main/java/org/apache/sling/feature/maven/Substitution.java
+++ b/src/main/java/org/apache/sling/feature/maven/Substitution.java
@@ -16,9 +16,6 @@
*/
package org.apache.sling.feature.maven;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
@@ -31,10 +28,14 @@ import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
import org.codehaus.plexus.interpolation.RecursionInterceptor;
import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
+import java.util.Collections;
+import java.util.List;
+
public class Substitution {
public static String replaceMavenVars(MavenProject project, String s) {
RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
project.getProperties().setProperty("project.osgiVersion", getOSGiVersion(project.getVersion()));
+ interpolator.addValueSource(new PropertiesBasedValueSource(System.getProperties()));
interpolator.addValueSource(new PropertiesBasedValueSource(project.getProperties()));
List<String> synonymPrefixes = Collections.singletonList("project.");
diff --git a/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java b/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java
index 244a7d5..6602dff 100644
--- a/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java
+++ b/src/test/java/org/apache/sling/feature/maven/SubstitutionTest.java
@@ -16,13 +16,43 @@
*/
package org.apache.sling.feature.maven;
-import static org.junit.Assert.assertEquals;
-
+import org.apache.maven.project.MavenProject;
import org.junit.Test;
+import java.util.Properties;
+
+import static org.junit.Assert.assertEquals;
+
public class SubstitutionTest {
+ @Test
+ public void testReplaceMavenVars() {
+ MavenProject proj = new MavenProject();
+ Properties p = proj.getProperties();
+ p.put("test", "foo");
+ assertEquals("hellofoogoodbyefoo", Substitution.replaceMavenVars(proj, "hello${test}goodbye${test}"));
+ }
+
+ @Test
+ public void testReplaceMavenVarsWithSystemProperties() {
+ Properties storedProps = new Properties();
+ storedProps.putAll(System.getProperties());
+
+ try {
+ MavenProject proj = new MavenProject();
+ Properties p = proj.getProperties();
+ p.put("test", "foo");
+
+ System.setProperty("test", "bar");
+
+ assertEquals("hellobargoodbyebar", Substitution.replaceMavenVars(proj, "hello${test}goodbye${test}"));
+ } finally {
+ // Restore the system properties
+ System.setProperties(storedProps);
+ }
+ }
- @Test public void testOSGiVersion() {
+ @Test
+ public void testOSGiVersion() {
assertEquals("1.2.3", Substitution.getOSGiVersion("1.2.3"));
assertEquals("1.2.0.SNAPSHOT", Substitution.getOSGiVersion("1.2-SNAPSHOT"));
assertEquals("4.5.6.SNAPSHOT", Substitution.getOSGiVersion("4.5.6-SNAPSHOT"));