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>