Skip to content

Commit 40c8fd3

Browse files
committed
rename FaultContext to ScenarioContext, remove Exception from handleMessage
1 parent f8f0061 commit 40c8fd3

File tree

66 files changed

+324
-348
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+324
-348
lines changed

simulator/src/main/java/byzzbench/simulator/BaseScenario.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import byzzbench.simulator.config.ByzzBenchConfig;
44
import byzzbench.simulator.faults.Fault;
5-
import byzzbench.simulator.faults.FaultContext;
5+
import byzzbench.simulator.faults.ScenarioContext;
66
import byzzbench.simulator.faults.factories.ByzzFuzzScenarioFaultFactory;
77
import byzzbench.simulator.faults.faults.GlobalStabilizationTimeFault;
88
import byzzbench.simulator.faults.faults.HealNodeNetworkFault;
@@ -198,7 +198,7 @@ public final void loadParameters(JsonNode parameters) {
198198
if (parameters.has("faults")) {
199199
System.out.println("Faults: " + parameters.get("faults").toPrettyString());
200200
ByzzFuzzScenarioFaultFactory faultFactory = new ByzzFuzzScenarioFaultFactory();
201-
List<Fault> faults = faultFactory.generateFaults(new FaultContext(this));
201+
List<Fault> faults = faultFactory.generateFaults(new ScenarioContext(this));
202202
faults.forEach(fault -> this.transport.addFault(fault, true));
203203
}
204204

simulator/src/main/java/byzzbench/simulator/Node.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public interface Node extends Serializable {
2727
* @param message the message payload
2828
* @throws Exception if an error occurs while handling the message
2929
*/
30-
void handleMessage(String sender, MessagePayload message) throws Exception;
31-
30+
void handleMessage(String sender, MessagePayload message);
31+
3232
/**
3333
* Get the current time from the timekeeper.
3434
*/

simulator/src/main/java/byzzbench/simulator/faults/BaseFault.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ public String getName() {
1919
}
2020

2121
@Override
22-
public boolean test(FaultContext state) {
22+
public boolean test(ScenarioContext state) {
2323
return predicate.test(state);
2424
}
2525

2626
@Override
27-
public void accept(FaultContext state) {
27+
public void accept(ScenarioContext state) {
2828
behavior.accept(state);
2929
}
3030
}

simulator/src/main/java/byzzbench/simulator/faults/Fault.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* which checks if the fault can be applied to a message, and a {@link Consumer}, which
1212
* applies the faulty behavior.
1313
*/
14-
public interface Fault extends Predicate<FaultContext>, FaultBehavior, Serializable {
14+
public interface Fault extends Predicate<ScenarioContext>, FaultBehavior, Serializable {
1515
/**
1616
* Gets the unique id of the fault.
1717
*
@@ -35,23 +35,23 @@ public interface Fault extends Predicate<FaultContext>, FaultBehavior, Serializa
3535
* @return True if the fault can be applied, false otherwise
3636
*/
3737
@Override
38-
boolean test(FaultContext state);
38+
boolean test(ScenarioContext state);
3939

4040
/**
4141
* Applies a fault to the state of the system
4242
*
4343
* @param state the state of the system
4444
*/
4545
@Override
46-
void accept(FaultContext state);
46+
void accept(ScenarioContext state);
4747

4848
/**
4949
* Checks if the fault can be applied to the given state and applies it if it can
5050
*
5151
* @param state the state of the system
5252
* @return True if the fault was applied, false otherwise
5353
*/
54-
default boolean testAndAccept(FaultContext state) {
54+
default boolean testAndAccept(ScenarioContext state) {
5555
if (test(state)) {
5656
accept(state);
5757
return true;

simulator/src/main/java/byzzbench/simulator/faults/FaultBehavior.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import java.io.Serializable;
66
import java.util.function.Consumer;
77

8-
public interface FaultBehavior extends Consumer<FaultContext>, Serializable {
9-
@NonNull String getId();
10-
@NonNull String getName();
8+
public interface FaultBehavior extends Consumer<ScenarioContext>, Serializable {
9+
@NonNull
10+
String getId();
11+
12+
@NonNull
13+
String getName();
1114
}

simulator/src/main/java/byzzbench/simulator/faults/FaultFactory.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ default String getId() {
77
return this.getClass().getSimpleName();
88
}
99

10-
List<Fault> generateFaults(FaultContext input);
10+
List<Fault> generateFaults(ScenarioContext input);
1111
}

simulator/src/main/java/byzzbench/simulator/faults/FaultPredicate.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.io.Serializable;
66
import java.util.function.Predicate;
77

8-
public interface FaultPredicate extends Predicate<FaultContext>, Serializable {
8+
public interface FaultPredicate extends Predicate<ScenarioContext>, Serializable {
99
String getId();
1010

1111
String getName();
@@ -29,7 +29,7 @@ public String getName() {
2929
}
3030

3131
@Override
32-
public boolean test(FaultContext ctx) {
32+
public boolean test(ScenarioContext ctx) {
3333
return FaultPredicate.this.test(ctx) && other.test(ctx);
3434
}
3535
};
@@ -54,7 +54,7 @@ public String getName() {
5454
}
5555

5656
@Override
57-
public boolean test(FaultContext ctx) {
57+
public boolean test(ScenarioContext ctx) {
5858
return FaultPredicate.this.test(ctx) || other.test(ctx);
5959
}
6060
};
@@ -79,7 +79,7 @@ public String getName() {
7979
}
8080

8181
@Override
82-
public boolean test(FaultContext ctx) {
82+
public boolean test(ScenarioContext ctx) {
8383
return !FaultPredicate.this.test(ctx);
8484
}
8585
};

simulator/src/main/java/byzzbench/simulator/faults/FaultContext.java simulator/src/main/java/byzzbench/simulator/faults/ScenarioContext.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* This is useful for example for fault injection, where the fault context can be used to determine
1313
* if a fault should be injected or not and to offer a mechanism to apply its behavior.
1414
*/
15-
public class FaultContext {
15+
public class ScenarioContext {
1616
/**
1717
* The scenario that is being processed.
1818
*/
@@ -31,7 +31,7 @@ public class FaultContext {
3131
* @param scenario The scenario that is being processed.
3232
* @param event The event that is being processed.
3333
*/
34-
public FaultContext(@NonNull Scenario scenario, Event event) {
34+
public ScenarioContext(@NonNull Scenario scenario, Event event) {
3535
this.scenario = scenario;
3636
this.eventOptional = event;
3737
}
@@ -41,7 +41,7 @@ public FaultContext(@NonNull Scenario scenario, Event event) {
4141
*
4242
* @param scenario The scenario that is being processed.
4343
*/
44-
public FaultContext(@NonNull Scenario scenario) {
44+
public ScenarioContext(@NonNull Scenario scenario) {
4545
this(scenario, null);
4646
}
4747

simulator/src/main/java/byzzbench/simulator/faults/behaviors/ByzzFuzzDropMessageBehavior.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.behaviors;
22

33
import byzzbench.simulator.faults.FaultBehavior;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55
import byzzbench.simulator.transport.Event;
66
import byzzbench.simulator.transport.MessageEvent;
77
import byzzbench.simulator.transport.Router;
@@ -78,7 +78,7 @@ public String getName() {
7878
}
7979

8080
@Override
81-
public void accept(FaultContext context) {
81+
public void accept(ScenarioContext context) {
8282
Optional<Event> event = context.getEvent();
8383

8484
if (event.isEmpty()) {
@@ -102,7 +102,7 @@ public void accept(FaultContext context) {
102102
}
103103

104104
// otherwise, drop the message: the sender and recipient are in different partitions
105-
if(e.getStatus() == Event.Status.QUEUED) {
105+
if (e.getStatus() == Event.Status.QUEUED) {
106106
context.getScenario().getTransport().dropEvent(e.getEventId());
107107
}
108108
}

simulator/src/main/java/byzzbench/simulator/faults/behaviors/CreateNetworkPartitionsBehavior.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.behaviors;
22

33
import byzzbench.simulator.faults.FaultBehavior;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55
import byzzbench.simulator.transport.Router;
66

77
import java.util.Arrays;
@@ -62,7 +62,7 @@ public String getName() {
6262
}
6363

6464
@Override
65-
public void accept(FaultContext context) {
65+
public void accept(ScenarioContext context) {
6666
Router router = context.getScenario().getTransport().getRouter();
6767
for (String[] partition : partitions) {
6868
router.isolateNodes(partition);

simulator/src/main/java/byzzbench/simulator/faults/behaviors/GlobalStabilizationTimeBehavior.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.behaviors;
22

33
import byzzbench.simulator.faults.FaultBehavior;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55

66
public class GlobalStabilizationTimeBehavior implements FaultBehavior {
77
@Override
@@ -15,7 +15,7 @@ public String getName() {
1515
}
1616

1717
@Override
18-
public void accept(FaultContext ctx) {
18+
public void accept(ScenarioContext ctx) {
1919
ctx.getScenario().getTransport().globalStabilizationTime();
2020
}
2121
}

simulator/src/main/java/byzzbench/simulator/faults/behaviors/IsolateNodeBehavior.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.behaviors;
22

33
import byzzbench.simulator.faults.FaultBehavior;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55
import byzzbench.simulator.transport.Router;
66
import lombok.RequiredArgsConstructor;
77

@@ -20,7 +20,7 @@ public String getName() {
2020
}
2121

2222
@Override
23-
public void accept(FaultContext context) {
23+
public void accept(ScenarioContext context) {
2424
Router router = context.getScenario().getTransport().getRouter();
2525
router.isolateNode(nodeId);
2626
}

simulator/src/main/java/byzzbench/simulator/faults/behaviors/MutateMessageBehavior.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import byzzbench.simulator.ApplicationContextUtils;
44
import byzzbench.simulator.faults.FaultBehavior;
5-
import byzzbench.simulator.faults.FaultContext;
5+
import byzzbench.simulator.faults.ScenarioContext;
66
import byzzbench.simulator.faults.faults.MessageMutationFault;
77
import byzzbench.simulator.service.MessageMutatorService;
88
import byzzbench.simulator.transport.Event;
@@ -37,7 +37,7 @@ public String getName() {
3737
}
3838

3939
@Override
40-
public void accept(FaultContext context) {
40+
public void accept(ScenarioContext context) {
4141
Optional<Event> event = context.getEvent();
4242

4343
if (event.isEmpty()) {

simulator/src/main/java/byzzbench/simulator/faults/factories/ByzzFuzzScenarioFaultFactory.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import byzzbench.simulator.Scenario;
44
import byzzbench.simulator.faults.Fault;
5-
import byzzbench.simulator.faults.FaultContext;
65
import byzzbench.simulator.faults.FaultFactory;
6+
import byzzbench.simulator.faults.ScenarioContext;
77
import byzzbench.simulator.faults.faults.ByzzFuzzNetworkFault;
88
import byzzbench.simulator.faults.faults.ByzzFuzzProcessFault;
99
import byzzbench.simulator.scheduler.ByzzFuzzScheduler;
@@ -25,7 +25,7 @@ public class ByzzFuzzScenarioFaultFactory implements FaultFactory {
2525
private final Random rand = new Random();
2626

2727
@Override
28-
public List<Fault> generateFaults(FaultContext input) {
28+
public List<Fault> generateFaults(ScenarioContext input) {
2929
List<Fault> faults = new ArrayList<>();
3030
Scenario scenario = input.getScenario();
3131

simulator/src/main/java/byzzbench/simulator/faults/factories/IsolateProcessNetworkFaultFactory.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import byzzbench.simulator.Replica;
44
import byzzbench.simulator.faults.Fault;
5-
import byzzbench.simulator.faults.FaultContext;
65
import byzzbench.simulator.faults.FaultFactory;
6+
import byzzbench.simulator.faults.ScenarioContext;
77
import byzzbench.simulator.faults.faults.HealNetworkFault;
88
import byzzbench.simulator.faults.faults.HealNodeNetworkFault;
99
import byzzbench.simulator.faults.faults.IsolateProcessNetworkFault;
@@ -19,7 +19,7 @@
1919
@Component
2020
public class IsolateProcessNetworkFaultFactory implements FaultFactory {
2121
@Override
22-
public List<Fault> generateFaults(FaultContext input) {
22+
public List<Fault> generateFaults(ScenarioContext input) {
2323
List<Fault> networkFaults = new ArrayList<>();
2424

2525
// create a IsolateProcessNetworkFault for each replica in the network

simulator/src/main/java/byzzbench/simulator/faults/faults/HealNetworkFault.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.faults;
22

33
import byzzbench.simulator.faults.Fault;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55
import byzzbench.simulator.transport.Router;
66
import lombok.Getter;
77
import lombok.RequiredArgsConstructor;
@@ -29,7 +29,7 @@ public String getName() {
2929
* @return True if the network is not already healed, false otherwise
3030
*/
3131
@Override
32-
public final boolean test(FaultContext ctx) {
32+
public final boolean test(ScenarioContext ctx) {
3333
Router router = ctx.getScenario().getTransport().getRouter();
3434
return router.hasActivePartitions();
3535
}
@@ -40,7 +40,7 @@ public final boolean test(FaultContext ctx) {
4040
* @param state the input argument
4141
*/
4242
@Override
43-
public void accept(FaultContext state) {
43+
public void accept(ScenarioContext state) {
4444
Router router = state.getScenario().getTransport().getRouter();
4545
router.resetPartitions();
4646
}

simulator/src/main/java/byzzbench/simulator/faults/faults/HealNodeNetworkFault.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.faults;
22

33
import byzzbench.simulator.faults.Fault;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55
import byzzbench.simulator.transport.Router;
66
import byzzbench.simulator.utils.NonNull;
77
import lombok.Getter;
@@ -33,7 +33,7 @@ public String getName() {
3333
* @return True if the specific node is not in the default partition, false otherwise
3434
*/
3535
@Override
36-
public final boolean test(FaultContext ctx) {
36+
public final boolean test(ScenarioContext ctx) {
3737
Router router = ctx.getScenario().getTransport().getRouter();
3838
return router.getNodePartition(nodeId) != Router.DEFAULT_PARTITION;
3939
}
@@ -44,7 +44,7 @@ public final boolean test(FaultContext ctx) {
4444
* @param state the input argument
4545
*/
4646
@Override
47-
public void accept(FaultContext state) {
47+
public void accept(ScenarioContext state) {
4848
Router router = state.getScenario().getTransport().getRouter();
4949
router.healNode(nodeId);
5050
}

simulator/src/main/java/byzzbench/simulator/faults/faults/IsolateProcessNetworkFault.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import byzzbench.simulator.faults.BaseFault;
44
import byzzbench.simulator.faults.behaviors.IsolateNodeBehavior;
5+
import byzzbench.simulator.faults.predicates.ANDPredicate;
6+
import byzzbench.simulator.faults.predicates.IsBeforeGST;
57
import byzzbench.simulator.faults.predicates.NodeInPartitionPredicate;
68
import byzzbench.simulator.transport.Router;
79

@@ -15,7 +17,7 @@
1517
public class IsolateProcessNetworkFault extends BaseFault {
1618
public IsolateProcessNetworkFault(String nodeId) {
1719
super("IsolateProcessNetworkFault-%s".formatted(nodeId),
18-
new NodeInPartitionPredicate(nodeId, Router.DEFAULT_PARTITION),
20+
new ANDPredicate(new IsBeforeGST(), new NodeInPartitionPredicate(nodeId, Router.DEFAULT_PARTITION)),
1921
new IsolateNodeBehavior(nodeId));
2022
}
2123
}

simulator/src/main/java/byzzbench/simulator/faults/faults/MessageMutationFault.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package byzzbench.simulator.faults.faults;
22

33
import byzzbench.simulator.faults.Fault;
4-
import byzzbench.simulator.faults.FaultContext;
4+
import byzzbench.simulator.faults.ScenarioContext;
55
import byzzbench.simulator.transport.Event;
66
import byzzbench.simulator.transport.MessageEvent;
77
import byzzbench.simulator.utils.NonNull;
@@ -52,7 +52,7 @@ public boolean canMutate(Serializable target) {
5252
* @return True if the message can be mutated by this mutator, false otherwise
5353
*/
5454
@Override
55-
public final boolean test(FaultContext ctx) {
55+
public final boolean test(ScenarioContext ctx) {
5656
Optional<Event> event = ctx.getEvent();
5757
return event.isPresent()
5858
&& event.get() instanceof MessageEvent messageEvent

0 commit comments

Comments
 (0)