Skip to content

Commit 274d49e

Browse files
committed
Ensure scala.concurrent.java8._ is packaged
The implementation of `FutureConverters` needs to access some `private[concurrent]` members in the standard library. To do so, it places some of its implementation under this package. However, the OSGi SBT plugin seems to silently remove packages from the final artifact that aren't either a publicly exported or a declared private package. Because of this, the 0.2.0 released JARs did not contain these classes, and using FutureConverters resulted in a linkage error. After this commit: ``` % sbt clean publishLocal % jar tf target/scala-2.11/scala-java8-compat_2.11-0.2.0-SNAPSHOT.jar | grep -v 'scala/compat' META-INF/MANIFEST.MF scala-java8-compat.properties scala/ scala/concurrent/ scala/concurrent/java8/ scala/concurrent/java8/FuturesConvertersImpl$.class scala/concurrent/java8/FuturesConvertersImpl$CF$$anon$1.class scala/concurrent/java8/FuturesConvertersImpl$CF.class scala/concurrent/java8/FuturesConvertersImpl$P.class scala/concurrent/java8/FuturesConvertersImpl.class ``` As compared with: ``` % curl --silent https://oss.sonatype.org/content/repositories/releases/org/scala-lang/modules/scala-java8-compat_2.11/0.2.0/scala-java8-compat_2.11-0.2.0.jar | tar tf - | grep -v 'scala/compat' META-INF/MANIFEST.MF scala-java8-compat.properties scala/ ``` Fixes #26
1 parent cab9c39 commit 274d49e

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

build.sbt

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ scalaModuleOsgiSettings
1919

2020
OsgiKeys.exportPackage := Seq(s"scala.compat.java8.*;version=${version.value}")
2121

22+
OsgiKeys.privatePackage := List("scala.concurrent.java8.*")
23+
2224
libraryDependencies += "junit" % "junit" % "4.11" % "test"
2325

2426
libraryDependencies += "com.novocode" % "junit-interface" % "0.10" % "test"
@@ -96,6 +98,6 @@ initialCommands :=
9698
"""|import scala.concurrent._
9799
|import ExecutionContext.Implicits.global
98100
|import java.util.concurrent.{CompletionStage,CompletableFuture}
99-
|import scala.concurrent.java8.FutureConverter._
101+
|import scala.compat.java8.FutureConverter._
100102
|""".stripMargin
101103

0 commit comments

Comments
 (0)