From b368aedef21a2b7a15b2d3a0538c4e38ae9304ff Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Wed, 21 Mar 2018 15:17:20 -0700 Subject: [PATCH] MetaArchive fix. --- .../com/beust/kobalt/archive/MetaArchive.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/archive/MetaArchive.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/archive/MetaArchive.kt index 9d00c8d1..c217c83e 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/archive/MetaArchive.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/archive/MetaArchive.kt @@ -93,14 +93,14 @@ class MetaArchive(outputFile: File, val manifest: Manifest?) : Closeable { } } - @Suppress("PrivatePropertyName") - private val DEFAULT_JAR_EXCLUDES = - Glob("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", MANIFEST_MF) - private val seen = hashSetOf() - private fun okToAdd(name: String): Boolean = ! seen.contains(name) - && ! KFiles.isExcluded(name, DEFAULT_JAR_EXCLUDES) + private fun okToAdd(name: String) : Boolean { + val result = !KFiles.isExcluded(name, + Glob("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", MANIFEST_MF)) +// if (name.startsWith("META-INF")) println((if (result) "ADDING" else "NOT ADDING") + " $name") + return result + } override fun close() = zos.close() @@ -112,10 +112,14 @@ class MetaArchive(outputFile: File, val manifest: Manifest?) : Closeable { zos.closeArchiveEntry() } + private val seen = hashSetOf() + private fun maybeAddEntry(entry: ArchiveEntry, action:() -> Unit) { - if (okToAdd(entry.name)) { - action() + entry.name.let { name -> + if (!seen.contains(name) && okToAdd(name)) { + action() + } + seen.add(name) } - seen.add(entry.name) } }