Adding create() to ReceiveBuilder to promote a builder-like syntax #18894
This commit is contained in:
parent
679db55eca
commit
7eb4afc475
4 changed files with 67 additions and 0 deletions
|
|
@ -365,6 +365,22 @@ public class ActorDocTest extends AbstractJavaTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void creatingGraduallyBuiltActorWithSystemActorOf() {
|
||||
final ActorSystem system = ActorSystem.create("MySystem", config);
|
||||
final ActorRef actor = system.actorOf(Props.create(GraduallyBuiltActor.class), "graduallyBuiltActor");
|
||||
try {
|
||||
new JavaTestKit(system) {
|
||||
{
|
||||
actor.tell("hello", getRef());
|
||||
expectMsgEquals("hello");
|
||||
}
|
||||
};
|
||||
} finally {
|
||||
JavaTestKit.shutdownActorSystem(system);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void creatingPropsConfig() {
|
||||
//#creating-props
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
/**
|
||||
* Copyright (C) 2009-2016 Lightbend Inc. <http://www.lightbend.com>
|
||||
*/
|
||||
|
||||
package docs.actorlambda;
|
||||
|
||||
//#imports
|
||||
import akka.actor.AbstractActor;
|
||||
import akka.event.Logging;
|
||||
import akka.event.LoggingAdapter;
|
||||
import akka.japi.pf.ReceiveBuilder;
|
||||
import akka.japi.pf.UnitPFBuilder;
|
||||
|
||||
//#imports
|
||||
|
||||
//#actor
|
||||
public class GraduallyBuiltActor extends AbstractActor {
|
||||
private final LoggingAdapter log = Logging.getLogger(context().system(), this);
|
||||
|
||||
public GraduallyBuiltActor() {
|
||||
UnitPFBuilder<Object> builder = ReceiveBuilder.create();
|
||||
builder.match(String.class, s -> {
|
||||
log.info("Received String message: {}", s);
|
||||
//#actor
|
||||
//#reply
|
||||
sender().tell(s, self());
|
||||
//#reply
|
||||
//#actor
|
||||
});
|
||||
// do some other stuff in between
|
||||
builder.matchAny(o -> log.info("received unknown message"));
|
||||
receive(builder.build());
|
||||
}
|
||||
}
|
||||
//#actor
|
||||
Loading…
Add table
Add a link
Reference in a new issue