Example usage for org.springframework.statemachine StateMachineSystemConstants DEFAULT_ID_STATEMACHINE

List of usage examples for org.springframework.statemachine StateMachineSystemConstants DEFAULT_ID_STATEMACHINE

Introduction

In this page you can find the example usage for org.springframework.statemachine StateMachineSystemConstants DEFAULT_ID_STATEMACHINE.

Prototype

String DEFAULT_ID_STATEMACHINE

To view the source code for org.springframework.statemachine StateMachineSystemConstants DEFAULT_ID_STATEMACHINE.

Click Source Link

Document

Default bean id for state machine.

Usage

From source file:org.zrgs.spring.statemachine.cdplayer.CdPlayerTest.java

@SuppressWarnings("unchecked")
@Before//from   w w  w  .ja va  2s. co  m
public void setup() throws Exception {
    context = new AnnotationConfigApplicationContext();
    context.register(CommonConfiguration.class, Application.class, TestConfig.class);
    context.refresh();
    machine = context.getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, ObjectStateMachine.class);
    player = context.getBean(CdPlayer.class);
    musicLibrary = context.getBean(MusicLibrary.class);
    listener = context.getBean(TestListener.class);
    machine.start();
    // lets do a little sleep to wait sm to start
    Thread.sleep(1000);
}

From source file:org.springframework.statemachine.listener.ListenerTests.java

@Test
public void testStateEvents() {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Config1.class);
    assertTrue(ctx.containsBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE));
    @SuppressWarnings("unchecked")
    ObjectStateMachine<TestStates, TestEvents> machine = ctx
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, ObjectStateMachine.class);
    machine.start();//from w ww. j  a  va 2s  .c  o  m

    TestStateMachineListener listener = new TestStateMachineListener();
    machine.addStateListener(listener);

    assertThat(machine, notNullValue());
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E1).setHeader("foo", "jee1").build());
    assertThat(listener.states.size(), is(1));
    assertThat(listener.states.get(0).from.getIds(), contains(TestStates.S1));
    assertThat(listener.states.get(0).to.getIds(), contains(TestStates.S2));
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E2).setHeader("foo", "jee2").build());
    assertThat(listener.states.size(), is(2));
    assertThat(listener.states.get(1).from.getIds(), contains(TestStates.S2));
    assertThat(listener.states.get(1).to.getIds(), contains(TestStates.S3));
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E4).setHeader("foo", "jee2").build());
    assertThat(listener.states.size(), is(2));

    ctx.close();
}

From source file:org.springframework.statemachine.listener.ListenerTests.java

@Test
public void testStartEndEvents() throws Exception {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Config2.class);
    assertTrue(ctx.containsBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE));
    @SuppressWarnings("unchecked")
    ObjectStateMachine<TestStates, TestEvents> machine = ctx
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, ObjectStateMachine.class);

    TestStateMachineListener listener = new TestStateMachineListener();
    machine.addStateListener(listener);/*from w w  w.ja  v  a2 s .co m*/

    machine.start();
    machine.sendEvent(TestEvents.E1);
    machine.sendEvent(TestEvents.E2);
    assertThat(listener.stopLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.started, is(1));
    assertThat(listener.stopped, is(1));
    ctx.close();
}

From source file:org.springframework.statemachine.listener.ListenerTests.java

@Test
public void testExtendedStateEvents() throws Exception {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Config2.class);
    assertTrue(ctx.containsBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE));
    @SuppressWarnings("unchecked")
    ObjectStateMachine<TestStates, TestEvents> machine = ctx
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, ObjectStateMachine.class);

    TestStateMachineListener listener = new TestStateMachineListener();
    machine.addStateListener(listener);//  w ww  .ja  v a  2 s .c o  m
    machine.start();

    machine.getExtendedState().getVariables().put("foo", "jee");
    assertThat(listener.extendedLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.extended.size(), is(1));
    assertThat(listener.extended.get(0).key, is("foo"));
    assertThat(listener.extended.get(0).value, is("jee"));
    ctx.close();
}

From source file:org.springframework.statemachine.StateMachineTests.java

@Test
public void testLoggingEvents() {
    context.register(Config1.class);
    context.refresh();//from  ww  w  . j a v  a  2 s  .co m
    assertTrue(context.containsBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE));
    @SuppressWarnings("unchecked")
    ObjectStateMachine<TestStates, TestEvents> machine = context
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, ObjectStateMachine.class);
    assertThat(machine, notNullValue());
    machine.start();
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E1).setHeader("foo", "jee1").build());
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E2).setHeader("foo", "jee2").build());
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E4).setHeader("foo", "jee2").build());
}

From source file:org.springframework.statemachine.StateMachineTests.java

@Test
public void testTimerTransition() throws Exception {
    context.register(BaseConfig.class, Config2.class);
    context.refresh();/*from w  ww.  j a  va 2  s.  c om*/

    TestAction testAction1 = context.getBean("testAction1", TestAction.class);
    TestAction testAction2 = context.getBean("testAction2", TestAction.class);
    TestAction testAction3 = context.getBean("testAction3", TestAction.class);
    TestAction testAction4 = context.getBean("testAction4", TestAction.class);

    @SuppressWarnings("unchecked")
    StateMachine<TestStates, TestEvents> machine = context
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, StateMachine.class);
    TestListener listener = new TestListener();
    machine.addStateListener(listener);
    listener.reset(1);
    machine.start();
    assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(1));
    assertThat(testAction2.stateContexts.size(), is(0));

    listener.reset(0, 1);
    machine.sendEvent(TestEvents.E1);
    assertThat(listener.transitionLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction1.onExecuteLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction1.stateContexts.size(), is(1));
    assertThat(testAction2.onExecuteLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction2.stateContexts.size(), is(1));

    listener.reset(0, 1);
    machine.sendEvent(TestEvents.E2);
    assertThat(listener.transitionLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction3.onExecuteLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction3.stateContexts.size(), is(1));

    // timer still fires but should not cause transition anymore
    // after we sleep and do next event
    int timedTriggered = testAction2.stateContexts.size();
    Thread.sleep(2000);
    assertThat(testAction2.stateContexts.size(), is(timedTriggered));

    listener.reset(0, 1);
    machine.sendEvent(TestEvents.E3);
    assertThat(listener.transitionLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction4.onExecuteLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(testAction4.stateContexts.size(), is(1));
    assertThat(testAction2.stateContexts.size(), is(timedTriggered));
}

From source file:org.springframework.statemachine.StateMachineTests.java

@Test
@SuppressWarnings("unchecked")
public void testForkJoin() throws Exception {
    context.register(BaseConfig.class, Config3.class);
    context.refresh();/*from  w w  w .  java2  s .c o m*/
    ObjectStateMachine<TestStates, TestEvents> machine = context
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, ObjectStateMachine.class);
    TestListener listener = new TestListener();
    machine.addStateListener(listener);

    assertThat(machine, notNullValue());

    listener.reset(1);
    machine.start();
    assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(1));
    assertThat(machine.getState().getIds(), contains(TestStates.SI));

    listener.reset(3);
    machine.sendEvent(TestEvents.E1);
    assertThat(listener.stateChangedLatch.await(3, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(3));
    assertThat(machine.getState().getIds(), containsInAnyOrder(TestStates.S2, TestStates.S20, TestStates.S30));

    listener.reset(1);
    machine.sendEvent(TestEvents.E2);
    assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(1));
    assertThat(machine.getState().getIds(), containsInAnyOrder(TestStates.S2, TestStates.S21, TestStates.S30));

    listener.reset(2);
    machine.sendEvent(TestEvents.E3);
    assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(2));
    assertThat(machine.getState().getIds(), containsInAnyOrder(TestStates.S4));
}

From source file:org.springframework.statemachine.StateMachineTests.java

@Test
public void testStringStatesAndEvents() throws Exception {
    context.register(Config4.class);
    context.refresh();//from   ww  w  .j  a v a2s  . co m
    assertTrue(context.containsBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE));
    @SuppressWarnings("unchecked")
    StateMachine<String, String> machine = context.getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE,
            StateMachine.class);

    TestListener2 listener = new TestListener2();
    machine.addStateListener(listener);

    assertThat(machine, notNullValue());
    machine.start();
    listener.reset(1);
    machine.sendEvent(MessageBuilder.withPayload("E1").setHeader("foo", "jee1").build());
    assertThat(listener.stateChangedLatch.await(2, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(1));
    assertThat(machine.getState().getIds(), containsInAnyOrder("S1"));
}

From source file:org.springframework.statemachine.StateMachineTests.java

@Test
public void testBackToItself() {
    context.register(BaseConfig.class, Config5.class);
    context.refresh();/*  w w  w  .  j  av  a2 s .  co  m*/
    @SuppressWarnings("unchecked")
    StateMachine<TestStates, TestEvents> machine = context
            .getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, StateMachine.class);
    assertThat(machine, notNullValue());
    TestStateEntryExitListener listener = new TestStateEntryExitListener();
    machine.addStateListener(listener);
    machine.start();
    assertThat(machine.getState().getIds(), contains(TestStates.SI));
    listener.reset();
    machine.sendEvent(MessageBuilder.withPayload(TestEvents.E1).build());
    assertThat(machine.getState().getIds(), contains(TestStates.SI));
    assertThat(listener.exited.size(), is(1));
    assertThat(listener.entered.size(), is(1));
}