Formatting java codes with sbt-java-formatter.
This commit is contained in:
parent
27500001ea
commit
998c5a9285
401 changed files with 19750 additions and 17450 deletions
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
package jdocs.sharding;
|
||||
|
||||
|
||||
import java.util.Optional;
|
||||
import java.time.Duration;
|
||||
|
||||
|
|
@ -17,17 +16,17 @@ import akka.actor.PoisonPill;
|
|||
import akka.actor.Props;
|
||||
import akka.actor.SupervisorStrategy;
|
||||
import akka.actor.ReceiveTimeout;
|
||||
//#counter-extractor
|
||||
// #counter-extractor
|
||||
import akka.cluster.sharding.ShardRegion;
|
||||
|
||||
//#counter-extractor
|
||||
// #counter-extractor
|
||||
|
||||
//#counter-start
|
||||
// #counter-start
|
||||
import akka.japi.Option;
|
||||
import akka.cluster.sharding.ClusterSharding;
|
||||
import akka.cluster.sharding.ClusterShardingSettings;
|
||||
|
||||
//#counter-start
|
||||
// #counter-start
|
||||
import akka.persistence.AbstractPersistentActor;
|
||||
import akka.japi.pf.DeciderBuilder;
|
||||
|
||||
|
|
@ -41,127 +40,127 @@ public class ClusterShardingTest {
|
|||
}
|
||||
|
||||
public void demonstrateUsage() {
|
||||
//#counter-extractor
|
||||
ShardRegion.MessageExtractor messageExtractor = new ShardRegion.MessageExtractor() {
|
||||
// #counter-extractor
|
||||
ShardRegion.MessageExtractor messageExtractor =
|
||||
new ShardRegion.MessageExtractor() {
|
||||
|
||||
@Override
|
||||
public String entityId(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return String.valueOf(((Counter.EntityEnvelope) message).id);
|
||||
else if (message instanceof Counter.Get)
|
||||
return String.valueOf(((Counter.Get) message).counterId);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public String entityId(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return String.valueOf(((Counter.EntityEnvelope) message).id);
|
||||
else if (message instanceof Counter.Get)
|
||||
return String.valueOf(((Counter.Get) message).counterId);
|
||||
else return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object entityMessage(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return ((Counter.EntityEnvelope) message).payload;
|
||||
else
|
||||
return message;
|
||||
}
|
||||
@Override
|
||||
public Object entityMessage(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return ((Counter.EntityEnvelope) message).payload;
|
||||
else return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String shardId(Object message) {
|
||||
int numberOfShards = 100;
|
||||
if (message instanceof Counter.EntityEnvelope) {
|
||||
long id = ((Counter.EntityEnvelope) message).id;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else if (message instanceof Counter.Get) {
|
||||
long id = ((Counter.Get) message).counterId;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public String shardId(Object message) {
|
||||
int numberOfShards = 100;
|
||||
if (message instanceof Counter.EntityEnvelope) {
|
||||
long id = ((Counter.EntityEnvelope) message).id;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else if (message instanceof Counter.Get) {
|
||||
long id = ((Counter.Get) message).counterId;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
// #counter-extractor
|
||||
|
||||
};
|
||||
//#counter-extractor
|
||||
|
||||
//#counter-start
|
||||
// #counter-start
|
||||
Option<String> roleOption = Option.none();
|
||||
ClusterShardingSettings settings = ClusterShardingSettings.create(system);
|
||||
ActorRef startedCounterRegion = ClusterSharding.get(system).start("Counter",
|
||||
Props.create(Counter.class), settings, messageExtractor);
|
||||
//#counter-start
|
||||
ActorRef startedCounterRegion =
|
||||
ClusterSharding.get(system)
|
||||
.start("Counter", Props.create(Counter.class), settings, messageExtractor);
|
||||
// #counter-start
|
||||
|
||||
//#counter-usage
|
||||
// #counter-usage
|
||||
ActorRef counterRegion = ClusterSharding.get(system).shardRegion("Counter");
|
||||
counterRegion.tell(new Counter.Get(123), getSelf());
|
||||
|
||||
counterRegion.tell(new Counter.EntityEnvelope(123,
|
||||
Counter.CounterOp.INCREMENT), getSelf());
|
||||
counterRegion.tell(new Counter.EntityEnvelope(123, Counter.CounterOp.INCREMENT), getSelf());
|
||||
counterRegion.tell(new Counter.Get(123), getSelf());
|
||||
//#counter-usage
|
||||
// #counter-usage
|
||||
|
||||
//#counter-supervisor-start
|
||||
ClusterSharding.get(system).start("SupervisedCounter",
|
||||
Props.create(CounterSupervisor.class), settings, messageExtractor);
|
||||
//#counter-supervisor-start
|
||||
// #counter-supervisor-start
|
||||
ClusterSharding.get(system)
|
||||
.start(
|
||||
"SupervisedCounter", Props.create(CounterSupervisor.class), settings, messageExtractor);
|
||||
// #counter-supervisor-start
|
||||
|
||||
//#proxy-dc
|
||||
// #proxy-dc
|
||||
ActorRef counterProxyDcB =
|
||||
ClusterSharding.get(system).startProxy(
|
||||
"Counter",
|
||||
Optional.empty(),
|
||||
Optional.of("B"), // data center name
|
||||
messageExtractor);
|
||||
//#proxy-dc
|
||||
ClusterSharding.get(system)
|
||||
.startProxy(
|
||||
"Counter",
|
||||
Optional.empty(),
|
||||
Optional.of("B"), // data center name
|
||||
messageExtractor);
|
||||
// #proxy-dc
|
||||
}
|
||||
|
||||
public void demonstrateUsage2() {
|
||||
ShardRegion.MessageExtractor messageExtractor = new ShardRegion.MessageExtractor() {
|
||||
ShardRegion.MessageExtractor messageExtractor =
|
||||
new ShardRegion.MessageExtractor() {
|
||||
|
||||
@Override
|
||||
public String entityId(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return String.valueOf(((Counter.EntityEnvelope) message).id);
|
||||
else if (message instanceof Counter.Get)
|
||||
return String.valueOf(((Counter.Get) message).counterId);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public String entityId(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return String.valueOf(((Counter.EntityEnvelope) message).id);
|
||||
else if (message instanceof Counter.Get)
|
||||
return String.valueOf(((Counter.Get) message).counterId);
|
||||
else return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object entityMessage(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return ((Counter.EntityEnvelope) message).payload;
|
||||
else
|
||||
return message;
|
||||
}
|
||||
@Override
|
||||
public Object entityMessage(Object message) {
|
||||
if (message instanceof Counter.EntityEnvelope)
|
||||
return ((Counter.EntityEnvelope) message).payload;
|
||||
else return message;
|
||||
}
|
||||
|
||||
//#extractShardId-StartEntity
|
||||
@Override
|
||||
public String shardId(Object message) {
|
||||
int numberOfShards = 100;
|
||||
if (message instanceof Counter.EntityEnvelope) {
|
||||
long id = ((Counter.EntityEnvelope) message).id;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else if (message instanceof Counter.Get) {
|
||||
long id = ((Counter.Get) message).counterId;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else if (message instanceof ShardRegion.StartEntity) {
|
||||
long id = Long.valueOf(((ShardRegion.StartEntity) message).entityId());
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
//#extractShardId-StartEntity
|
||||
// #extractShardId-StartEntity
|
||||
@Override
|
||||
public String shardId(Object message) {
|
||||
int numberOfShards = 100;
|
||||
if (message instanceof Counter.EntityEnvelope) {
|
||||
long id = ((Counter.EntityEnvelope) message).id;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else if (message instanceof Counter.Get) {
|
||||
long id = ((Counter.Get) message).counterId;
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else if (message instanceof ShardRegion.StartEntity) {
|
||||
long id = Long.valueOf(((ShardRegion.StartEntity) message).entityId());
|
||||
return String.valueOf(id % numberOfShards);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// #extractShardId-StartEntity
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
static//#counter-actor
|
||||
public class Counter extends AbstractPersistentActor {
|
||||
public // #counter-actor
|
||||
static class Counter extends AbstractPersistentActor {
|
||||
|
||||
public enum CounterOp {
|
||||
INCREMENT, DECREMENT
|
||||
INCREMENT,
|
||||
DECREMENT
|
||||
}
|
||||
|
||||
public static class Get {
|
||||
final public long counterId;
|
||||
public final long counterId;
|
||||
|
||||
public Get(long counterId) {
|
||||
this.counterId = counterId;
|
||||
|
|
@ -169,8 +168,8 @@ public class ClusterShardingTest {
|
|||
}
|
||||
|
||||
public static class EntityEnvelope {
|
||||
final public long id;
|
||||
final public Object payload;
|
||||
public final long id;
|
||||
public final Object payload;
|
||||
|
||||
public EntityEnvelope(long id, Object payload) {
|
||||
this.id = id;
|
||||
|
|
@ -179,7 +178,7 @@ public class ClusterShardingTest {
|
|||
}
|
||||
|
||||
public static class CounterChanged {
|
||||
final public int delta;
|
||||
public final int delta;
|
||||
|
||||
public CounterChanged(int delta) {
|
||||
this.delta = delta;
|
||||
|
|
@ -206,19 +205,17 @@ public class ClusterShardingTest {
|
|||
|
||||
@Override
|
||||
public Receive createReceiveRecover() {
|
||||
return receiveBuilder()
|
||||
.match(CounterChanged.class, this::updateState)
|
||||
.build();
|
||||
return receiveBuilder().match(CounterChanged.class, this::updateState).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Receive createReceive() {
|
||||
return receiveBuilder()
|
||||
.match(Get.class, this::receiveGet)
|
||||
.matchEquals(CounterOp.INCREMENT, msg -> receiveIncrement())
|
||||
.matchEquals(CounterOp.DECREMENT, msg -> receiveDecrement())
|
||||
.matchEquals(ReceiveTimeout.getInstance(), msg -> passivate())
|
||||
.build();
|
||||
.match(Get.class, this::receiveGet)
|
||||
.matchEquals(CounterOp.INCREMENT, msg -> receiveIncrement())
|
||||
.matchEquals(CounterOp.DECREMENT, msg -> receiveDecrement())
|
||||
.matchEquals(ReceiveTimeout.getInstance(), msg -> passivate())
|
||||
.build();
|
||||
}
|
||||
|
||||
private void receiveGet(Get msg) {
|
||||
|
|
@ -234,26 +231,25 @@ public class ClusterShardingTest {
|
|||
}
|
||||
|
||||
private void passivate() {
|
||||
getContext().getParent().tell(
|
||||
new ShardRegion.Passivate(PoisonPill.getInstance()), getSelf());
|
||||
getContext().getParent().tell(new ShardRegion.Passivate(PoisonPill.getInstance()), getSelf());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//#counter-actor
|
||||
// #counter-actor
|
||||
|
||||
static//#supervisor
|
||||
public class CounterSupervisor extends AbstractActor {
|
||||
public // #supervisor
|
||||
static class CounterSupervisor extends AbstractActor {
|
||||
|
||||
private final ActorRef counter = getContext().actorOf(
|
||||
Props.create(Counter.class), "theCounter");
|
||||
private final ActorRef counter =
|
||||
getContext().actorOf(Props.create(Counter.class), "theCounter");
|
||||
|
||||
private static final SupervisorStrategy strategy =
|
||||
new OneForOneStrategy(DeciderBuilder.
|
||||
match(IllegalArgumentException.class, e -> SupervisorStrategy.resume()).
|
||||
match(ActorInitializationException.class, e -> SupervisorStrategy.stop()).
|
||||
match(Exception.class, e -> SupervisorStrategy.restart()).
|
||||
matchAny(o -> SupervisorStrategy.escalate()).build());
|
||||
new OneForOneStrategy(
|
||||
DeciderBuilder.match(IllegalArgumentException.class, e -> SupervisorStrategy.resume())
|
||||
.match(ActorInitializationException.class, e -> SupervisorStrategy.stop())
|
||||
.match(Exception.class, e -> SupervisorStrategy.restart())
|
||||
.matchAny(o -> SupervisorStrategy.escalate())
|
||||
.build());
|
||||
|
||||
@Override
|
||||
public SupervisorStrategy supervisorStrategy() {
|
||||
|
|
@ -263,11 +259,10 @@ public class ClusterShardingTest {
|
|||
@Override
|
||||
public Receive createReceive() {
|
||||
return receiveBuilder()
|
||||
.match(Object.class, msg -> counter.forward(msg, getContext()))
|
||||
.build();
|
||||
.match(Object.class, msg -> counter.forward(msg, getContext()))
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
//#supervisor
|
||||
// #supervisor
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue