You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/02/28 10:35:00 UTC

svn commit: r1784720 - /sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/RepositoryMojo.java

Author: cziegeler
Date: Tue Feb 28 10:35:00 2017
New Revision: 1784720

URL: http://svn.apache.org/viewvc?rev=1784720&view=rev
Log:
SLING-6573 : Repository goal should not require a launchpad feature

Modified:
    sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/RepositoryMojo.java

Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/RepositoryMojo.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/RepositoryMojo.java?rev=1784720&r1=1784719&r2=1784720&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/RepositoryMojo.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/RepositoryMojo.java Tue Feb 28 10:35:00 2017
@@ -32,10 +32,12 @@ import org.apache.maven.plugin.MojoExecu
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.sling.provisioning.model.ArtifactGroup;
 import org.apache.sling.provisioning.model.Feature;
 import org.apache.sling.provisioning.model.Model;
+import org.apache.sling.provisioning.model.ModelConstants;
 import org.apache.sling.provisioning.model.ModelUtility;
 import org.apache.sling.provisioning.model.RunMode;
 import org.apache.sling.provisioning.model.io.ModelWriter;
@@ -62,6 +64,12 @@ public class RepositoryMojo extends Abst
     @Component
     private ArtifactResolver resolver;
 
+    /**
+     * This is the name of the final model as written to the target directory.
+     */
+    @Parameter(defaultValue="slingstart.txt")
+    private String repositoryModelName;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         final File artifactDir = new File(this.project.getBuild().getDirectory(), DIR_NAME);
@@ -79,18 +87,20 @@ public class RepositoryMojo extends Abst
                 }
             }
         }
-        // base artifact
-        try {
-            final org.apache.sling.provisioning.model.Artifact baseArtifact = ModelUtils.findBaseArtifact(model);
-            final org.apache.sling.provisioning.model.Artifact appArtifact =
-                    new org.apache.sling.provisioning.model.Artifact(baseArtifact.getGroupId(),
-                    baseArtifact.getArtifactId(),
-                    baseArtifact.getVersion(),
-                    BuildConstants.CLASSIFIER_APP,
-                    BuildConstants.TYPE_JAR);
-            copyArtifactToRepository(appArtifact, artifactDir);
-        } catch ( final MavenExecutionException mee) {
-            throw new MojoExecutionException(mee.getMessage(), mee.getCause());
+        // base artifact - only if launchpad feature is available
+        if (model.getFeature(ModelConstants.FEATURE_LAUNCHPAD) != null) {
+            try {
+                final org.apache.sling.provisioning.model.Artifact baseArtifact = ModelUtils.findBaseArtifact(model);
+                final org.apache.sling.provisioning.model.Artifact appArtifact =
+                        new org.apache.sling.provisioning.model.Artifact(baseArtifact.getGroupId(),
+                        baseArtifact.getArtifactId(),
+                        baseArtifact.getVersion(),
+                        BuildConstants.CLASSIFIER_APP,
+                        BuildConstants.TYPE_JAR);
+                copyArtifactToRepository(appArtifact, artifactDir);
+            } catch ( final MavenExecutionException mee) {
+                throw new MojoExecutionException(mee.getMessage(), mee.getCause());
+            }
         }
         // models
         Model rawModel = ProjectHelper.getRawModel(this.project);
@@ -117,6 +127,17 @@ public class RepositoryMojo extends Abst
             ModelWriter.write(writer, rawModel);
         } catch (IOException e) {
             throw new MojoExecutionException("Unable to write model to " + rawModelFile, e);
+        } finally {
+            IOUtils.closeQuietly(writer);
+        }
+
+        // and write model to target
+        writer = null;
+        try {
+            writer = new FileWriter(new File(this.project.getBuild().getDirectory(), repositoryModelName));
+            ModelWriter.write(writer, rawModel);
+        } catch (IOException e) {
+            throw new MojoExecutionException("Unable to write model to " + rawModelFile, e);
         } finally {
             IOUtils.closeQuietly(writer);
         }