remove absrtact embedder mojo to clean up

git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/commons/filevault-package-maven-plugin/trunk@1812972 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractEmbeddedsMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractEmbeddedsMojo.java
deleted file mode 100644
index 31fc554..0000000
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractEmbeddedsMojo.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.filevault.maven.packaging;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-
-/**
- * Base class for mojos which use embedded artifacts.
- */
-abstract class AbstractEmbeddedsMojo extends AbstractMojo {
-    
-    /**
-     * The Maven project.
-     */
-    @Parameter(property = "project", readonly = true, required = true)
-    protected MavenProject project;
-
-    /**
-     * list of embedded bundles
-     */
-    @Parameter
-    protected final List<Embedded> embeddeds = new ArrayList<Embedded>();
-
-    /**
-     * Defines whether to fail the build when an embedded artifact is not
-     * found in the project's dependencies
-     */
-    @Parameter(property = "vault.failOnMissingEmbed", defaultValue = "false", required = true)
-    protected boolean failOnMissingEmbed;
-
-    public void addEmbedded(final Embedded embedded) {
-        embeddeds.add(embedded);
-    }
-
-}
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java
index ecee03d..a0cd637 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java
@@ -22,13 +22,14 @@
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;
 
 import aQute.bnd.osgi.Processor;
@@ -41,7 +42,13 @@
         defaultPhase = LifecyclePhase.PROCESS_CLASSES,
         requiresDependencyResolution = ResolutionScope.COMPILE
 )
-public class AnalyzeClassesMojo extends AbstractEmbeddedsMojo {
+public class AnalyzeClassesMojo extends AbstractMojo {
+
+    /**
+     * The Maven project.
+     */
+    @Parameter(property = "project", readonly = true, required = true)
+    private MavenProject project;
 
     /**
      * Location of class files
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java
index 4730450..a7aba77 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java
@@ -19,6 +19,7 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -30,6 +31,7 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
@@ -37,6 +39,7 @@
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.mojo.animal_sniffer.ClassListBuilder;
 import org.codehaus.mojo.animal_sniffer.SignatureChecker;
 import org.codehaus.mojo.animal_sniffer.maven.MavenLogger;
@@ -51,7 +54,27 @@
         defaultPhase = LifecyclePhase.PROCESS_CLASSES,
         requiresDependencyResolution = ResolutionScope.COMPILE
 )
-public class CheckSignatureMojo extends AbstractEmbeddedsMojo {
+public class CheckSignatureMojo extends AbstractMojo {
+
+    /**
+     * The Maven project.
+     */
+    @Parameter(property = "project", readonly = true, required = true)
+    private MavenProject project;
+
+    /**
+     * list of embedded bundles
+     */
+    @Parameter
+    private Embedded[] embeddeds = new Embedded[0];
+
+    /**
+     * Defines whether to fail the build when an embedded artifact is not
+     * found in the project's dependencies
+     */
+    @Parameter(property = "vault.failOnMissingEmbed", defaultValue = "false", required = true)
+    private boolean failOnMissingEmbed;
+
 
     /**
      */
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
index f752a3e..a166dbb 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
@@ -24,6 +24,7 @@
 import java.nio.file.Files;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
@@ -45,6 +46,7 @@
 import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
@@ -52,6 +54,7 @@
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.ArchiveEntry;
 import org.codehaus.plexus.archiver.FileSet;
 import org.codehaus.plexus.util.AbstractScanner;
@@ -78,7 +81,7 @@
         defaultPhase = LifecyclePhase.PACKAGE,
         requiresDependencyResolution = ResolutionScope.COMPILE
 )
-public class VaultMojo extends AbstractEmbeddedsMojo {
+public class VaultMojo extends AbstractMojo {
 
     private static final String JCR_ROOT = "jcr_root/";
 
@@ -110,6 +113,12 @@
     private ArtifactHandlerManager artifactHandlerManager;
 
     /**
+     * The Maven project.
+     */
+    @Parameter(property = "project", readonly = true, required = true)
+    private MavenProject project;
+
+    /**
      * The directory containing the content to be packaged up into the content
      * package.
      *
@@ -274,6 +283,19 @@
     private String embeddedTarget;
 
     /**
+     * list of embedded bundles
+     */
+    @Parameter
+    private Embedded[] embeddeds = new Embedded[0];
+
+    /**
+     * Defines whether to fail the build when an embedded artifact is not
+     * found in the project's dependencies
+     */
+    @Parameter(property = "vault.failOnMissingEmbed", defaultValue = "false", required = true)
+    private boolean failOnMissingEmbed;
+
+    /**
      * Defines the content package type. this is either 'application', 'content', 'container' or 'mixed'.
      * If omitted, it is calculated automatically based on filter definitions. certain package types imply restrictions,
      * for example, 'application' and 'content' packages are not allowed to contain sub packages or embedded bundles.
@@ -871,6 +893,9 @@
 
             targetPath = JCR_ROOT + targetPath;
             targetPath = FileUtils.normalize(targetPath);
+            if (!targetPath.endsWith("/")) {
+                targetPath += "/";
+            }
 
             getLog().info("Embedding --- " + emb + " ---");
             for (final Artifact artifact : artifacts) {
diff --git a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ProjectBuilder.java b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ProjectBuilder.java
index b14b89c..50c5cf1 100644
--- a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ProjectBuilder.java
+++ b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ProjectBuilder.java
@@ -264,7 +264,9 @@
     public ProjectBuilder verifyExpectedFiles() throws IOException {
         // first check that only the expected entries are there in the package (regardless of the order)
         List<String> expectedEntries = Files.readAllLines(expectedFilesFile.toPath(), StandardCharsets.UTF_8);
-        assertThat("Package contains the expected entry names", pkgZipEntries, Matchers.containsInAnyOrder(expectedEntries.toArray()));
+        assertEquals("Package contains the expected entry names",
+                toTidyString(expectedEntries),
+                toTidyString(pkgZipEntries));
         return this;
     }
 
@@ -290,4 +292,14 @@
     public List<String> getBuildOutput() throws IOException {
         return Files.readAllLines(logTxtFile.toPath(), StandardCharsets.UTF_8);
     }
+
+    private String toTidyString(List<String> lines) {
+        String[] copy = lines.toArray(new String[lines.size()]);
+        Arrays.sort(copy);
+        StringBuilder buf = new StringBuilder();
+        for (String line: copy) {
+            buf.append(line).append("\n");
+        }
+        return buf.toString();
+    }
 }
diff --git a/src/test/resources/test-projects/default-test-projects/generic/expected-files.txt b/src/test/resources/test-projects/default-test-projects/generic/expected-files.txt
index 0b99b6b..0d7e71c 100644
--- a/src/test/resources/test-projects/default-test-projects/generic/expected-files.txt
+++ b/src/test/resources/test-projects/default-test-projects/generic/expected-files.txt
@@ -7,6 +7,8 @@
 META-INF/vault/settings.xml
 jcr_root/
 jcr_root/apps/
+jcr_root/apps/install/
+jcr_root/apps/install/org.apache.jackrabbit.vault-3.1.40.jar
 jcr_root/apps/wcm/
 jcr_root/apps/wcm/core/
 jcr_root/apps/wcm/core/content/
@@ -27,6 +29,9 @@
 jcr_root/etc/cloudservices/.content.xml
 jcr_root/apps/wcm/.content.xml
 jcr_root/apps/wcm/core/.content.xml
+jcr_root/libs/
+jcr_root/libs/install/
+jcr_root/libs/install/jcr-2.0.jar
 META-INF/maven/
 META-INF/maven/org.apache.jackrabbit.filevault/
 META-INF/maven/org.apache.jackrabbit.filevault/package-plugin-test-pkg/
diff --git a/src/test/resources/test-projects/default-test-projects/generic/pom.xml b/src/test/resources/test-projects/default-test-projects/generic/pom.xml
index 18c27d5..2907623 100755
--- a/src/test/resources/test-projects/default-test-projects/generic/pom.xml
+++ b/src/test/resources/test-projects/default-test-projects/generic/pom.xml
@@ -49,9 +49,35 @@
                             <root>/apps/some-thirdparty-libs</root>
                         </filter>
                     </filters>
-                    <embeddedTarget>/apps/some-thirdparty-libs/install</embeddedTarget>
+
+                    <embeddeds>
+                        <embedded>
+                            <groupId>javax.jcr</groupId>
+                            <artifactId>jcr</artifactId>
+                            <target>/libs/install</target>
+                        </embedded>
+                        <embedded>
+                            <groupId>org.apache.jackrabbit.vault</groupId>
+                            <artifactId>org.apache.jackrabbit.vault</artifactId>
+                        </embedded>
+                    </embeddeds>
+                    <embeddedTarget>/apps/install</embeddedTarget>
                 </configuration>
             </plugin>
         </plugins>
     </build>
+    <dependencies>
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+            <version>2.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit.vault</groupId>
+            <artifactId>org.apache.jackrabbit.vault</artifactId>
+            <version>3.1.40</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
 </project>