You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:14:54 UTC
[sling-maven-launchpad-plugin] 11/49: SLING-1454 - adding ability
to read filtered sling properties from a file
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag maven-launchpad-plugin-2.0.10
in repository https://gitbox.apache.org/repos/asf/sling-maven-launchpad-plugin.git
commit b3f5ef24afbe782e19cb865985b2147c23ccf468
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Sat Mar 20 02:22:33 2010 +0000
SLING-1454 - adding ability to read filtered sling properties from a file
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/maven/maven-launchpad-plugin@925532 13f79535-47bb-0310-9956-ffa450edef68
---
pom.xml | 5 +++
.../apache/sling/maven/projectsupport/RunMojo.java | 46 ++++++++++++++++++++++
2 files changed, 51 insertions(+)
diff --git a/pom.xml b/pom.xml
index db71dd5..2b88de5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -143,5 +143,10 @@
<artifactId>org.osgi.core</artifactId>
<version>4.2.0</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-filtering</artifactId>
+ <version>1.0-beta-4</version>
+ </dependency>
</dependencies>
</project>
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java
index 4d52086..061ecd8 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/RunMojo.java
@@ -19,10 +19,12 @@ package org.apache.sling.maven.projectsupport;
import static org.apache.felix.framework.util.FelixConstants.*;
import java.io.File;
+import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -31,8 +33,12 @@ import java.util.Properties;
import org.apache.felix.framework.Logger;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.shared.filtering.MavenFileFilter;
+import org.apache.maven.shared.filtering.MavenFilteringException;
+import org.apache.maven.shared.filtering.PropertyUtils;
import org.apache.sling.launchpad.base.impl.ResourceProvider;
import org.apache.sling.launchpad.base.impl.Sling;
import org.apache.sling.launchpad.base.shared.Notifiable;
@@ -62,6 +68,7 @@ public class RunMojo extends AbstractBundleListMojo implements Notifiable {
* listens
*/
private static final String PROP_PORT = "org.osgi.service.http.port";
+
/** Return the log level code for the string */
private static int toLogLevelInt(String level, int defaultLevel) {
for (int i = 0; i < logLevels.length; i++) {
@@ -91,6 +98,24 @@ public class RunMojo extends AbstractBundleListMojo implements Notifiable {
*/
private String logLevel;
+ /**
+ * @parameter expression="${propertiesFile}"
+ * default-value="src/test/config/sling.properties"
+ */
+ private File propertiesFile;
+
+ /**
+ * @component
+ */
+ private MavenFileFilter mavenFileFilter;
+
+ /**
+ * @parameter expression="${session}"
+ * @required
+ * @readonly
+ */
+ private MavenSession mavenSession;
+
private ResourceProvider resourceProvider = new ResourceProvider() {
@Override
@@ -234,6 +259,27 @@ public class RunMojo extends AbstractBundleListMojo implements Notifiable {
Logger logger = new Logger();
logger.setLogLevel(Logger.LOG_ERROR);
+ if (propertiesFile.exists()) {
+ File tmp = null;
+ try {
+ tmp = File.createTempFile("sling", "props");
+ mavenFileFilter.copyFile(propertiesFile, tmp, true, project, null, true, System
+ .getProperty("file.encoding"), mavenSession);
+ Properties loadedProps = PropertyUtils.loadPropertyFile(tmp, null);
+ for (Object key : loadedProps.keySet()) {
+ props.put((String) key, (String) loadedProps.get(key));
+ }
+ } catch (IOException e) {
+ throw new MojoExecutionException("Unable to create filtered properties file", e);
+ } catch (MavenFilteringException e) {
+ throw new MojoExecutionException("Unable to create filtered properties file", e);
+ } finally {
+ if (tmp != null) {
+ tmp.delete();
+ }
+ }
+ }
+
// creating the instance launches the framework and we are done here
sling = new Sling(this, logger, resourceProvider, props);
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.