Java 8 и Акка 2.5.16 здесь. У меня есть следующий актер:
public class Guardian extends AbstractActor {
@Override
public Receive createReceive() {
return receiveBuilder()
.matchAny(message -> {
// Do stuff in here
}).build();
}
}
Который я создаю так:
ActorRef guardian = context().actorOf(Props.create(Guardian.class), Guardian.class.getName());
String path = guardian.path().toString();
// Prints: "akka://myapp/user/com.me.myapp.Guardian"
log.info("path = {}", path);
Теперь я хотел бы использовать ActorSelection
для поиска этого существующего актера:
String pathShortcut = "user/com.me.myappp.Guardian";
ActorSelection guardianSelection = context().actorSelection(pathShortcut);
Нужно ли , чтобы передать полное значение пути (akka://myapp/user/com.me.myapp.Guardian
), или я могу предоставить ярлык, например:
// Examples:
String pathShortcut1 = "user/com.me.myappp.Guardian";
String pathShortcut2 = "com.me.myapp.Guardian";
String pathShortcut3 = "Guardian";
Другими словами, context().actorSelection(...)
требует полностью определенного пути или он может использовать ярлыки и разумно их разрешать / выводить?
Кроме того, будет ли «протокол пути» всегда равным akka://
или он когда-нибудь изменится (скажем, с удаленными актерами или другими библиотеками актеров)?
Заранее спасибо!