summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2015-11-27 17:01:01 +0100
committerLukas Rytz <lukas.rytz@gmail.com>2015-11-27 17:01:01 +0100
commit38db228d8157a40f735e5a17fde53d012066eda6 (patch)
tree6e7a4d034883dd866c1afdf34564eb007211d8b7
parent937dbff94406fdc16e0fec9c2bb68a25ec029408 (diff)
parent62f346b6574a72d236b04ba8744b7a8ea2bcdfe2 (diff)
downloadscala-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.scala15
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
}
}