* Receive class that wraps PartialFunction, to avoid
scary scala types
* move AbstractActorContext to AbstractActor.ActorContext
* converting docs, many, many UntypedActor
* removing UntypedActor docs
* add unit test for ReceiveBuilder
* MiMa filters
* consistent use of getContext(), self(), sender()
* rename cross references
* migration guide
* skip samples for now
* improve match type safetyi, add matchUnchecked
* the `? extends P` caused code like this to compile:
`match(String.class, (Integer i) -> {})`
* added matchUnchecked, since it can still be useful (um, convenient)
to be able to do:
`matchUnchecked(List.class, (List<String> list) -> {})`
* eleminate some scala.Option
* preRestart
* findChild
* ActorIdentity.getActorRef
82 lines
2.2 KiB
Java
82 lines
2.2 KiB
Java
/**
|
|
* Copyright (C) 2009-2017 Lightbend Inc. <http://www.lightbend.com>
|
|
*/
|
|
package docs.remoting;
|
|
|
|
import akka.testkit.AkkaJUnitActorSystemResource;
|
|
import org.junit.ClassRule;
|
|
import org.junit.Test;
|
|
|
|
import com.typesafe.config.ConfigFactory;
|
|
|
|
//#import
|
|
import akka.actor.ActorRef;
|
|
import akka.actor.Address;
|
|
import akka.actor.AddressFromURIString;
|
|
import akka.actor.Deploy;
|
|
import akka.actor.Props;
|
|
import akka.actor.ActorSystem;
|
|
import akka.remote.RemoteScope;
|
|
//#import
|
|
|
|
import akka.actor.UntypedActor;
|
|
|
|
public class RemoteDeploymentDocTest {
|
|
|
|
public static class SampleActor extends UntypedActor {
|
|
public void onReceive(Object message) {
|
|
sender().tell(self(), self());
|
|
}
|
|
}
|
|
|
|
@ClassRule
|
|
public static AkkaJUnitActorSystemResource actorSystemResource =
|
|
new AkkaJUnitActorSystemResource("RemoteDeploymentDocTest");
|
|
|
|
private final ActorSystem system = actorSystemResource.getSystem();
|
|
|
|
@SuppressWarnings("unused")
|
|
void makeAddress() {
|
|
//#make-address-artery
|
|
Address addr = new Address("akka", "sys", "host", 1234);
|
|
addr = AddressFromURIString.parse("akka://sys@host:1234"); // the same
|
|
//#make-address-artery
|
|
}
|
|
|
|
@Test
|
|
public void demonstrateDeployment() {
|
|
//#make-address
|
|
Address addr = new Address("akka.tcp", "sys", "host", 1234);
|
|
addr = AddressFromURIString.parse("akka.tcp://sys@host:1234"); // the same
|
|
//#make-address
|
|
//#deploy
|
|
ActorRef ref = system.actorOf(Props.create(SampleActor.class).withDeploy(
|
|
new Deploy(new RemoteScope(addr))));
|
|
//#deploy
|
|
assert ref.path().address().equals(addr);
|
|
}
|
|
|
|
@Test
|
|
public void demonstrateSampleActor() {
|
|
//#sample-actor
|
|
|
|
ActorRef actor = system.actorOf(Props.create(SampleActor.class), "sampleActor");
|
|
actor.tell("Pretty slick", ActorRef.noSender());
|
|
//#sample-actor
|
|
}
|
|
|
|
@Test
|
|
public void demonstrateProgrammaticConfig() {
|
|
//#programmatic
|
|
ConfigFactory.parseString("akka.remote.netty.tcp.hostname=\"1.2.3.4\"")
|
|
.withFallback(ConfigFactory.load());
|
|
//#programmatic
|
|
|
|
//#programmatic-artery
|
|
ConfigFactory.parseString("akka.remote.artery.canonical.hostname=\"1.2.3.4\"")
|
|
.withFallback(ConfigFactory.load());
|
|
//#programmatic-artery
|
|
}
|
|
|
|
|
|
}
|