From 6e729410629a1a98405dd6b40417f908b32af17e Mon Sep 17 00:00:00 2001 From: Antoine Levy-Lambert Date: Mon, 27 Dec 2004 10:15:05 +0000 Subject: [PATCH] Make it possible to create manifest only jars with the option duplicate="preserve" PR: 32802 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277264 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 2 ++ src/etc/testcases/taskdefs/jar.xml | 12 ++++++++++++ src/etc/testcases/taskdefs/zip.xml | 5 +++++ src/main/org/apache/tools/ant/taskdefs/Zip.java | 4 +++- .../org/apache/tools/ant/taskdefs/JarTest.java | 5 +++++ .../org/apache/tools/ant/taskdefs/ZipTest.java | 6 ++++++ 6 files changed, 33 insertions(+), 1 deletion(-) diff --git a/WHATSNEW b/WHATSNEW index e4fc60a90..91fac75c3 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -176,6 +176,8 @@ Fixed bugs: * Zip task was not zipping when only empty directories were found. Bugzilla 30365. +* Jar task was not including manifest files when duplicate="preserve" was chosen. Bugzilla 32802. + * Classpath was treated in the same way as -lib options. Bugzilla 28046. * Manual page for cvsversion contained incorrect attributes and did not say since 1.6.1. diff --git a/src/etc/testcases/taskdefs/jar.xml b/src/etc/testcases/taskdefs/jar.xml index 73b86141f..f03d12596 100644 --- a/src/etc/testcases/taskdefs/jar.xml +++ b/src/etc/testcases/taskdefs/jar.xml @@ -209,5 +209,17 @@ + + + + + + + + + + + + diff --git a/src/etc/testcases/taskdefs/zip.xml b/src/etc/testcases/taskdefs/zip.xml index 3363e6407..f2acdc366 100644 --- a/src/etc/testcases/taskdefs/zip.xml +++ b/src/etc/testcases/taskdefs/zip.xml @@ -134,6 +134,11 @@ + + + + + diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java index a6ff2f486..649ff35b7 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Zip.java +++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java @@ -800,7 +800,9 @@ public class Zip extends MatchingTask { getLocation()); } else { // Create. - createEmptyZip(zipFile); + if (!zipFile.exists()) { + needsUpdate = true; + } } return new ArchiveState(needsUpdate, initialResources); } diff --git a/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java b/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java index bfd24bfa6..ef0da75fc 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java @@ -256,4 +256,9 @@ public class JarTest extends BuildFileTest { } } } + public void testManifestOnlyJar() { + executeTarget("testManifestOnlyJar"); + File manifestFile = getProject().resolveFile(tempDir + "META-INF" + File.separator + "MANIFEST.MF"); + assertTrue(manifestFile.exists()); + } } diff --git a/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java b/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java index 8321a5fa0..0c9f1ac7d 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/ZipTest.java @@ -139,4 +139,10 @@ public class ZipTest extends BuildFileTest { assertTrue("archive should be created", getProject().resolveFile("test3.zip").exists()); } + public void testZipEmptyCreate() { + executeTarget("zipEmptyCreate"); + assertTrue("archive should be created", + getProject().resolveFile("test3.zip").exists()); + + } }