From f3ec6ff07265c5fba82e1d8acaa61e74ad79eb27 Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Fri, 11 Dec 2020 09:53:41 +0000 Subject: [PATCH] Remove StateMachineInterceptor deprecations - Forward port #905 - Fixes #906 --- .../config/AbstractStateMachineFactory.java | 14 +--- .../ensemble/DistributedStateMachine.java | 12 +--- .../support/StateMachineInterceptor.java | 25 ------- .../StateMachineInterceptorAdapter.java | 12 +--- .../support/StateMachineInterceptorList.java | 4 +- .../docs/DocsConfigurationSampleTests.java | 12 +--- .../statemachine/state/JoinStateTests.java | 7 +- .../support/StateChangeInterceptorTests.java | 71 +------------------ 8 files changed, 10 insertions(+), 147 deletions(-) diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/AbstractStateMachineFactory.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/AbstractStateMachineFactory.java index d452d0e7..d4f3c17f 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/AbstractStateMachineFactory.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/AbstractStateMachineFactory.java @@ -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. @@ -417,24 +417,12 @@ public abstract class AbstractStateMachineFactory extends LifecycleObjectS return interceptor.stateMachineError(stateMachine, exception); } - @Override - public void preStateChange(State state, Message message, Transition transition, - StateMachine stateMachine) { - interceptor.preStateChange(state, message, transition, stateMachine, rootStateMachine); - } - @Override public void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { interceptor.preStateChange(state, message, transition, stateMachine, rootStateMachine); } - @Override - public void postStateChange(State state, Message message, Transition transition, - StateMachine stateMachine) { - interceptor.postStateChange(state, message, transition, stateMachine, rootStateMachine); - } - @Override public void postStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java index c05fe357..f2200aca 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java @@ -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. @@ -196,11 +196,6 @@ public class DistributedStateMachine extends LifecycleObjectSupport implem return message; } - @Override - public void preStateChange(State state, Message message, Transition transition, - StateMachine stateMachine) { - } - @Override public void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { @@ -216,11 +211,6 @@ public class DistributedStateMachine extends LifecycleObjectSupport implem } } - @Override - public void postStateChange(State state, Message message, Transition transition, - StateMachine stateMachine) { - } - @Override public void postStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptor.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptor.java index 96d71fa5..0c46e0e5 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptor.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptor.java @@ -42,19 +42,6 @@ public interface StateMachineInterceptor { */ Message preEvent(Message message, StateMachine 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 state, Message message, Transition transition, - StateMachine 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 { void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine 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 state, Message message, Transition transition, - StateMachine stateMachine); - /** * Called after a state change. * diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorAdapter.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorAdapter.java index fb0f9c73..0af32e0d 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorAdapter.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorAdapter.java @@ -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 implements StateMachineInterce return message; } - @Override - public void preStateChange(State state, Message message, Transition transition, - StateMachine stateMachine) { - } - @Override public void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { } - @Override - public void postStateChange(State state, Message message, Transition transition, - StateMachine stateMachine) { - } - @Override public void postStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorList.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorList.java index dbe9f2f5..5d2190d3 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorList.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/StateMachineInterceptorList.java @@ -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. @@ -99,7 +99,6 @@ public class StateMachineInterceptorList { public void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { for (StateMachineInterceptor interceptor : interceptors) { - interceptor.preStateChange(state, message, transition, stateMachine); interceptor.preStateChange(state, message, transition, stateMachine, rootStateMachine); } } @@ -117,7 +116,6 @@ public class StateMachineInterceptorList { public void postStateChange(State state, Message message, Transition transition, StateMachine stateMachine, StateMachine rootStateMachine) { for (StateMachineInterceptor interceptor : interceptors) { - interceptor.postStateChange(state, message, transition, stateMachine); interceptor.postStateChange(state, message, transition, stateMachine, rootStateMachine); } } diff --git a/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests.java b/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests.java index 27a70aa5..422ef1b5 100644 --- a/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests.java +++ b/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests.java @@ -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. @@ -1321,11 +1321,6 @@ public class DocsConfigurationSampleTests extends AbstractStateMachineTests { return stateContext; } - @Override - public void preStateChange(State state, Message message, - Transition transition, StateMachine stateMachine) { - } - @Override public void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, @@ -1337,11 +1332,6 @@ public class DocsConfigurationSampleTests extends AbstractStateMachineTests { return stateContext; } - @Override - public void postStateChange(State state, Message message, - Transition transition, StateMachine stateMachine) { - } - @Override public void postStateChange(State state, Message message, Transition transition, StateMachine stateMachine, diff --git a/spring-statemachine-core/src/test/java/org/springframework/statemachine/state/JoinStateTests.java b/spring-statemachine-core/src/test/java/org/springframework/statemachine/state/JoinStateTests.java index 2366e866..154ced68 100644 --- a/spring-statemachine-core/src/test/java/org/springframework/statemachine/state/JoinStateTests.java +++ b/spring-statemachine-core/src/test/java/org/springframework/statemachine/state/JoinStateTests.java @@ -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. @@ -280,11 +280,12 @@ public class JoinStateTests extends AbstractStateMachineTests { machine.addStateMachineInterceptor(new StateMachineInterceptorAdapter() { @Override public void postStateChange(State state, Message message, - Transition transition, StateMachine stateMachine) { + Transition transition, StateMachine stateMachine, + StateMachine rootStateMachine) { if (state.getId() == TestStates.S4) { nullCheck.set(transition == null); } - super.postStateChange(state, message, transition, stateMachine); + super.postStateChange(state, message, transition, stateMachine, rootStateMachine); } }); diff --git a/spring-statemachine-core/src/test/java/org/springframework/statemachine/support/StateChangeInterceptorTests.java b/spring-statemachine-core/src/test/java/org/springframework/statemachine/support/StateChangeInterceptorTests.java index 9abf9edb..8ec2303b 100644 --- a/spring-statemachine-core/src/test/java/org/springframework/statemachine/support/StateChangeInterceptorTests.java +++ b/spring-statemachine-core/src/test/java/org/springframework/statemachine/support/StateChangeInterceptorTests.java @@ -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. @@ -83,8 +83,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { machine.sendEvent(Events.C); assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(3)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S0, States.S2, States.S21, States.S211)); @@ -122,8 +120,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S1)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); @@ -133,8 +129,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S2)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); @@ -144,8 +138,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S0)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); } @@ -179,8 +171,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S2)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); } @@ -214,13 +204,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S2)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); - assertThat(interceptor.postStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.postStateChangeCount1, is(1)); - assertThat(interceptor.preStateChangeStates1.size(), is(1)); - assertThat(interceptor.postStateChangeStates1.size(), is(1)); - assertThat(interceptor.preStateChangeStates1.get(0).getId(), is(interceptor.postStateChangeStates1.get(0).getId())); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); assertThat(interceptor.postStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); @@ -259,13 +242,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S3)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); - assertThat(interceptor.postStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.postStateChangeCount1, is(1)); - assertThat(interceptor.preStateChangeStates1.size(), is(1)); - assertThat(interceptor.postStateChangeStates1.size(), is(1)); - assertThat(interceptor.preStateChangeStates1.get(0).getId(), is(interceptor.postStateChangeStates1.get(0).getId())); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); assertThat(interceptor.postStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); @@ -304,8 +280,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S1)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); @@ -315,8 +289,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S2)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(1)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(1)); } @@ -350,23 +322,10 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(2)); assertThat(machine.getState().getIds(), containsInAnyOrder(States.S2)); - assertThat(interceptor.preStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.preStateChangeCount1, is(2)); assertThat(interceptor.preStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.preStateChangeCount2, is(2)); - assertThat(interceptor.postStateChangeLatch1.await(2, TimeUnit.SECONDS), is(true)); - assertThat(interceptor.postStateChangeCount1, is(2)); assertThat(interceptor.postStateChangeLatch2.await(2, TimeUnit.SECONDS), is(true)); assertThat(interceptor.postStateChangeCount2, is(2)); - - assertThat(interceptor.preStateChangeStates1.size(), is(2)); - assertThat(interceptor.postStateChangeStates1.size(), is(2)); - - assertThat(interceptor.preStateChangeStates1.get(0).getId(), is(States.S1)); - assertThat(interceptor.preStateChangeStates1.get(1).getId(), is(States.S2)); - - assertThat(interceptor.postStateChangeStates1.get(0).getId(), is(States.S1)); - assertThat(interceptor.postStateChangeStates1.get(1).getId(), is(States.S2)); } @Configuration @@ -718,17 +677,11 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { private static class TestStateChangeInterceptor implements StateMachineInterceptor { - 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> preStateChangeStates1 = new ArrayList<>(); ArrayList> preStateChangeStates2 = new ArrayList<>(); - ArrayList> postStateChangeStates1 = new ArrayList<>(); ArrayList> postStateChangeStates2 = new ArrayList<>(); @Override @@ -736,14 +689,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { return message; } - @Override - public void preStateChange(State state, Message message, - Transition transition, StateMachine stateMachine) { - preStateChangeStates1.add(state); - preStateChangeCount1++; - preStateChangeLatch1.countDown(); - } - @Override public void preStateChange(State state, Message message, Transition transition, StateMachine stateMachine, @@ -753,14 +698,6 @@ public class StateChangeInterceptorTests extends AbstractStateMachineTests { preStateChangeLatch2.countDown(); } - @Override - public void postStateChange(State state, Message message, - Transition transition, StateMachine stateMachine) { - postStateChangeStates1.add(state); - postStateChangeCount1++; - postStateChangeLatch1.countDown(); - } - @Override public void postStateChange(State state, Message message, Transition transition, StateMachine stateMachine, @@ -781,17 +718,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(); }