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 <[email protected]> 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 "[email protected]" <[email protected]>.
