diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2015-11-27 17:01:01 +0100 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2015-11-27 17:01:01 +0100 |
commit | 38db228d8157a40f735e5a17fde53d012066eda6 (patch) | |
tree | 6e7a4d034883dd866c1afdf34564eb007211d8b7 | |
parent | 937dbff94406fdc16e0fec9c2bb68a25ec029408 (diff) | |
parent | 62f346b6574a72d236b04ba8744b7a8ea2bcdfe2 (diff) | |
download | scala-38db228d8157a40f735e5a17fde53d012066eda6.tar.gz scala-38db228d8157a40f735e5a17fde53d012066eda6.tar.bz2 scala-38db228d8157a40f735e5a17fde53d012066eda6.zip |
Merge commit '62f346b' into merge-2.11-to-2.12-nov-27
-rw-r--r-- | project/JarJar.scala | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/project/JarJar.scala b/project/JarJar.scala index 64281f23c1..2eec0e9033 100644 --- a/project/JarJar.scala +++ b/project/JarJar.scala @@ -55,7 +55,7 @@ object JarJar { def apply(in: Iterator[Entry], outdir: File, config: Seq[JarJarConfig], verbose: Boolean = false): Seq[File] = { val patterns = config.map(_.toPatternElement).asJava - val processor: JarProcessor = newMainProcessor(patterns, verbose, false) + val processor = newMainProcessor(patterns, verbose, false) def process(e: Entry): Option[File] = { val struct = new EntryStruct() struct.name = e.name @@ -77,7 +77,16 @@ object JarJar { } else None } - in.flatMap(entry => process(entry)).toList - + val processed = in.flatMap(entry => process(entry)).toSet + val getter = processor.getClass.getDeclaredMethod("getExcludes") + getter.setAccessible(true) + val excludes = getter.invoke(processor).asInstanceOf[java.util.Set[String]].asScala + val excluded = excludes.map { name => + val f: File = outdir / name + if(f.exists && !f.delete()) + throw new IOException("Failed to delete excluded file $f") + f + } + (processed -- excluded).toSeq } } |