Example usage for org.springframework.statemachine.recipes.tasks TasksHandler resetFromPersistStore

List of usage examples for org.springframework.statemachine.recipes.tasks TasksHandler resetFromPersistStore

Introduction

In this page you can find the example usage for org.springframework.statemachine.recipes.tasks TasksHandler resetFromPersistStore.

Prototype

public void resetFromPersistStore() 

Source Link

Document

Resets state machine states from a backing persistent repository.

Usage

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

@Test
public void testReset1() throws InterruptedException {
    TestStateMachinePersist persist = new TestStateMachinePersist();
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);/*from w  ww. ja va  2  s  .c  o  m*/
    handler.resetFromPersistStore();
    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));
}

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

@Test
public void testReset2() throws InterruptedException {
    DefaultStateMachineContext<String, String> child = new DefaultStateMachineContext<String, String>("MANUAL",
            null, null, null);// www.  j av a2s . c om
    List<StateMachineContext<String, String>> childs = new ArrayList<StateMachineContext<String, String>>();
    childs.add(child);
    DefaultStateMachineContext<String, String> context = new DefaultStateMachineContext<String, String>(childs,
            "ERROR", null, null, null);
    TestStateMachinePersist persist = new TestStateMachinePersist(context);
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);

    handler.resetFromPersistStore();

    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));
    assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_ERROR, TasksHandler.STATE_MANUAL));
}

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

@Test
public void testReset3() throws InterruptedException {
    log.info("testReset3 start");
    List<StateMachineContext<String, String>> childs = new ArrayList<StateMachineContext<String, String>>();
    DefaultStateMachineContext<String, String> context = new DefaultStateMachineContext<String, String>(childs,
            "ERROR", null, null, null);
    TestStateMachinePersist persist = new TestStateMachinePersist(context);
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    listener.reset(2, 0, 0);/*from www .j a v a 2 s. c o  m*/
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);

    handler.resetFromPersistStore();

    log.info("testReset3 wait stateMachineStartedLatch");
    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));

    log.info("testReset3 wait stateChangedLatch");
    assertThat(listener.stateChangedLatch.await(4, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(2));
    assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_READY));
}

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

public void testReset4() throws InterruptedException {
    // TODO: automaticAction() is not executed when state is reset
    DefaultStateMachineContext<String, String> child = new DefaultStateMachineContext<String, String>(
            "AUTOMATIC", null, null, null);
    List<StateMachineContext<String, String>> childs = new ArrayList<StateMachineContext<String, String>>();
    childs.add(child);// ww  w  .j  a v  a 2 s  . c om
    DefaultStateMachineContext<String, String> context = new DefaultStateMachineContext<String, String>(childs,
            "ERROR", null, null, null);
    TestStateMachinePersist persist = new TestStateMachinePersist(context);
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    listener.reset(2, 0, 0);
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);

    handler.resetFromPersistStore();

    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));

    assertThat(listener.stateChangedLatch.await(4, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(2));
    assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_READY));
}