From ea2451eb40fc24fa29b640d75240fbe72c3d156a Mon Sep 17 00:00:00 2001 From: Stefan Zeiger Date: Wed, 2 Nov 2016 15:55:27 +0100 Subject: Don’t include scala-asm.jar in scala-compiler.jar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes https://github.com/scala/scala-dev/issues/254 --- project/Osgi.scala | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'project') diff --git a/project/Osgi.scala b/project/Osgi.scala index 3b578572c9..082fd91ed1 100644 --- a/project/Osgi.scala +++ b/project/Osgi.scala @@ -37,9 +37,9 @@ object Osgi { }, jarlist := false, bundle := Def.task { - val res = (products in Compile in packageBin).value - bundleTask(headers.value.toMap, jarlist.value, (products in Compile in packageBin).value, - (artifactPath in (Compile, packageBin)).value, res, streams.value) + val cp = (products in Compile in packageBin).value + bundleTask(headers.value.toMap, jarlist.value, cp, + (artifactPath in (Compile, packageBin)).value, cp, streams.value) }.value, packagedArtifact in (Compile, packageBin) := (((artifact in (Compile, packageBin)).value, bundle.value)), // Also create OSGi source bundles: @@ -57,7 +57,12 @@ object Osgi { val builder = new Builder builder.setClasspath(fullClasspath.toArray) headers foreach { case (k, v) => builder.setProperty(k, v) } - val includeRes = resourceDirectories.filter(_.exists).map(_.getAbsolutePath).mkString(",") + + // https://github.com/scala/scala-dev/issues/254 + // Must be careful not to include scala-asm.jar within scala-compiler.jar! + def resourceDirectoryRef(f: File) = (if (f.isDirectory) "" else "@") + f.getAbsolutePath + + val includeRes = resourceDirectories.filter(_.exists).map(resourceDirectoryRef).mkString(",") if(!includeRes.isEmpty) builder.setProperty(INCLUDERESOURCE, includeRes) builder.getProperties.asScala.foreach { case (k, v) => log.debug(s"bnd: $k: $v") } // builder.build is not thread-safe because it uses a static SimpleDateFormat. This ensures -- cgit v1.2.3