+act add java.time.Duration support Actor javadsl (#24993)

* add java support in akka-actor module in the class Abstract.ActorContext by adding the setReceiveTimeout and CancelReceiveTimeout

* add akka.actor.AbstractActor#ActorContext cancelReceiveTimeout and setReceiveTimeout to mima-excludes file

* removed scala.concurrent.duration dependency in ActorDocTest and add new method expectTerminated with java.time.Duration support in TestKit

* used java.time.Duration as default import
This commit is contained in:
Guy Youansi 2018-05-14 10:22:02 +02:00 committed by Konrad `ktoso` Malawski
parent 55fb092bb2
commit 759010f0cd
9 changed files with 72 additions and 33 deletions

View file

@ -18,8 +18,8 @@ import akka.Done;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.time.Duration;
import akka.testkit.TestActors;
import scala.concurrent.Await;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@ -47,7 +47,6 @@ import java.util.concurrent.CompletableFuture;
//#import-gracefulStop
import static akka.pattern.PatternsCS.gracefulStop;
import akka.pattern.AskTimeoutException;
import scala.concurrent.duration.Duration;
import java.util.concurrent.CompletionStage;
//#import-gracefulStop
@ -73,8 +72,8 @@ public class ActorDocTest extends AbstractJavaTest {
}
@AfterClass
public static void afterClass() throws Exception {
Await.ready(system.terminate(), Duration.create(5, TimeUnit.SECONDS));
public static void afterClass() {
TestKit.shutdownActorSystem(system);
}
static
@ -412,7 +411,7 @@ public class ActorDocTest extends AbstractJavaTest {
//#gracefulStop
try {
CompletionStage<Boolean> stopped =
gracefulStop(actorRef, java.time.Duration.ofSeconds(5), Manager.SHUTDOWN);
gracefulStop(actorRef, Duration.ofSeconds(5), Manager.SHUTDOWN);
stopped.toCompletableFuture().get(6, TimeUnit.SECONDS);
// the actor has been stopped
} catch (AskTimeoutException e) {
@ -535,7 +534,7 @@ public class ActorDocTest extends AbstractJavaTest {
//#receive-timeout
public ReceiveTimeoutActor() {
// To set an initial delay
getContext().setReceiveTimeout(Duration.create(10, TimeUnit.SECONDS));
getContext().setReceiveTimeout(Duration.ofSeconds(10));
}
@Override
@ -543,7 +542,7 @@ public class ActorDocTest extends AbstractJavaTest {
return receiveBuilder()
.matchEquals("Hello", s -> {
// To set in a response to a message
getContext().setReceiveTimeout(Duration.create(1, TimeUnit.SECONDS));
getContext().setReceiveTimeout(Duration.ofSeconds(1));
//#receive-timeout
target = getSender();
target.tell("Hello world", getSelf());
@ -551,7 +550,7 @@ public class ActorDocTest extends AbstractJavaTest {
})
.match(ReceiveTimeout.class, r -> {
// To turn it off
getContext().setReceiveTimeout(Duration.Undefined());
getContext().cancelReceiveTimeout();
//#receive-timeout
target.tell("timeout", getSelf());
//#receive-timeout
@ -628,7 +627,7 @@ public class ActorDocTest extends AbstractJavaTest {
actor.tell("foo", getRef());
actor.tell("foo", getRef());
expectMsgEquals("I am already angry?");
expectNoMsg(Duration.create(1, TimeUnit.SECONDS));
expectNoMessage(Duration.ofSeconds(1));
}
};
}
@ -741,7 +740,7 @@ public class ActorDocTest extends AbstractJavaTest {
{
watch(b);
system.stop(a);
assertEquals(expectMsgClass(java.time.Duration.ofSeconds(2), Terminated.class).actor(), b);
assertEquals(expectMsgClass(Duration.ofSeconds(2), Terminated.class).actor(), b);
}
};
}
@ -755,7 +754,7 @@ public class ActorDocTest extends AbstractJavaTest {
ActorRef actorC = getRef();
//#ask-pipe
Timeout t = new Timeout(Duration.create(5, TimeUnit.SECONDS));
Timeout t = Timeout.create(Duration.ofSeconds(5));
// using 1000ms timeout
CompletableFuture<Object> future1 =
@ -791,7 +790,7 @@ public class ActorDocTest extends AbstractJavaTest {
victim.tell(akka.actor.Kill.getInstance(), ActorRef.noSender());
// expecting the actor to indeed terminate:
expectTerminated(Duration.create(3, TimeUnit.SECONDS), victim);
expectTerminated(Duration.ofSeconds(3), victim);
//#kill
}
};
@ -806,7 +805,7 @@ public class ActorDocTest extends AbstractJavaTest {
//#poison-pill
victim.tell(akka.actor.PoisonPill.getInstance(), ActorRef.noSender());
//#poison-pill
expectTerminated(Duration.create(3, TimeUnit.SECONDS), victim);
expectTerminated(Duration.ofSeconds(3), victim);
}
};
}