You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2023/01/31 15:39:46 UTC
[jackrabbit-filevault-package-maven-plugin] 01/01: JCRVLT-681 fix default excludes in "validate-files"
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch bugfix/JCRVLT-681-ignore-gitignore-during-validate-files
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git
commit 6804d80f61ff70b24ade51f2a85cbd43d305e0eb
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Jan 31 16:39:38 2023 +0100
JCRVLT-681 fix default excludes in "validate-files"
Extend test to check that .gitignore files and .gitattributes files are
ignored for validation (both in validate-package and validate-files)
---
pom.xml | 7 +++++
.../mojo/AbstractSourceAndMetadataPackageMojo.java | 3 +-
.../maven/packaging/mojo/ValidateFilesMojo.java | 33 ++++++++++++++++++++--
.../maven/packaging/it/ValidateFilesIT.java | 8 ++++++
.../valid-project-with-zip/jcr_root/.gitignore | 1 +
.../jcr_root/apps/.gitattributes | 0
6 files changed, 48 insertions(+), 4 deletions(-)
diff --git a/pom.xml b/pom.xml
index 3712bf6..46ccc36 100644
--- a/pom.xml
+++ b/pom.xml
@@ -288,6 +288,13 @@
</resources>
</configuration>
</execution>
+ <execution>
+ <id>default-testResources</id>
+ <configuration>
+ <!-- copy .gitignore as well -->
+ <addDefaultExcludes>false</addDefaultExcludes>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/AbstractSourceAndMetadataPackageMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/AbstractSourceAndMetadataPackageMojo.java
index 31de5c3..62e67e8 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/AbstractSourceAndMetadataPackageMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/AbstractSourceAndMetadataPackageMojo.java
@@ -47,7 +47,6 @@ public abstract class AbstractSourceAndMetadataPackageMojo extends AbstractMetad
+ "${project.basedir}/src/content/jcr_root," + "${project.build.outputDirectory}")
private File[] jcrRootSourceDirectory;
-
/**
* The file name patterns to exclude (in addition to the default ones mentioned at {@link AbstractSourceAndMetadataPackageMojo#addDefaultExcludes}. The format of each pattern is described in {@link org.codehaus.plexus.util.DirectoryScanner}.
* The comparison is against the path relative to the according filter root.
@@ -57,7 +56,7 @@ public abstract class AbstractSourceAndMetadataPackageMojo extends AbstractMetad
* Each value is either a regex pattern if enclosed within {@code %regex[} and {@code ]}, otherwise an
* <a href="https://ant.apache.org/manual/dirtasks.html#patterns">Ant pattern</a>.
*/
- @Parameter(property = "vault.excludes", defaultValue = "**/.vlt,**/.vltignore,**/.gitignore", required = true)
+ @Parameter(property = "vault.excludes", defaultValue = "**/.vlt,**/.vltignore,**/.gitignore,**/.gitattributes", required = true)
protected Set<String> excludes;
/**
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/ValidateFilesMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/ValidateFilesMojo.java
index 3945da9..06d0139 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/ValidateFilesMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/ValidateFilesMojo.java
@@ -149,8 +149,35 @@ public class ValidateFilesMojo extends AbstractValidateMojo {
* Each value is either a regex pattern if enclosed within {@code %regex[} and {@code ]}, otherwise an
* <a href="https://ant.apache.org/manual/dirtasks.html#patterns">Ant pattern</a>.
*/
- @Parameter(property = "vault.excludes", defaultValue = "**/.vlt,**/.vltignore", required = true)
+ @Parameter(property = "vault.excludes", defaultValue = "**/.vlt,**/.vltignore,**/.gitignore,**/.gitattributes", required = true)
protected String[] excludes;
+
+ /**
+ * By default certain metadata files are excluded which means they will not be copied into the package.
+ * If you need them for a particular reason you can do that by setting this parameter to {@code false}. This means
+ * all files matching the following <a href="https://ant.apache.org/manual/dirtasks.html#patterns">Ant patterns</a> won't be copied by default.
+ * <ul>
+ * <li>Misc: **/*~, **/#*#, **/.#*, **/%*%, **/._*</li>
+ * <li>CVS: **/CVS, **/CVS/**, **/.cvsignore</li>
+ * <li>SVN: **/.svn, **/.svn/**</li>
+ * <li>GNU: **/.arch-ids, **/.arch-ids/**</li>
+ * <li>Bazaar: **/.bzr, **/.bzr/**</li>
+ * <li>SurroundSCM: **/.MySCMServerInfo</li>
+ * <li>Mac: **/.DS_Store</li>
+ * <li>Serena Dimension: **/.metadata, **/.metadata/**</li>
+ * <li>Mercurial: **/.hg, **/.hg/**</li>
+ * <li>GIT: **/.git, **/.git/**</li>
+ * <li>Bitkeeper: **/BitKeeper, **/BitKeeper/**, **/ChangeSet,
+ * **/ChangeSet/**</li>
+ * <li>Darcs: **/_darcs, **/_darcs/**, **/.darcsrepo,
+ * **/.darcsrepo/****/-darcs-backup*, **/.darcs-temp-mail
+ * </ul>
+ *
+ * @see org.codehaus.plexus.util.AbstractScanner#DEFAULTEXCLUDES
+ * @since 1.3.4
+ */
+ @Parameter(defaultValue = "true")
+ protected boolean addDefaultExcludes;
//-----
// End: Copied from AbstractSourceAndMetadataPackageMojo
// -----
@@ -229,7 +256,9 @@ public class ValidateFilesMojo extends AbstractValidateMojo {
Scanner scanner = buildContext.newScanner(baseDir.toFile());
// make sure filtering does work equally as within the package goal
scanner.setExcludes(excludes);
- scanner.addDefaultExcludes();
+ if (addDefaultExcludes) {
+ scanner.addDefaultExcludes();
+ }
scanner.scan();
getLog().info("Scanning baseDir " + getProjectRelativeFilePath(baseDir) + "...");
SortedSet<Path> sortedFileAndFolderNames = sortAndEnrichFilesAndDirectories(baseDir, scanner.getIncludedFiles(), scanner.getIncludedDirectories());
diff --git a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidateFilesIT.java b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidateFilesIT.java
index 50519c9..d81037e 100644
--- a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidateFilesIT.java
+++ b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidateFilesIT.java
@@ -35,4 +35,12 @@ class ValidateFilesIT {
.build()
.verifyExpectedLogLines(Paths.get("META-INF","vault","filter.xml").toString());
}
+
+ @Test
+ void testValidProjectWithZip(ProjectBuilder projectBuilder) throws Exception {
+ projectBuilder
+ .setTestProjectDir("/validator-projects/valid-project-with-zip")
+ .setTestGoals("clean", "package") // make sure the validate-files mojo is not skipped
+ .build();
+ }
}
diff --git a/src/test/resources/test-projects/validator-projects/valid-project-with-zip/jcr_root/.gitignore b/src/test/resources/test-projects/validator-projects/valid-project-with-zip/jcr_root/.gitignore
new file mode 100644
index 0000000..c480a53
--- /dev/null
+++ b/src/test/resources/test-projects/validator-projects/valid-project-with-zip/jcr_root/.gitignore
@@ -0,0 +1 @@
+sometest
\ No newline at end of file
diff --git a/src/test/resources/test-projects/validator-projects/valid-project-with-zip/jcr_root/apps/.gitattributes b/src/test/resources/test-projects/validator-projects/valid-project-with-zip/jcr_root/apps/.gitattributes
new file mode 100644
index 0000000..e69de29