From 265806b1ac79cc3438c894e7a73a4b859008dacc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=B6kdemir?= Date: Thu, 24 Sep 2026 13:56:43 +0300 Subject: [PATCH 1/2] Ignore empty unpack types --- .../org/apache/maven/plugins/ear/EarMojo.java | 2 ++ .../apache/maven/plugins/ear/EarMojoTest.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/org/apache/maven/plugins/ear/EarMojo.java b/src/main/java/org/apache/maven/plugins/ear/EarMojo.java index b9491800..abdf5ee4 100644 --- a/src/main/java/org/apache/maven/plugins/ear/EarMojo.java +++ b/src/main/java/org/apache/maven/plugins/ear/EarMojo.java @@ -466,6 +466,8 @@ private List createUnpackList() throws MojoExecutionException { List unpackTypesList = new ArrayList<>(); if (unpackTypes != null) { unpackTypesList = Arrays.asList(unpackTypes.split(",")); + unpackTypesList = new ArrayList<>(unpackTypesList); + unpackTypesList.removeIf(String::isEmpty); for (String type : unpackTypesList) { if (!EarModuleFactory.isStandardArtifactType(type)) { throw new MojoExecutionException("Invalid type [" + type + "] supported types are " diff --git a/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java b/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java index b0c37cb9..8087106e 100644 --- a/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java +++ b/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java @@ -19,7 +19,10 @@ package org.apache.maven.plugins.ear; import java.io.File; +import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -37,6 +40,17 @@ private File invokeGetEarFile(String finalName, String classifier) throws Except return (File) method.invoke(null, tempDir.getAbsolutePath(), finalName, classifier); } + @SuppressWarnings("unchecked") + private List invokeCreateUnpackList(String unpackTypes) throws Exception { + EarMojo mojo = new EarMojo(null, null, null, null, null, null); + Field field = EarMojo.class.getDeclaredField("unpackTypes"); + field.setAccessible(true); + field.set(mojo, unpackTypes); + Method method = EarMojo.class.getDeclaredMethod("createUnpackList"); + method.setAccessible(true); + return (List) method.invoke(mojo); + } + @Test void testGetEarFileWithNullClassifier() throws Exception { File result = invokeGetEarFile("myapp", null); @@ -54,4 +68,9 @@ void testGetEarFileWithDashPrefixedClassifier() throws Exception { File result = invokeGetEarFile("myapp", "-sources"); assertEquals(new File(tempDir, "myapp-sources.ear"), result); } + + @Test + void testCreateUnpackListIgnoresTrailingComma() throws Exception { + assertEquals(Arrays.asList("jar", "war"), invokeCreateUnpackList("jar,war,")); + } } From 9c415176c7550ce3fc105da8094632fcd40d4903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Efe=20G=C3=B6kdemir?= Date: Sun, 18 Oct 2026 21:49:55 +0300 Subject: [PATCH 2/2] test: cover empty unpack type entries --- src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java b/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java index 8087106e..8f080813 100644 --- a/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java +++ b/src/test/java/org/apache/maven/plugins/ear/EarMojoTest.java @@ -70,7 +70,8 @@ void testGetEarFileWithDashPrefixedClassifier() throws Exception { } @Test - void testCreateUnpackListIgnoresTrailingComma() throws Exception { + void testCreateUnpackListIgnoresEmptyTypes() throws Exception { assertEquals(Arrays.asList("jar", "war"), invokeCreateUnpackList("jar,war,")); + assertEquals(Arrays.asList("jar", "war"), invokeCreateUnpackList("jar,,war")); } }