Remove StateMachineInterceptor deprecations

- Forward port #906
- Fixes #907
This commit is contained in:
Janne Valkealahti
2020-12-11 09:53:41 +00:00
parent 103eedf80c
commit ee348d592f
8 changed files with 8 additions and 144 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2019 the original author or authors.
* Copyright 2015-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -393,24 +393,12 @@ public abstract class AbstractStateMachineFactory<S, E> extends LifecycleObjectS
return interceptor.stateMachineError(stateMachine, exception);
}
@Override
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine) {
interceptor.preStateChange(state, message, transition, stateMachine, rootStateMachine);
}
@Override
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {
interceptor.preStateChange(state, message, transition, stateMachine, rootStateMachine);
}
@Override
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine) {
interceptor.postStateChange(state, message, transition, stateMachine, rootStateMachine);
}
@Override
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2019 the original author or authors.
* Copyright 2015-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -214,11 +214,6 @@ public class DistributedStateMachine<S, E> extends LifecycleObjectSupport implem
return message;
}
@Override
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine) {
}
@Override
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {
@@ -234,11 +229,6 @@ public class DistributedStateMachine<S, E> extends LifecycleObjectSupport implem
}
}
@Override
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine) {
}
@Override
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {

View File

@@ -42,19 +42,6 @@ public interface StateMachineInterceptor<S, E> {
*/
Message<E> preEvent(Message<E> message, StateMachine<S, E> stateMachine);
/**
* Called prior of a state change. Throwing an exception
* from this method will stop a state change logic.
*
* @param state the state
* @param message the message
* @param transition the transition
* @param stateMachine the state machine
* @deprecated in favour of {@link #preStateChange(State, Message, Transition, StateMachine, StateMachine)}
*/
void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine);
/**
* Called prior of a state change. Throwing an exception
* from this method will stop a state change logic.
@@ -68,18 +55,6 @@ public interface StateMachineInterceptor<S, E> {
void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine);
/**
* Called after a state change.
*
* @param state the state
* @param message the message
* @param transition the transition
* @param stateMachine the state machine
* @deprecated in favour of {@link #postStateChange(State, Message, Transition, StateMachine, StateMachine)}
*/
void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine);
/**
* Called after a state change.
*

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2019 the original author or authors.
* Copyright 2015-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,21 +36,11 @@ public class StateMachineInterceptorAdapter<S, E> implements StateMachineInterce
return message;
}
@Override
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine) {
}
@Override
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {
}
@Override
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine) {
}
@Override
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2019 the original author or authors.
* Copyright 2015-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -100,7 +100,6 @@ public class StateMachineInterceptorList<S, E> {
public void preStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {
for (StateMachineInterceptor<S, E> interceptor : interceptors) {
interceptor.preStateChange(state, message, transition, stateMachine);
interceptor.preStateChange(state, message, transition, stateMachine, rootStateMachine);
}
}
@@ -118,7 +117,6 @@ public class StateMachineInterceptorList<S, E> {
public void postStateChange(State<S, E> state, Message<E> message, Transition<S, E> transition,
StateMachine<S, E> stateMachine, StateMachine<S, E> rootStateMachine) {
for (StateMachineInterceptor<S, E> interceptor : interceptors) {
interceptor.postStateChange(state, message, transition, stateMachine);
interceptor.postStateChange(state, message, transition, stateMachine, rootStateMachine);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2019 the original author or authors.
* Copyright 2015-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1328,11 +1328,6 @@ public class DocsConfigurationSampleTests extends AbstractStateMachineTests {
return stateContext;
}
@Override
public void preStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine) {
}
@Override
public void preStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine,
@@ -1344,11 +1339,6 @@ public class DocsConfigurationSampleTests extends AbstractStateMachineTests {
return stateContext;
}
@Override
public void postStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine) {
}
@Override
public void postStateChange(State<String, String> state, Message<String> message,
Transition<String, String> transition, StateMachine<String, String> stateMachine,

View File

@@ -276,11 +276,12 @@ public class JoinStateTests extends AbstractStateMachineTests {
machine.addStateMachineInterceptor(new StateMachineInterceptorAdapter<TestStates,TestEvents>() {
@Override
public void postStateChange(State<TestStates, TestEvents> state, Message<TestEvents> message,
Transition<TestStates, TestEvents> transition, StateMachine<TestStates, TestEvents> stateMachine) {
Transition<TestStates, TestEvents> transition, StateMachine<TestStates, TestEvents> stateMachine,
StateMachine<TestStates, TestEvents> rootStateMachine) {
if (state.getId() == TestStates.S4) {
nullCheck.set(transition == null);
}
super.postStateChange(state, message, transition, stateMachine);
super.postStateChange(state, message, transition, stateMachine, rootStateMachine);
}
});

View File

@@ -74,8 +74,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
doSendEventAndConsumeAll(machine, Events.C);
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(3);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S0, States.S2, States.S21, States.S211);
@@ -106,8 +104,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S1);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
@@ -117,8 +113,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S2);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
@@ -128,8 +122,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S0);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
}
@@ -156,8 +148,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S2);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
}
@@ -184,13 +174,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S2);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.postStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.postStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeStates1).hasSize(1);
assertThat(interceptor.postStateChangeStates1).hasSize(1);
assertThat(interceptor.preStateChangeStates1.get(0).getId()).isEqualTo(interceptor.postStateChangeStates1.get(0).getId());
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
assertThat(interceptor.postStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
@@ -222,13 +205,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S3);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.postStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.postStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeStates1).hasSize(1);
assertThat(interceptor.postStateChangeStates1).hasSize(1);
assertThat(interceptor.preStateChangeStates1.get(0).getId()).isEqualTo(interceptor.postStateChangeStates1.get(0).getId());
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
assertThat(interceptor.postStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
@@ -260,8 +236,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S1);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
@@ -271,8 +245,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(1);
assertThat(machine.getState().getIds()).containsOnly(States.S2);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(1);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(1);
}
@@ -299,23 +271,11 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(listener.stateChangedCount).isEqualTo(2);
assertThat(machine.getState().getIds()).containsOnly(States.S2);
assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount1).isEqualTo(2);
assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.preStateChangeCount2).isEqualTo(2);
assertThat(interceptor.postStateChangeLatch1.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.postStateChangeCount1).isEqualTo(2);
assertThat(interceptor.postStateChangeLatch2.await(2, TimeUnit.SECONDS)).isTrue();
assertThat(interceptor.postStateChangeCount2).isEqualTo(2);
assertThat(interceptor.preStateChangeStates1).hasSize(2);
assertThat(interceptor.postStateChangeStates1).hasSize(2);
assertThat(interceptor.preStateChangeStates1.get(0).getId()).isEqualTo(States.S1);
assertThat(interceptor.preStateChangeStates1.get(1).getId()).isEqualTo(States.S2);
assertThat(interceptor.postStateChangeStates1.get(0).getId()).isEqualTo(States.S1);
assertThat(interceptor.postStateChangeStates1.get(1).getId()).isEqualTo(States.S2);
}
@Configuration
@@ -667,17 +627,11 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
private static class TestStateChangeInterceptor implements StateMachineInterceptor<States, Events> {
volatile CountDownLatch preStateChangeLatch1 = new CountDownLatch(1);
volatile CountDownLatch preStateChangeLatch2 = new CountDownLatch(1);
volatile CountDownLatch postStateChangeLatch1 = new CountDownLatch(1);
volatile CountDownLatch postStateChangeLatch2 = new CountDownLatch(1);
volatile int preStateChangeCount1 = 0;
volatile int preStateChangeCount2 = 0;
volatile int postStateChangeCount1 = 0;
volatile int postStateChangeCount2 = 0;
ArrayList<State<States, Events>> preStateChangeStates1 = new ArrayList<>();
ArrayList<State<States, Events>> preStateChangeStates2 = new ArrayList<>();
ArrayList<State<States, Events>> postStateChangeStates1 = new ArrayList<>();
ArrayList<State<States, Events>> postStateChangeStates2 = new ArrayList<>();
@Override
@@ -685,14 +639,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
return message;
}
@Override
public void preStateChange(State<States, Events> state, Message<Events> message,
Transition<States, Events> transition, StateMachine<States, Events> stateMachine) {
preStateChangeStates1.add(state);
preStateChangeCount1++;
preStateChangeLatch1.countDown();
}
@Override
public void preStateChange(State<States, Events> state, Message<Events> message,
Transition<States, Events> transition, StateMachine<States, Events> stateMachine,
@@ -702,14 +648,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
preStateChangeLatch2.countDown();
}
@Override
public void postStateChange(State<States, Events> state, Message<Events> message,
Transition<States, Events> transition, StateMachine<States, Events> stateMachine) {
postStateChangeStates1.add(state);
postStateChangeCount1++;
postStateChangeLatch1.countDown();
}
@Override
public void postStateChange(State<States, Events> state, Message<Events> message,
Transition<States, Events> transition, StateMachine<States, Events> stateMachine,
@@ -730,17 +668,11 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests {
}
public void reset(int c1) {
preStateChangeLatch1 = new CountDownLatch(c1);
preStateChangeLatch2 = new CountDownLatch(c1);
preStateChangeCount1 = 0;
preStateChangeCount2 = 0;
postStateChangeLatch1 = new CountDownLatch(c1);
postStateChangeLatch2 = new CountDownLatch(c1);
postStateChangeCount1 = 0;
postStateChangeCount2 = 0;
preStateChangeStates1.clear();
preStateChangeStates2.clear();
postStateChangeStates1.clear();
postStateChangeStates2.clear();
}