diff --git a/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java b/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java index bb6b3b79a6..0a6f661259 100644 --- a/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java +++ b/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java @@ -148,12 +148,12 @@ public class JavaFutureTests { final CountDownLatch latch = new CountDownLatch(1); Promise cf = Futures.promise(system.dispatcher()); Future f = cf; - Future r = f.filter(new Filter() { + Future r = f.filter(Filter.create(new Filter() { public boolean filter(String r) { latch.countDown(); return r.equals("foo"); } - }); + })); cf.success("foo"); assertTrue(latch.await(5000, TimeUnit.MILLISECONDS)); diff --git a/akka-actor/src/main/scala/akka/dispatch/Future.scala b/akka-actor/src/main/scala/akka/dispatch/Future.scala index ed778115ac..dce3fe31ad 100644 --- a/akka-actor/src/main/scala/akka/dispatch/Future.scala +++ b/akka-actor/src/main/scala/akka/dispatch/Future.scala @@ -1044,9 +1044,7 @@ abstract class Recover[+T] extends japi.RecoverBridge[T] { * SAM (Single Abstract Method) class * Java API */ -abstract class Filter[-T] extends japi.BooleanFunctionBridge[T] { - override final def internal(t: T): Boolean = filter(t) - +abstract class Filter[-T] { /** * This method will be invoked once when/if a Future that this callback is registered on * becomes completed with a success. @@ -1056,6 +1054,12 @@ abstract class Filter[-T] extends japi.BooleanFunctionBridge[T] { def filter(result: T): Boolean } +object Filter { + def create[T](f: Filter[T]): (T ⇒ Boolean) = new Function1[T, Boolean] { + def apply(result: T): Boolean = f.filter(result) + } +} + /** * Callback for the Future.foreach operation that will be invoked if the Future that this callback * is registered on becomes completed with a success. This method is essentially the same operation diff --git a/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java b/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java index 42dc0e2a12..d8c7b04eb7 100644 --- a/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java +++ b/akka-docs/java/code/akka/docs/future/FutureDocTestBase.java @@ -317,17 +317,17 @@ public class FutureDocTestBase { public void useFilter() throws Exception { //#filter Future future1 = Futures.successful(4, system.dispatcher()); - Future successfulFilter = future1.filter(new Filter() { + Future successfulFilter = future1.filter(Filter.create(new Filter() { public boolean filter(Integer i) { return i % 2 == 0; } - }); + })); - Future failedFilter = future1.filter(new Filter() { + Future failedFilter = future1.filter(Filter.create(new Filter() { public boolean filter(Integer i) { return i % 2 != 0; } - }); + })); //When filter fails, the returned Future will be failed with a scala.MatchError //#filter } diff --git a/project/AkkaBuild.scala b/project/AkkaBuild.scala index bce4164c24..e5abfbb48c 100644 --- a/project/AkkaBuild.scala +++ b/project/AkkaBuild.scala @@ -19,8 +19,7 @@ object AkkaBuild extends Build { lazy val buildSettings = Seq( organization := "com.typesafe.akka", version := "2.0-SNAPSHOT", - scalaVersion := "2.9.2-SNAPSHOT", - scalaHome := Some(file("/Users/rkuhn/comp/scala-2.9.2.2.9.1-0138-g280cffc14e-2012-02-12")) + scalaVersion := "2.9.2-SNAPSHOT" ) lazy val akka = Project( @@ -39,9 +38,6 @@ object AkkaBuild extends Build { id = "akka-actor", base = file("akka-actor"), settings = defaultSettings ++ Seq( - autoCompilerPlugins := true, - libraryDependencies <+= scalaVersion { v => compilerPlugin("org.scala-lang.plugins" % "continuations" % v) }, - scalacOptions += "-P:continuations:enable", // to fix scaladoc generation fullClasspath in doc in Compile <<= fullClasspath in Compile ) @@ -61,9 +57,6 @@ object AkkaBuild extends Build { base = file("akka-actor-tests"), dependencies = Seq(testkit % "compile;test->test"), settings = defaultSettings ++ Seq( - autoCompilerPlugins := true, - libraryDependencies <+= scalaVersion { v => compilerPlugin("org.scala-lang.plugins" % "continuations" % v) }, - scalacOptions += "-P:continuations:enable", libraryDependencies ++= Dependencies.actorTests ) ) @@ -354,7 +347,7 @@ object AkkaBuild extends Build { resolvers += "Typesafe Snapshot Repo" at "http://repo.typesafe.com/typesafe/snapshots/", // Used while play-mini is still on RC // compile options - scalacOptions ++= Seq("-encoding", "UTF-8", "-deprecation", "-unchecked", "-verbose") ++ ( + scalacOptions ++= Seq("-encoding", "UTF-8", "-deprecation", "-unchecked") ++ ( if (true || (System getProperty "java.runtime.version" startsWith "1.7")) Seq() else Seq("-optimize")), // -optimize fails with jdk7 javacOptions ++= Seq("-Xlint:unchecked", "-Xlint:deprecation"),