aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-application-maven-plugin
diff options
context:
space:
mode:
authorgjoranv <gv@yahooinc.com>2023-06-13 14:08:52 +0200
committergjoranv <gv@yahooinc.com>2023-06-13 14:12:48 +0200
commit6a0b5cbd3338a69d8c5e797135ad13b82b8a1b6e (patch)
treeecfde019e4d0d918e954e587348a5259d4c0922f /vespa-application-maven-plugin
parent75cdcbc2daae3ec9c538b69d817578eba875c276 (diff)
Do not include ignored files to the application package.
- For now, only '.DS_Store' files are ignored.
Diffstat (limited to 'vespa-application-maven-plugin')
-rw-r--r--vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java18
-rw-r--r--vespa-application-maven-plugin/src/test/java/com/yahoo/container/plugin/mojo/ApplicationMojoTest.java10
2 files changed, 25 insertions, 3 deletions
diff --git a/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java b/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java
index 9120d95970d..c6d056675a8 100644
--- a/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java
+++ b/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java
@@ -2,6 +2,10 @@
package com.yahoo.container.plugin.mojo;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.IOFileFilter;
+import org.apache.commons.io.filefilter.NameFileFilter;
+import org.apache.commons.io.filefilter.NotFileFilter;
+import org.apache.commons.io.filefilter.OrFileFilter;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.plugin.AbstractMojo;
@@ -12,10 +16,10 @@ import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.Collections;
import java.util.List;
@@ -26,6 +30,8 @@ import java.util.List;
@Mojo(name = "packageApplication", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = true)
public class ApplicationMojo extends AbstractMojo {
+ private static final List<String> IGNORED_FILES = List.of(".DS_Store");
+
@Parameter(defaultValue = "${project}", readonly = true)
protected MavenProject project;
@@ -125,13 +131,21 @@ public class ApplicationMojo extends AbstractMojo {
private void copyApplicationPackage(File applicationPackage, File applicationDestination) throws MojoExecutionException {
if (applicationPackage.exists()) {
try {
- FileUtils.copyDirectory(applicationPackage, applicationDestination);
+ FileUtils.copyDirectory(applicationPackage, applicationDestination, ignoredFilesFilter());
} catch (IOException e) {
throw new MojoExecutionException("Failed copying applicationPackage", e);
}
}
}
+ static FileFilter ignoredFilesFilter() {
+ var ioFileFilters = IGNORED_FILES.stream()
+ .map(NameFileFilter::new)
+ .map(IOFileFilter.class::cast)
+ .toList();
+ return new NotFileFilter(new OrFileFilter(ioFileFilters));
+ }
+
private void copyModuleBundles(File moduleDir, File componentsDir) throws MojoExecutionException {
File moduleTargetDir = new File(moduleDir, "target");
if (moduleTargetDir.exists()) {
diff --git a/vespa-application-maven-plugin/src/test/java/com/yahoo/container/plugin/mojo/ApplicationMojoTest.java b/vespa-application-maven-plugin/src/test/java/com/yahoo/container/plugin/mojo/ApplicationMojoTest.java
index 6f134a5ff86..de3b5f8d0cd 100644
--- a/vespa-application-maven-plugin/src/test/java/com/yahoo/container/plugin/mojo/ApplicationMojoTest.java
+++ b/vespa-application-maven-plugin/src/test/java/com/yahoo/container/plugin/mojo/ApplicationMojoTest.java
@@ -1,8 +1,10 @@
package com.yahoo.container.plugin.mojo;
-import org.junit.Assert;
import org.junit.Test;
+import java.io.File;
+
+import static com.yahoo.container.plugin.mojo.ApplicationMojo.ignoredFilesFilter;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -12,6 +14,12 @@ import static org.junit.Assert.assertTrue;
public class ApplicationMojoTest {
@Test
+ public void it_does_not_include_files_to_be_ignored() {
+ var dsStore = new File("target/classes/.DS_Store");
+ assertFalse(ignoredFilesFilter().accept(dsStore));
+ }
+
+ @Test
public void testRegex() {
assertTrue(ApplicationMojo.isVespaParent("ai.vespa"));
assertTrue(ApplicationMojo.isVespaParent("ai.vespa.hosted"));