├── .github ├── labels-manage.yml ├── labels-rename.yml ├── release-files-spec.json ├── rlnotes.mustache └── workflows │ ├── central-sync-close.yml │ ├── central-sync-create.yml │ ├── central-sync-release.yml │ ├── ci.yml │ ├── issue-handler.yml │ ├── label-manage.yml │ ├── label-rename.yml │ ├── mongodb.yml │ ├── pr.yml │ ├── redis.yml │ ├── release-ga.yml │ ├── release-milestone.yml │ ├── smoke.yml │ └── stale-issues.yml ├── .gitignore ├── CODE_OF_CONDUCT.adoc ├── CONTRIBUTING.md ├── README.adoc ├── build.gradle ├── docs └── src │ ├── api │ ├── overview.html │ └── stylesheet.css │ ├── info │ ├── changelog.txt │ ├── license.txt │ ├── notice.txt │ └── readme.txt │ ├── reference │ └── asciidoc │ │ ├── Guardfile │ │ ├── appendix-concepts.adoc │ │ ├── appendix-distributedpaper.adoc │ │ ├── appendix-reactormigration-communicating.adoc │ │ ├── appendix-reactormigration-examples.adoc │ │ ├── appendix-reactormigration-threading.adoc │ │ ├── appendix-reactormigration.adoc │ │ ├── appendix-support.adoc │ │ ├── appendix.adoc │ │ ├── faq.adoc │ │ ├── getting-started.adoc │ │ ├── images │ │ ├── model-deployer.png │ │ ├── papyrus-gs-1.png │ │ ├── papyrus-gs-10.png │ │ ├── papyrus-gs-11.png │ │ ├── papyrus-gs-12.png │ │ ├── papyrus-gs-13.png │ │ ├── papyrus-gs-14.png │ │ ├── papyrus-gs-15.png │ │ ├── papyrus-gs-16.png │ │ ├── papyrus-gs-17.png │ │ ├── papyrus-gs-18.png │ │ ├── papyrus-gs-19.png │ │ ├── papyrus-gs-2.png │ │ ├── papyrus-gs-20.png │ │ ├── papyrus-gs-21.png │ │ ├── papyrus-gs-22.png │ │ ├── papyrus-gs-3.png │ │ ├── papyrus-gs-4.png │ │ ├── papyrus-gs-5.png │ │ ├── papyrus-gs-6.png │ │ ├── papyrus-gs-7.png │ │ ├── papyrus-gs-8.png │ │ ├── papyrus-gs-9.png │ │ ├── simple-machine.png │ │ ├── sm-datajpa-1.png │ │ ├── sm-datajpa-2.png │ │ ├── sm-datajpa-3.png │ │ ├── sm-datajpamultipersist-1.png │ │ ├── sm-datajpamultipersist-2.png │ │ ├── sm-datajpamultipersist-3.png │ │ ├── sm-datajpapersist-1.png │ │ ├── sm-datajpapersist-2.png │ │ ├── sm-datajpapersist-3.png │ │ ├── sm-deploy-1.png │ │ ├── sm-dist-n1-1.png │ │ ├── sm-dist-n1-4.png │ │ ├── sm-dist-n2-2.png │ │ ├── sm-dist-n3-3.png │ │ ├── sm-eventservice-1.png │ │ ├── sm-eventservice-2.png │ │ ├── sm-eventservice-3.png │ │ ├── sm-eventservice-4.png │ │ ├── sm-monitoring-1.png │ │ ├── sm-monitoring-2.png │ │ ├── sm-ordershipping-1.png │ │ ├── sm-ordershipping-2.png │ │ ├── sm-ordershipping-3.png │ │ ├── sm-ordershipping-4.png │ │ ├── sm-repository-showcasemachine.png │ │ ├── sm-repository-simplemachine.png │ │ ├── sm-repository-simplesubmachine.png │ │ ├── sm-scope-1.png │ │ ├── sm-tech-isolated-events-with-variable.png │ │ ├── sm-tech-isolated-events.png │ │ ├── sm-tech-parallel-events.png │ │ ├── sm-tech-partition-half-1.png │ │ ├── sm-tech-partition-half-2.png │ │ ├── sm-tech-stop-start.png │ │ ├── statechart0.png │ │ ├── statechart1.png │ │ ├── statechart10.png │ │ ├── statechart11.png │ │ ├── statechart12.png │ │ ├── statechart13.png │ │ ├── statechart14.png │ │ ├── statechart2.png │ │ ├── statechart3.png │ │ ├── statechart4.png │ │ ├── statechart5.png │ │ ├── statechart6.png │ │ ├── statechart7.png │ │ ├── statechart8.png │ │ └── statechart9.png │ │ ├── index-docinfo.xml │ │ ├── index.adoc │ │ ├── introduction.adoc │ │ ├── preface.adoc │ │ ├── recipes.adoc │ │ ├── samples │ │ ├── .gitignore │ │ └── simple-machine.uml │ │ ├── sm-accessor.adoc │ │ ├── sm-actions-reactive.adoc │ │ ├── sm-actions.adoc │ │ ├── sm-boot.adoc │ │ ├── sm-config.adoc │ │ ├── sm-context.adoc │ │ ├── sm-deferevents.adoc │ │ ├── sm-distributed.adoc │ │ ├── sm-error-handling.adoc │ │ ├── sm-examples-cdplayer.adoc │ │ ├── sm-examples-datajpa.adoc │ │ ├── sm-examples-datajpamultipersist.adoc │ │ ├── sm-examples-datajpapersist.adoc │ │ ├── sm-examples-datapersist.adoc │ │ ├── sm-examples-deploy.adoc │ │ ├── sm-examples-eventservice.adoc │ │ ├── sm-examples-monitoring.adoc │ │ ├── sm-examples-ordershipping.adoc │ │ ├── sm-examples-persist.adoc │ │ ├── sm-examples-scope.adoc │ │ ├── sm-examples-security.adoc │ │ ├── sm-examples-showcase.adoc │ │ ├── sm-examples-tasks.adoc │ │ ├── sm-examples-turnstile.adoc │ │ ├── sm-examples-turnstilereactive.adoc │ │ ├── sm-examples-washer.adoc │ │ ├── sm-examples-web.adoc │ │ ├── sm-examples-zookeeper.adoc │ │ ├── sm-examples.adoc │ │ ├── sm-extendedstate.adoc │ │ ├── sm-factories.adoc │ │ ├── sm-guards-reactive.adoc │ │ ├── sm-guards.adoc │ │ ├── sm-interceptor.adoc │ │ ├── sm-listeners.adoc │ │ ├── sm-machineid.adoc │ │ ├── sm-monitoring.adoc │ │ ├── sm-papyrus.adoc │ │ ├── sm-persist.adoc │ │ ├── sm-repository.adoc │ │ ├── sm-scopes.adoc │ │ ├── sm-security.adoc │ │ ├── sm-service.adoc │ │ ├── sm-statecontext.adoc │ │ ├── sm-test.adoc │ │ ├── sm-triggers.adoc │ │ ├── sm.adoc │ │ └── whatsnew.adoc │ └── statecharts │ ├── statechart0.txt │ ├── statechart4.txt │ ├── statechart7.txt │ ├── statechart8.txt │ └── statechart9.txt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── jepsen └── spring-statemachine-jepsen │ ├── .gitignore │ ├── README.md │ ├── project.clj │ ├── src │ └── spring_statemachine_jepsen │ │ ├── checker.clj │ │ └── core.clj │ └── test │ └── spring_statemachine_jepsen │ └── core_test.clj ├── publish-maven.gradle ├── settings.gradle ├── spring-statemachine-autoconfigure └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── boot │ │ │ ├── StateMachineProperties.java │ │ │ ├── actuate │ │ │ ├── InMemoryStateMachineTraceRepository.java │ │ │ ├── StateMachineTrace.java │ │ │ ├── StateMachineTraceEndpoint.java │ │ │ └── StateMachineTraceRepository.java │ │ │ ├── autoconfigure │ │ │ ├── StateMachineAutoConfiguration.java │ │ │ ├── StateMachineJpaRepositoriesAutoConfiguration.java │ │ │ ├── StateMachineMongoDbRepositoriesAutoConfiguration.java │ │ │ └── StateMachineRedisRepositoriesAutoConfiguration.java │ │ │ └── support │ │ │ └── BootStateMachineMonitor.java │ └── resources │ │ └── META-INF │ │ └── spring.factories │ └── test │ └── java │ └── org │ └── springframework │ └── statemachine │ └── boot │ ├── StateMachineAutoConfigurationTests.java │ ├── StateMachineJpaRepositoriesAutoConfigurationTests.java │ ├── StateMachineMongoDbRepositoriesAutoConfigurationTests.java │ ├── StateMachineRedisRepositoriesAutoConfigurationTests.java │ ├── TestAutoConfigurationPackage.java │ ├── TestAutoConfigurationPackageRegistrar.java │ └── TestUtils.java ├── spring-statemachine-bom └── spring-statemachine-bom.txt ├── spring-statemachine-build-tests └── src │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── buildtests │ │ ├── AbstractBuildTests.java │ │ ├── ChoiceExitTests.java │ │ ├── EndSmokeTests.java │ │ ├── ForkJoinEntryExitTests.java │ │ ├── Gh737Tests.java │ │ ├── LinkedPseudoStatesTests.java │ │ ├── LinkedRegionsTests.java │ │ ├── RedisPersistTests.java │ │ ├── StateMachineBlockHoundIntegration.java │ │ ├── TimerSmokeTests.java │ │ ├── WaitErrorConceptTests.java │ │ └── tck │ │ ├── AbstractTckTests.java │ │ ├── javaconfig │ │ ├── AnnotationFactoryTckTests.java │ │ ├── AnnotationTckTests.java │ │ └── BuilderTckTests.java │ │ ├── jpa │ │ ├── JpaJsonTckTests.java │ │ └── JpaManualTckTests.java │ │ ├── mongodb │ │ ├── EnabledOnMongoDb.java │ │ ├── EnabledOnMongoDbCondition.java │ │ ├── MongoDbJsonTckTests.java │ │ └── MongoDbManualTckTests.java │ │ ├── redis │ │ ├── EnabledOnRedis.java │ │ ├── EnabledOnRedisCondition.java │ │ ├── RedisJsonTckTests.java │ │ └── RedisManualTckTests.java │ │ └── uml │ │ └── UmlTckTests.java │ └── resources │ ├── META-INF │ └── services │ │ └── reactor.blockhound.integration.BlockHoundIntegration │ └── org │ └── springframework │ └── statemachine │ └── buildtests │ ├── choice-exit.di │ ├── choice-exit.notation │ ├── choice-exit.uml │ ├── end-smoke.di │ ├── end-smoke.notation │ ├── end-smoke.uml │ ├── forkjoin-entryexit.di │ ├── forkjoin-entryexit.notation │ ├── forkjoin-entryexit.uml │ ├── forkjoin-entryexit2.di │ ├── forkjoin-entryexit2.notation │ ├── forkjoin-entryexit2.uml │ ├── linked-pseudostates.di │ ├── linked-pseudostates.notation │ ├── linked-pseudostates.uml │ ├── linked-regions.di │ ├── linked-regions.notation │ ├── linked-regions.uml │ ├── tck │ ├── jpa │ │ ├── ShowcaseMachine.json │ │ ├── SimpleMachine.json │ │ └── SimpleSubMachine.json │ ├── mongodb │ │ ├── ShowcaseMachine.json │ │ ├── SimpleMachine.json │ │ └── SimpleSubMachine.json │ ├── redis │ │ ├── ShowcaseMachine.json │ │ ├── SimpleMachine.json │ │ └── SimpleSubMachine.json │ └── uml │ │ ├── ShowcaseMachine.di │ │ ├── ShowcaseMachine.notation │ │ ├── ShowcaseMachine.uml │ │ ├── SimpleMachine.di │ │ ├── SimpleMachine.notation │ │ ├── SimpleMachine.uml │ │ ├── SimpleSubMachine.di │ │ ├── SimpleSubMachine.notation │ │ └── SimpleSubMachine.uml │ ├── wait-error-1.di │ ├── wait-error-1.notation │ └── wait-error-1.uml ├── spring-statemachine-cluster └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── cluster │ │ └── LeaderZookeeperStateMachineEnsemble.java │ └── test │ └── java │ └── org │ └── springframework │ └── statemachine │ └── cluster │ ├── AbstractZookeeperTests.java │ └── LeaderZookeeperStateMachineEnsembleTests.java ├── spring-statemachine-core └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ ├── ExtendedState.java │ │ ├── ObjectStateMachine.java │ │ ├── StateContext.java │ │ ├── StateMachine.java │ │ ├── StateMachineContext.java │ │ ├── StateMachineContextRepository.java │ │ ├── StateMachineEventResult.java │ │ ├── StateMachineException.java │ │ ├── StateMachineMessageHeaders.java │ │ ├── StateMachinePersist.java │ │ ├── StateMachineSystemConstants.java │ │ ├── access │ │ ├── ReactiveStateMachineAccess.java │ │ ├── StateMachineAccess.java │ │ └── StateMachineAccessor.java │ │ ├── action │ │ ├── Action.java │ │ ├── ActionListener.java │ │ ├── Actions.java │ │ ├── CompositeActionListener.java │ │ ├── DistributedLeaderAction.java │ │ ├── ReactiveAction.java │ │ ├── SpelExpressionAction.java │ │ └── StateDoActionPolicy.java │ │ ├── annotation │ │ ├── EventHeader.java │ │ ├── EventHeaders.java │ │ ├── ExtendedStateVariable.java │ │ ├── OnEventNotAccepted.java │ │ ├── OnExtendedStateChanged.java │ │ ├── OnStateChanged.java │ │ ├── OnStateEntry.java │ │ ├── OnStateExit.java │ │ ├── OnStateMachineError.java │ │ ├── OnStateMachineStart.java │ │ ├── OnStateMachineStop.java │ │ ├── OnTransition.java │ │ ├── OnTransitionEnd.java │ │ ├── OnTransitionStart.java │ │ └── WithStateMachine.java │ │ ├── config │ │ ├── AbstractStateMachineConfigurerAdapter.java │ │ ├── AbstractStateMachineFactory.java │ │ ├── EnableStateMachine.java │ │ ├── EnableStateMachineFactory.java │ │ ├── EnableWithStateMachine.java │ │ ├── EnumStateMachineConfigurerAdapter.java │ │ ├── ObjectStateMachineFactory.java │ │ ├── StateMachineBuilder.java │ │ ├── StateMachineConfig.java │ │ ├── StateMachineConfigurerAdapter.java │ │ ├── StateMachineFactory.java │ │ ├── builders │ │ │ ├── ModelData.java │ │ │ ├── StateMachineConfigBuilder.java │ │ │ ├── StateMachineConfigurationBuilder.java │ │ │ ├── StateMachineConfigurationConfigurer.java │ │ │ ├── StateMachineConfigurer.java │ │ │ ├── StateMachineModelBuilder.java │ │ │ ├── StateMachineModelConfigurer.java │ │ │ ├── StateMachineSecurityConfigurer.java │ │ │ ├── StateMachineStateBuilder.java │ │ │ ├── StateMachineStateConfigurer.java │ │ │ ├── StateMachineTransitionBuilder.java │ │ │ └── StateMachineTransitionConfigurer.java │ │ ├── common │ │ │ └── annotation │ │ │ │ ├── AbstractAnnotationBuilder.java │ │ │ │ ├── AbstractAnnotationConfiguration.java │ │ │ │ ├── AbstractConfiguredAnnotationBuilder.java │ │ │ │ ├── AbstractImportingAnnotationConfiguration.java │ │ │ │ ├── AnnotationBuilder.java │ │ │ │ ├── AnnotationConfigurer.java │ │ │ │ ├── AnnotationConfigurerAdapter.java │ │ │ │ ├── AnnotationConfigurerBuilder.java │ │ │ │ ├── EnableAnnotationConfiguration.java │ │ │ │ ├── ObjectPostProcessor.java │ │ │ │ ├── configuration │ │ │ │ ├── AutowireBeanFactoryObjectPostProcessor.java │ │ │ │ └── ObjectPostProcessorConfiguration.java │ │ │ │ └── configurers │ │ │ │ ├── DefaultPropertiesConfigurer.java │ │ │ │ ├── DefaultResourceConfigurer.java │ │ │ │ ├── PropertiesConfigurer.java │ │ │ │ ├── PropertiesConfigurerAware.java │ │ │ │ ├── ResourceConfigurer.java │ │ │ │ └── ResourceConfigurerAware.java │ │ ├── configuration │ │ │ ├── StateMachineAnnotationPostProcessorConfiguration.java │ │ │ ├── StateMachineCommonConfiguration.java │ │ │ ├── StateMachineConfiguration.java │ │ │ ├── StateMachineConfigurationImportSelector.java │ │ │ ├── StateMachineFactoryConfiguration.java │ │ │ └── StateMachineHandlerApplicationListener.java │ │ ├── configurers │ │ │ ├── AbstractTransitionConfigurer.java │ │ │ ├── ChoiceTransitionConfigurer.java │ │ │ ├── ConfigurationConfigurer.java │ │ │ ├── DefaultChoiceTransitionConfigurer.java │ │ │ ├── DefaultConfigurationConfigurer.java │ │ │ ├── DefaultDistributedStateMachineConfigurer.java │ │ │ ├── DefaultEntryTransitionConfigurer.java │ │ │ ├── DefaultExitTransitionConfigurer.java │ │ │ ├── DefaultExternalTransitionConfigurer.java │ │ │ ├── DefaultForkTransitionConfigurer.java │ │ │ ├── DefaultHistoryTransitionConfigurer.java │ │ │ ├── DefaultInternalTransitionConfigurer.java │ │ │ ├── DefaultJoinTransitionConfigurer.java │ │ │ ├── DefaultJunctionTransitionConfigurer.java │ │ │ ├── DefaultLocalTransitionConfigurer.java │ │ │ ├── DefaultModelConfigurer.java │ │ │ ├── DefaultMonitoringConfigurer.java │ │ │ ├── DefaultPersistenceConfigurer.java │ │ │ ├── DefaultSecurityConfigurer.java │ │ │ ├── DefaultStateConfigurer.java │ │ │ ├── DefaultVerifierConfigurer.java │ │ │ ├── DistributedStateMachineConfigurer.java │ │ │ ├── EntryTransitionConfigurer.java │ │ │ ├── ExitTransitionConfigurer.java │ │ │ ├── ExternalTransitionConfigurer.java │ │ │ ├── ForkTransitionConfigurer.java │ │ │ ├── HistoryTransitionConfigurer.java │ │ │ ├── InternalTransitionConfigurer.java │ │ │ ├── JoinTransitionConfigurer.java │ │ │ ├── JunctionTransitionConfigurer.java │ │ │ ├── LocalTransitionConfigurer.java │ │ │ ├── ModelConfigurer.java │ │ │ ├── MonitoringConfigurer.java │ │ │ ├── PersistenceConfigurer.java │ │ │ ├── SecurityConfigurer.java │ │ │ ├── StateConfigurer.java │ │ │ ├── TransitionConfigurer.java │ │ │ └── VerifierConfigurer.java │ │ └── model │ │ │ ├── AbstractStateMachineModelFactory.java │ │ │ ├── ChoiceData.java │ │ │ ├── ConfigurationData.java │ │ │ ├── DefaultStateMachineComponentResolver.java │ │ │ ├── DefaultStateMachineModel.java │ │ │ ├── EntryData.java │ │ │ ├── ExitData.java │ │ │ ├── HistoryData.java │ │ │ ├── JunctionData.java │ │ │ ├── MalformedConfigurationException.java │ │ │ ├── StateData.java │ │ │ ├── StateMachineComponentResolver.java │ │ │ ├── StateMachineModel.java │ │ │ ├── StateMachineModelFactory.java │ │ │ ├── StatesData.java │ │ │ ├── TransitionData.java │ │ │ ├── TransitionsData.java │ │ │ └── verifier │ │ │ ├── BaseStructureVerifier.java │ │ │ ├── CompositeStateMachineModelVerifier.java │ │ │ ├── DefaultStateMachineModelVerifier.java │ │ │ └── StateMachineModelVerifier.java │ │ ├── ensemble │ │ ├── CompositeEnsembleListener.java │ │ ├── DistributedStateMachine.java │ │ ├── EnsembleListener.java │ │ ├── EnsembleListenerAdapter.java │ │ ├── StateMachineEnsemble.java │ │ ├── StateMachineEnsembleException.java │ │ └── StateMachineEnsembleObjectSupport.java │ │ ├── event │ │ ├── DefaultStateMachineEventPublisher.java │ │ ├── LoggingListener.java │ │ ├── OnEventNotAcceptedEvent.java │ │ ├── OnExtendedStateChanged.java │ │ ├── OnStateChangedEvent.java │ │ ├── OnStateEntryEvent.java │ │ ├── OnStateExitEvent.java │ │ ├── OnStateMachineError.java │ │ ├── OnStateMachineStart.java │ │ ├── OnStateMachineStop.java │ │ ├── OnTransitionEndEvent.java │ │ ├── OnTransitionEvent.java │ │ ├── OnTransitionStartEvent.java │ │ ├── StateMachineEvent.java │ │ ├── StateMachineEventPublisher.java │ │ ├── StateMachineEventPublisherConfiguration.java │ │ └── TransitionEvent.java │ │ ├── guard │ │ ├── Guard.java │ │ ├── Guards.java │ │ ├── ReactiveGuard.java │ │ └── SpelExpressionGuard.java │ │ ├── listener │ │ ├── AbstractCompositeListener.java │ │ ├── CompositeStateMachineListener.java │ │ ├── OrderedComposite.java │ │ ├── StateMachineListener.java │ │ └── StateMachineListenerAdapter.java │ │ ├── monitor │ │ ├── AbstractStateMachineMonitor.java │ │ ├── CompositeStateMachineMonitor.java │ │ └── StateMachineMonitor.java │ │ ├── persist │ │ ├── AbstractPersistingStateMachineInterceptor.java │ │ ├── AbstractStateMachinePersister.java │ │ ├── DefaultStateMachinePersister.java │ │ ├── RepositoryStateMachinePersist.java │ │ ├── StateMachinePersister.java │ │ └── StateMachineRuntimePersister.java │ │ ├── processor │ │ ├── MethodAnnotationPostProcessor.java │ │ ├── MethodInvokingStateMachineRuntimeProcessor.java │ │ ├── StateMachineActivatorAnnotationPostProcessor.java │ │ ├── StateMachineAnnotationPostProcessor.java │ │ ├── StateMachineHandler.java │ │ ├── StateMachineHandlerCallHelper.java │ │ ├── StateMachineMethodInvokerHelper.java │ │ ├── StateMachineRuntime.java │ │ └── StateMachineRuntimeProcessor.java │ │ ├── region │ │ ├── Region.java │ │ └── RegionExecutionPolicy.java │ │ ├── security │ │ ├── DefaultEventSecurityExpressionHandler.java │ │ ├── DefaultTransitionSecurityExpressionHandler.java │ │ ├── EventExpressionConfigAttribute.java │ │ ├── EventExpressionVoter.java │ │ ├── EventSecurityExpressionRoot.java │ │ ├── EventVoter.java │ │ ├── SecurityRule.java │ │ ├── StateMachineSecurityInterceptor.java │ │ ├── TransitionExpressionConfigAttribute.java │ │ ├── TransitionExpressionVoter.java │ │ ├── TransitionSecurityExpressionRoot.java │ │ └── TransitionVoter.java │ │ ├── service │ │ ├── DefaultStateMachineService.java │ │ ├── StateMachineSerialisationService.java │ │ └── StateMachineService.java │ │ ├── state │ │ ├── AbstractPseudoState.java │ │ ├── AbstractSimpleState.java │ │ ├── AbstractState.java │ │ ├── ChoicePseudoState.java │ │ ├── CompositePseudoStateListener.java │ │ ├── CompositeStateListener.java │ │ ├── DefaultPseudoState.java │ │ ├── DefaultPseudoStateContext.java │ │ ├── EntryPseudoState.java │ │ ├── EnumState.java │ │ ├── ExitPseudoState.java │ │ ├── ForkPseudoState.java │ │ ├── HistoryPseudoState.java │ │ ├── JoinPseudoState.java │ │ ├── JunctionPseudoState.java │ │ ├── ObjectState.java │ │ ├── PseudoState.java │ │ ├── PseudoStateContext.java │ │ ├── PseudoStateKind.java │ │ ├── PseudoStateListener.java │ │ ├── RegionState.java │ │ ├── State.java │ │ ├── StateHolder.java │ │ ├── StateListener.java │ │ ├── StateListenerAdapter.java │ │ └── StateMachineState.java │ │ ├── support │ │ ├── AbstractCompositeItems.java │ │ ├── AbstractExpressionEvaluator.java │ │ ├── AbstractStateMachine.java │ │ ├── AnnotatedMethodFilter.java │ │ ├── BeanFactoryTypeConverter.java │ │ ├── DefaultExtendedState.java │ │ ├── DefaultStateContext.java │ │ ├── DefaultStateMachineContext.java │ │ ├── ExpressionUtils.java │ │ ├── FixedMethodFilter.java │ │ ├── LifecycleObjectSupport.java │ │ ├── ObservableMap.java │ │ ├── OrderedCompositeItem.java │ │ ├── ReactiveLifecycleManager.java │ │ ├── ReactiveStateMachineExecutor.java │ │ ├── StateContextExpressionMethods.java │ │ ├── StateMachineContextUtils.java │ │ ├── StateMachineExecutor.java │ │ ├── StateMachineInterceptor.java │ │ ├── StateMachineInterceptorAdapter.java │ │ ├── StateMachineInterceptorList.java │ │ ├── StateMachineObjectSupport.java │ │ ├── StateMachineReactiveLifecycle.java │ │ ├── StateMachineUtils.java │ │ ├── TransitionComparator.java │ │ ├── UniqueMethodFilter.java │ │ └── tree │ │ │ ├── AbstractIterator.java │ │ │ ├── Tree.java │ │ │ └── TreeTraverser.java │ │ ├── transition │ │ ├── AbstractExternalTransition.java │ │ ├── AbstractInternalTransition.java │ │ ├── AbstractLocalTransition.java │ │ ├── AbstractTransition.java │ │ ├── DefaultExternalTransition.java │ │ ├── DefaultInternalTransition.java │ │ ├── DefaultLocalTransition.java │ │ ├── InitialTransition.java │ │ ├── Transition.java │ │ ├── TransitionConflictPolicy.java │ │ └── TransitionKind.java │ │ └── trigger │ │ ├── CompositeTriggerListener.java │ │ ├── DefaultTriggerContext.java │ │ ├── EventTrigger.java │ │ ├── TimerTrigger.java │ │ ├── Trigger.java │ │ ├── TriggerContext.java │ │ └── TriggerListener.java │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── statemachine │ │ ├── AbstractStateMachineTests.java │ │ ├── EnumStateMachineTests.java │ │ ├── EventDeferTests.java │ │ ├── EventHeaderTests.java │ │ ├── ReactiveTests.java │ │ ├── RegionMachineTests.java │ │ ├── RelayTests.java │ │ ├── StateContextTests.java │ │ ├── StateMachineBlockHoundIntegration.java │ │ ├── StateMachineErrorTests.java │ │ ├── StateMachineFactoryTests.java │ │ ├── StateMachineResetTests.java │ │ ├── StateMachineTests.java │ │ ├── SubStateMachineTests.java │ │ ├── TestUtils.java │ │ ├── access │ │ └── StateMachineAccessTests.java │ │ ├── action │ │ ├── ActionAndTimerTests.java │ │ ├── ActionErrorTests.java │ │ ├── ActionTests.java │ │ ├── DistributedLeaderActionTests.java │ │ ├── ReactiveAction2Tests.java │ │ ├── ReactiveActionTests.java │ │ ├── SpelExpressionActionTests.java │ │ └── StateDoActivityActionTests.java │ │ ├── annotation │ │ ├── AnnoStates.java │ │ ├── AnnoStatesOnTransition.java │ │ ├── ClassAnnotationTests.java │ │ ├── MethodAnnotationTests.java │ │ ├── MethodAnnotationWithBuilderTests.java │ │ ├── MethodAnnotationWithDefaultsWithFactoryTests.java │ │ └── MethodAnnotationWithFactoryTests.java │ │ ├── config │ │ ├── ConfigurationErrorTests.java │ │ ├── ConfigurationTests.java │ │ ├── MachineTypedTests.java │ │ ├── ManualBuilderContextTests.java │ │ ├── ManualBuilderTests.java │ │ ├── SessionScopedAnnotationTests.java │ │ ├── SessionScopedManualTests.java │ │ ├── common │ │ │ └── annotation │ │ │ │ ├── ComplexAnnotationConfigurationTests.java │ │ │ │ ├── DependencyBean.java │ │ │ │ ├── ImportingBeanDefinitionTests.java │ │ │ │ ├── MixedAnnotationConfigurationTests.java │ │ │ │ ├── MultipleAnnotationConfigurationTests.java │ │ │ │ ├── SimpleAnnotationConfiguration2Tests.java │ │ │ │ ├── SimpleAnnotationConfigurationTests.java │ │ │ │ ├── XmlImportDependenciesTests.java │ │ │ │ ├── complex │ │ │ │ ├── ComplexTestConfig.java │ │ │ │ ├── ComplexTestConfigBeanA.java │ │ │ │ ├── ComplexTestConfigBeanABuilder.java │ │ │ │ ├── ComplexTestConfigBeanB.java │ │ │ │ ├── ComplexTestConfigBeanBBuilder.java │ │ │ │ ├── ComplexTestConfigBeanBConfigurer.java │ │ │ │ ├── ComplexTestConfigBuilder.java │ │ │ │ ├── ComplexTestConfiguration.java │ │ │ │ ├── ComplexTestConfigurer.java │ │ │ │ ├── ComplexTestConfigurerAdapter.java │ │ │ │ └── EnableComplexTest.java │ │ │ │ ├── importing │ │ │ │ ├── EnableImportingTest.java │ │ │ │ ├── ImportingTestConfig.java │ │ │ │ ├── ImportingTestConfigBuilder.java │ │ │ │ ├── ImportingTestConfigurer.java │ │ │ │ ├── ImportingTestConfigurerAdapter.java │ │ │ │ └── SimpleImportingConfiguration.java │ │ │ │ └── simple │ │ │ │ ├── EnableSimpleTest.java │ │ │ │ ├── EnableSimpleTest2.java │ │ │ │ ├── SimpleTestConfig.java │ │ │ │ ├── SimpleTestConfigBeanA.java │ │ │ │ ├── SimpleTestConfigBeanABuilder.java │ │ │ │ ├── SimpleTestConfigBeanB.java │ │ │ │ ├── SimpleTestConfigBeanBBuilder.java │ │ │ │ ├── SimpleTestConfigBeanBConfigurer.java │ │ │ │ ├── SimpleTestConfigBuilder.java │ │ │ │ ├── SimpleTestConfiguration.java │ │ │ │ ├── SimpleTestConfiguration2.java │ │ │ │ ├── SimpleTestConfigurer.java │ │ │ │ └── SimpleTestConfigurerAdapter.java │ │ ├── configurers │ │ │ └── DefaultStateConfigurerTests.java │ │ └── model │ │ │ ├── StateMachineModelFactoryTests.java │ │ │ └── StateMachineModelTests.java │ │ ├── docs │ │ ├── DocsConfigurationSampleTests.java │ │ ├── DocsConfigurationSampleTests10.java │ │ ├── DocsConfigurationSampleTests11.java │ │ ├── DocsConfigurationSampleTests12.java │ │ ├── DocsConfigurationSampleTests2.java │ │ ├── DocsConfigurationSampleTests3.java │ │ ├── DocsConfigurationSampleTests4.java │ │ ├── DocsConfigurationSampleTests5.java │ │ ├── DocsConfigurationSampleTests6.java │ │ ├── DocsConfigurationSampleTests7.java │ │ ├── DocsConfigurationSampleTests8.java │ │ ├── DocsConfigurationSampleTests9.java │ │ ├── DocsMigrationTests.java │ │ ├── Events.java │ │ ├── IntroSample.java │ │ ├── States.java │ │ ├── States2.java │ │ └── States3.java │ │ ├── ensemble │ │ ├── DistributedStateMachineTests.java │ │ └── InMemoryStateMachineEnsemble.java │ │ ├── event │ │ ├── ContextEventTests.java │ │ ├── ExternalConfig.java │ │ └── StateMachineEventTests.java │ │ ├── guard │ │ ├── GuardTests.java │ │ └── SpelExpressionGuardTests.java │ │ ├── listener │ │ ├── CompositeStateMachineListenerTests.java │ │ └── ListenerTests.java │ │ ├── monitor │ │ └── StateMachineMonitorTests.java │ │ ├── persist │ │ ├── DefaultStateMachinePersisterTests.java │ │ ├── StateMachinePersistTests.java │ │ ├── StateMachinePersistTests2.java │ │ ├── StateMachinePersistTests3.java │ │ └── StateMachinePersistTests4.java │ │ ├── processor │ │ ├── AnnotatedMethodTests.java │ │ ├── MethodParameterTests.java │ │ └── StateMachineAnnotationPostProcessorTests.java │ │ ├── security │ │ ├── AbstractSecurityTests.java │ │ ├── ActionSecurityTests.java │ │ ├── EventSecurityTests.java │ │ ├── SecurityConfigTests.java │ │ ├── SecurityRuleTests.java │ │ ├── TransitionSecurityAttributeTests.java │ │ ├── TransitionSecurityExpressionRootTests.java │ │ ├── TransitionSecurityExpressionTests.java │ │ └── TransitionSecurityTests.java │ │ ├── service │ │ └── DefaultStateMachineServiceTests.java │ │ ├── state │ │ ├── ChoiceStateTests.java │ │ ├── CompletionEventTests.java │ │ ├── EndStateTests.java │ │ ├── EnumStateTests.java │ │ ├── ExitEntryStateTests.java │ │ ├── ForkStateTests.java │ │ ├── HistoryStateTests.java │ │ ├── InitialStateTests.java │ │ ├── JoinPseudoStateTests.java │ │ ├── JoinStateTests.java │ │ ├── JunctionStateTests.java │ │ ├── ObjectStateTests.java │ │ ├── RegionStateTests.java │ │ ├── StateActionTests.java │ │ ├── SubmachineRefEnumTests.java │ │ ├── SubmachineRefTests.java │ │ └── SubmachineStateTests.java │ │ ├── support │ │ ├── DefaultStateMachineContextTests.java │ │ ├── LifecycleObjectSupportTests.java │ │ ├── ReactiveLifecycleManagerTests.java │ │ ├── StateChangeInterceptorTests.java │ │ ├── StateContextExpressionMethodsTests.java │ │ ├── TransitionComparatorTests.java │ │ └── tree │ │ │ └── TreeTests.java │ │ ├── transition │ │ ├── LocalTransitionTests.java │ │ ├── TransitionEventHeaderTests.java │ │ ├── TransitionOrderTests.java │ │ └── TransitionTests.java │ │ └── trigger │ │ └── TimerTriggerTests.java │ └── resources │ ├── META-INF │ └── services │ │ └── reactor.blockhound.integration.BlockHoundIntegration │ ├── log4j2.xml │ └── org │ └── springframework │ └── statemachine │ └── config │ └── common │ └── annotation │ └── XmlImportDependencies.xml ├── spring-statemachine-data ├── build.gradle ├── jpa │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── data │ │ │ └── jpa │ │ │ ├── JpaActionRepository.java │ │ │ ├── JpaGuardRepository.java │ │ │ ├── JpaPersistingStateMachineInterceptor.java │ │ │ ├── JpaRepositoryAction.java │ │ │ ├── JpaRepositoryGuard.java │ │ │ ├── JpaRepositoryState.java │ │ │ ├── JpaRepositoryStateMachine.java │ │ │ ├── JpaRepositoryStateMachinePersist.java │ │ │ ├── JpaRepositoryTransition.java │ │ │ ├── JpaStateMachineRepository.java │ │ │ ├── JpaStateRepository.java │ │ │ └── JpaTransitionRepository.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── data │ │ │ └── jpa │ │ │ ├── JpaRepositoryTests.java │ │ │ └── docs │ │ │ └── DocsJpaRepositorySampleTests1.java │ │ └── resources │ │ ├── data10.json │ │ ├── data11.json │ │ ├── data12.json │ │ ├── data13.json │ │ ├── data14.json │ │ ├── data15.json │ │ ├── data2.json │ │ ├── data3.json │ │ ├── data4.json │ │ ├── data5.json │ │ ├── data6.json │ │ ├── data7.json │ │ ├── data8.json │ │ └── data9.json ├── mongodb │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── data │ │ │ └── mongodb │ │ │ ├── MongoDbActionRepository.java │ │ │ ├── MongoDbGuardRepository.java │ │ │ ├── MongoDbPersistingStateMachineInterceptor.java │ │ │ ├── MongoDbRepositoryAction.java │ │ │ ├── MongoDbRepositoryGuard.java │ │ │ ├── MongoDbRepositoryState.java │ │ │ ├── MongoDbRepositoryStateMachine.java │ │ │ ├── MongoDbRepositoryStateMachinePersist.java │ │ │ ├── MongoDbRepositoryTransition.java │ │ │ ├── MongoDbStateMachineRepository.java │ │ │ ├── MongoDbStateRepository.java │ │ │ └── MongoDbTransitionRepository.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── data │ │ │ └── mongodb │ │ │ ├── EnabledOnMongoDb.java │ │ │ ├── EnabledOnMongoDbCondition.java │ │ │ ├── MongoDbRepositoryTests.java │ │ │ └── docs │ │ │ └── DocsMongoDbRepositorySampleTests1.java │ │ └── resources │ │ ├── data10.json │ │ ├── data11.json │ │ ├── data12.json │ │ ├── data13.json │ │ ├── data14.json │ │ ├── data15.json │ │ ├── data2.json │ │ ├── data3.json │ │ ├── data4.json │ │ ├── data5.json │ │ ├── data6.json │ │ ├── data7.json │ │ ├── data8.json │ │ └── data9.json ├── redis │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── data │ │ │ └── redis │ │ │ ├── RedisActionRepository.java │ │ │ ├── RedisGuardRepository.java │ │ │ ├── RedisPersistingStateMachineInterceptor.java │ │ │ ├── RedisRepositoryAction.java │ │ │ ├── RedisRepositoryGuard.java │ │ │ ├── RedisRepositoryState.java │ │ │ ├── RedisRepositoryStateMachine.java │ │ │ ├── RedisRepositoryStateMachinePersist.java │ │ │ ├── RedisRepositoryTransition.java │ │ │ ├── RedisStateMachineContextRepository.java │ │ │ ├── RedisStateMachinePersister.java │ │ │ ├── RedisStateMachineRepository.java │ │ │ ├── RedisStateRepository.java │ │ │ └── RedisTransitionRepository.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── statemachine │ │ │ └── data │ │ │ └── redis │ │ │ ├── EnabledOnRedis.java │ │ │ ├── EnabledOnRedisCondition.java │ │ │ ├── RedisRepositoryTests.java │ │ │ ├── StateMachineBlockHoundIntegration.java │ │ │ └── docs │ │ │ └── DocsRedisRepositorySampleTests1.java │ │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── reactor.blockhound.integration.BlockHoundIntegration │ │ ├── data10.json │ │ ├── data11.json │ │ ├── data12.json │ │ ├── data13.json │ │ ├── data14.json │ │ ├── data15.json │ │ ├── data2.json │ │ ├── data3.json │ │ ├── data4.json │ │ ├── data5.json │ │ ├── data6.json │ │ ├── data7.json │ │ ├── data8.json │ │ └── data9.json └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── data │ │ ├── ActionRepository.java │ │ ├── BaseRepositoryEntity.java │ │ ├── GuardRepository.java │ │ ├── RepositoryAction.java │ │ ├── RepositoryGuard.java │ │ ├── RepositoryState.java │ │ ├── RepositoryStateMachine.java │ │ ├── RepositoryStateMachineModelFactory.java │ │ ├── RepositoryStateMachinePersist.java │ │ ├── RepositoryTransition.java │ │ ├── StateMachineRepository.java │ │ ├── StateRepository.java │ │ ├── TransitionRepository.java │ │ └── support │ │ ├── StateMachineJackson2RepositoryPopulatorFactoryBean.java │ │ └── StateMachineJackson2ResourceReader.java │ └── test │ └── java │ └── org │ └── springframework │ └── statemachine │ └── data │ └── AbstractRepositoryTests.java ├── spring-statemachine-kryo └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── kryo │ │ ├── AbstractKryoStateMachineSerialisationService.java │ │ ├── KryoStateMachineSerialisationService.java │ │ ├── MessageHeadersSerializer.java │ │ ├── StateMachineContextSerializer.java │ │ └── UUIDSerializer.java │ └── test │ └── java │ └── org │ └── springframework │ └── statemachine │ └── kryo │ ├── KryoStateMachineSerialisationServiceTests.java │ └── StateMachineContextSerializerTests.java ├── spring-statemachine-recipes ├── build.gradle └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── recipes │ │ ├── persist │ │ ├── AbstractPersistStateMachineHandler.java │ │ ├── FactoryPersistStateMachineHandler.java │ │ ├── GenericPersistStateMachineHandler.java │ │ └── PersistStateMachineHandler.java │ │ ├── support │ │ └── RunnableAction.java │ │ └── tasks │ │ └── TasksHandler.java │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── recipes │ │ ├── PersistStateMachineHandlerTests.java │ │ ├── StateMachineBlockHoundIntegration.java │ │ ├── TasksHandlerTests.java │ │ ├── TestStateMachinePersist.java │ │ └── docs │ │ └── DocsTasksSampleTests.java │ └── resources │ ├── META-INF │ └── services │ │ └── reactor.blockhound.integration.BlockHoundIntegration │ └── log4j2.xml ├── spring-statemachine-samples ├── build.gradle ├── cdplayer │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── cdplayer │ │ │ │ ├── Application.java │ │ │ │ ├── Cd.java │ │ │ │ ├── CdPlayer.java │ │ │ │ ├── CdPlayerCommands.java │ │ │ │ ├── Library.java │ │ │ │ ├── StateMachineCommands.java │ │ │ │ └── Track.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── spring-shell-plugin.xml │ │ │ └── statechartmodel.txt │ │ └── test │ │ ├── java │ │ └── demo │ │ │ └── cdplayer │ │ │ └── CdPlayerTests.java │ │ └── resources │ │ └── log4j2.xml ├── datajpa │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── datajpa │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ ├── StateMachineController.java │ │ │ │ └── StateMachineLogListener.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── data.json │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── datajpa │ │ └── DataJpaTests.java ├── datajpamultipersist │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── datajpamultipersist │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ ├── StateMachineController.java │ │ │ │ └── StateMachineLogListener.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── datajpamultipersist.json │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── datajpamultipersist │ │ └── DataJpaMultiPersistTests.java ├── datapersist │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── datapersist │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ ├── StateMachineController.java │ │ │ │ └── StateMachineLogListener.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── datapersist │ │ └── DataJpaPersistTests.java ├── deploy │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── deploy │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ ├── StateMachineController.java │ │ │ │ └── StateMachineLogListener.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── logback.xml │ │ │ ├── model.di │ │ │ ├── model.notation │ │ │ ├── model.uml │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── deploy │ │ ├── DeployTests.java │ │ └── StateMachineTests.java ├── eventservice │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── eventservice │ │ │ │ ├── Application.java │ │ │ │ ├── Pageview.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ └── StateMachineController.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── logback.xml │ │ │ ├── statechartmodel.txt │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── eventservice │ │ └── EventServiceTests.java ├── monitoring │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── monitoring │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ ├── StateMachineController.java │ │ │ │ └── StateMachineLogListener.java │ │ └── resources │ │ │ ├── application.yml │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── monitoring │ │ └── MonitoringTests.java ├── ordershipping │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── ordershipping │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ ├── StateMachineController.java │ │ │ │ └── StateMachineLogListener.java │ │ └── resources │ │ │ ├── application.yml │ │ │ ├── logback.xml │ │ │ ├── ordershipping.di │ │ │ ├── ordershipping.notation │ │ │ ├── ordershipping.uml │ │ │ └── templates │ │ │ └── states.html │ │ └── test │ │ └── java │ │ └── demo │ │ └── ordershipping │ │ ├── OrdershippingTests.java │ │ └── StateMachineTests.java ├── persist │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── persist │ │ │ │ ├── Application.java │ │ │ │ ├── Persist.java │ │ │ │ ├── PersistCommands.java │ │ │ │ └── StateMachineCommands.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── spring-shell-plugin.xml │ │ │ ├── data.sql │ │ │ ├── schema.sql │ │ │ └── statechartmodel.txt │ │ └── test │ │ └── java │ │ └── demo │ │ └── persist │ │ └── PersistTests.java ├── scope │ └── src │ │ └── main │ │ ├── java │ │ └── demo │ │ │ └── scope │ │ │ ├── Application.java │ │ │ ├── StateMachineConfig.java │ │ │ └── StateMachineController.java │ │ └── resources │ │ ├── logback.xml │ │ ├── statechartmodel.txt │ │ └── templates │ │ └── states.html ├── security │ └── src │ │ └── main │ │ ├── java │ │ └── demo │ │ │ └── security │ │ │ ├── Application.java │ │ │ ├── StateMachineConfig.java │ │ │ └── StateMachineController.java │ │ └── resources │ │ ├── application.yml │ │ ├── logback.xml │ │ ├── statechartmodel.txt │ │ └── templates │ │ └── states.html ├── showcase │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── showcase │ │ │ │ ├── Application.java │ │ │ │ └── StateMachineCommands.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── spring-shell-plugin.xml │ │ │ └── statechartmodel.txt │ │ └── test │ │ └── java │ │ └── demo │ │ └── showcase │ │ └── ShowcaseTests.java ├── src │ └── main │ │ ├── java │ │ └── demo │ │ │ ├── AbstractStateMachineCommands.java │ │ │ ├── CommonConfiguration.java │ │ │ └── StateMachinePromptProvider.java │ │ └── resources │ │ ├── META-INF │ │ └── spring │ │ │ └── spring-shell-plugin.xml │ │ └── logback.xml ├── tasks │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── tasks │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineCommands.java │ │ │ │ ├── Tasks.java │ │ │ │ └── TasksCommands.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── spring-shell-plugin.xml │ │ │ └── statechartmodel.txt │ │ └── test │ │ ├── java │ │ └── demo │ │ │ └── tasks │ │ │ ├── StateMachineBlockHoundIntegration.java │ │ │ └── TasksTests.java │ │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── reactor.blockhound.integration.BlockHoundIntegration │ │ ├── log4j2.xml │ │ └── logback.xml ├── turnstile │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── turnstile │ │ │ │ ├── Application.java │ │ │ │ └── StateMachineCommands.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── spring-shell-plugin.xml │ │ │ └── statechartmodel.txt │ │ └── test │ │ └── java │ │ └── demo │ │ └── turnstile │ │ └── TurnstileTests.java ├── turnstilereactive │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── turnstilereactive │ │ │ │ ├── Application.java │ │ │ │ ├── StateMachineConfig.java │ │ │ │ └── StateMachineController.java │ │ └── resources │ │ │ └── application.yml │ │ └── test │ │ ├── java │ │ └── demo │ │ │ └── turnstilereactive │ │ │ └── TurnstileReactiveTests.java │ │ └── resources │ │ └── test.http ├── washer │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── java │ │ │ └── demo │ │ │ │ └── washer │ │ │ │ ├── Application.java │ │ │ │ └── StateMachineCommands.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── spring-shell-plugin.xml │ │ │ └── statechartmodel.txt │ │ └── test │ │ └── java │ │ └── demo │ │ └── washer │ │ └── WasherTests.java ├── web │ ├── .bowerrc │ ├── .gitignore │ ├── README.adoc │ ├── bower.json │ └── src │ │ └── main │ │ ├── java │ │ └── demo │ │ │ └── web │ │ │ ├── Application.java │ │ │ ├── StateMachineConfig.java │ │ │ ├── StateMachineController.java │ │ │ ├── StateMachineEvent.java │ │ │ ├── StateMachineMessage.java │ │ │ └── WebSocketConfig.java │ │ └── resources │ │ ├── application.properties │ │ ├── logback.xml │ │ ├── statechartmodel.txt │ │ └── static │ │ ├── css │ │ └── chat.css │ │ ├── index.html │ │ ├── js │ │ ├── app.js │ │ ├── controllers.js │ │ ├── directives.js │ │ └── services.js │ │ └── lib │ │ ├── angular-animate │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-animate.js │ │ ├── angular-animate.min.js │ │ ├── angular-animate.min.js.map │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ │ ├── angular │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-csp.css │ │ ├── angular.js │ │ ├── angular.min.js │ │ ├── angular.min.js.gzip │ │ ├── angular.min.js.map │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ │ ├── angularjs-scroll-glue │ │ ├── .bower.json │ │ ├── README.md │ │ ├── bower.json │ │ ├── example.html │ │ ├── package.json │ │ ├── src │ │ │ ├── LICENSE │ │ │ └── scrollglue.js │ │ └── testacular.conf.js │ │ ├── angularjs-toaster │ │ ├── .bower.json │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── index.js │ │ ├── package.json │ │ ├── toaster.css │ │ ├── toaster.js │ │ ├── toaster.min.css │ │ ├── toaster.min.js │ │ └── toaster.scss │ │ ├── flat-ui │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── Gruntfile.js │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ │ ├── css │ │ │ │ ├── flat-ui.css │ │ │ │ ├── flat-ui.css.map │ │ │ │ ├── flat-ui.min.css │ │ │ │ └── vendor │ │ │ │ │ └── bootstrap.min.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons │ │ │ │ │ ├── flat-ui-icons-regular.eot │ │ │ │ │ ├── flat-ui-icons-regular.svg │ │ │ │ │ ├── flat-ui-icons-regular.ttf │ │ │ │ │ ├── flat-ui-icons-regular.woff │ │ │ │ │ └── selection.json │ │ │ │ └── lato │ │ │ │ │ ├── lato-black.eot │ │ │ │ │ ├── lato-black.svg │ │ │ │ │ ├── lato-black.ttf │ │ │ │ │ ├── lato-black.woff │ │ │ │ │ ├── lato-bold.eot │ │ │ │ │ ├── lato-bold.svg │ │ │ │ │ ├── lato-bold.ttf │ │ │ │ │ ├── lato-bold.woff │ │ │ │ │ ├── lato-bolditalic.eot │ │ │ │ │ ├── lato-bolditalic.svg │ │ │ │ │ ├── lato-bolditalic.ttf │ │ │ │ │ ├── lato-bolditalic.woff │ │ │ │ │ ├── lato-italic.eot │ │ │ │ │ ├── lato-italic.svg │ │ │ │ │ ├── lato-italic.ttf │ │ │ │ │ ├── lato-italic.woff │ │ │ │ │ ├── lato-light.eot │ │ │ │ │ ├── lato-light.svg │ │ │ │ │ ├── lato-light.ttf │ │ │ │ │ ├── lato-light.woff │ │ │ │ │ ├── lato-regular.eot │ │ │ │ │ ├── lato-regular.svg │ │ │ │ │ ├── lato-regular.ttf │ │ │ │ │ └── lato-regular.woff │ │ │ ├── img │ │ │ │ ├── favicon.ico │ │ │ │ ├── icons │ │ │ │ │ ├── png │ │ │ │ │ │ ├── Book.png │ │ │ │ │ │ ├── Calendar.png │ │ │ │ │ │ ├── Chat.png │ │ │ │ │ │ ├── Clipboard.png │ │ │ │ │ │ ├── Compas.png │ │ │ │ │ │ ├── Gift-Box.png │ │ │ │ │ │ ├── Infinity-Loop.png │ │ │ │ │ │ ├── Mail.png │ │ │ │ │ │ ├── Map.png │ │ │ │ │ │ ├── Pensils.png │ │ │ │ │ │ ├── Pocket.png │ │ │ │ │ │ ├── Retina-Ready.png │ │ │ │ │ │ ├── Toilet-Paper.png │ │ │ │ │ │ └── Watches.png │ │ │ │ │ └── svg │ │ │ │ │ │ ├── book.svg │ │ │ │ │ │ ├── calendar.svg │ │ │ │ │ │ ├── chat.svg │ │ │ │ │ │ ├── clipboard.svg │ │ │ │ │ │ ├── clocks.svg │ │ │ │ │ │ ├── compas.svg │ │ │ │ │ │ ├── gift-box.svg │ │ │ │ │ │ ├── loop.svg │ │ │ │ │ │ ├── mail.svg │ │ │ │ │ │ ├── map.svg │ │ │ │ │ │ ├── paper-bag.svg │ │ │ │ │ │ ├── pencils.svg │ │ │ │ │ │ ├── retina.svg │ │ │ │ │ │ ├── ribbon.svg │ │ │ │ │ │ └── toilet-paper.svg │ │ │ │ ├── login │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── imac-2x.png │ │ │ │ │ └── imac.png │ │ │ │ └── tile │ │ │ │ │ ├── ribbon-2x.png │ │ │ │ │ └── ribbon.png │ │ │ ├── index.html │ │ │ └── js │ │ │ │ ├── flat-ui.js │ │ │ │ ├── flat-ui.min.js │ │ │ │ └── vendor │ │ │ │ ├── html5shiv.js │ │ │ │ ├── jquery.min.js │ │ │ │ ├── jquery.min.map │ │ │ │ ├── respond.min.js │ │ │ │ ├── video-js.swf │ │ │ │ └── video.js │ │ ├── docs │ │ │ ├── assets │ │ │ │ ├── css │ │ │ │ │ ├── demo.css │ │ │ │ │ ├── demo.css.map │ │ │ │ │ ├── docs.css │ │ │ │ │ ├── docs.css.map │ │ │ │ │ └── src │ │ │ │ │ │ ├── demo.less │ │ │ │ │ │ ├── docs.less │ │ │ │ │ │ └── prettyprint.less │ │ │ │ ├── img │ │ │ │ │ ├── demo │ │ │ │ │ │ ├── browser-2x.png │ │ │ │ │ │ ├── browser-author.jpg │ │ │ │ │ │ ├── browser-pic-1.jpg │ │ │ │ │ │ ├── browser-pic-2.jpg │ │ │ │ │ │ ├── browser-pic-3.jpg │ │ │ │ │ │ ├── browser-pic-4.jpg │ │ │ │ │ │ ├── browser-pic-5.jpg │ │ │ │ │ │ ├── browser-pic-6.jpg │ │ │ │ │ │ ├── browser.png │ │ │ │ │ │ ├── html-icon.png │ │ │ │ │ │ ├── logo-mask-2x.png │ │ │ │ │ │ ├── logo-mask.png │ │ │ │ │ │ └── video.jpg │ │ │ │ │ ├── example-image.jpg │ │ │ │ │ ├── footer │ │ │ │ │ │ └── logo.png │ │ │ │ │ ├── getting-started │ │ │ │ │ │ └── icomoon_import.jpg │ │ │ │ │ └── video │ │ │ │ │ │ └── poster.jpg │ │ │ │ └── js │ │ │ │ │ ├── application.js │ │ │ │ │ └── prettify.js │ │ │ ├── components.html │ │ │ ├── examples │ │ │ │ ├── buttons.html │ │ │ │ ├── dropdowns.html │ │ │ │ ├── forms.html │ │ │ │ ├── navbar-fixed-top.html │ │ │ │ ├── navbar-static-top.html │ │ │ │ ├── navbars-with-elements.html │ │ │ │ ├── navbars.html │ │ │ │ ├── pagination.html │ │ │ │ ├── radiocheck.html │ │ │ │ ├── select.html │ │ │ │ ├── switches.html │ │ │ │ ├── tagsinput.html │ │ │ │ ├── thumbnails.html │ │ │ │ ├── tiles.html │ │ │ │ ├── todo-list.html │ │ │ │ ├── tooltips.html │ │ │ │ ├── typography.html │ │ │ │ └── vertical-slider.html │ │ │ ├── getting-started.html │ │ │ └── template.html │ │ ├── fonts │ │ │ ├── glyphicons │ │ │ │ ├── flat-ui-icons-regular.eot │ │ │ │ ├── flat-ui-icons-regular.svg │ │ │ │ ├── flat-ui-icons-regular.ttf │ │ │ │ ├── flat-ui-icons-regular.woff │ │ │ │ └── selection.json │ │ │ └── lato │ │ │ │ ├── lato-black.eot │ │ │ │ ├── lato-black.svg │ │ │ │ ├── lato-black.ttf │ │ │ │ ├── lato-black.woff │ │ │ │ ├── lato-bold.eot │ │ │ │ ├── lato-bold.svg │ │ │ │ ├── lato-bold.ttf │ │ │ │ ├── lato-bold.woff │ │ │ │ ├── lato-bolditalic.eot │ │ │ │ ├── lato-bolditalic.svg │ │ │ │ ├── lato-bolditalic.ttf │ │ │ │ ├── lato-bolditalic.woff │ │ │ │ ├── lato-italic.eot │ │ │ │ ├── lato-italic.svg │ │ │ │ ├── lato-italic.ttf │ │ │ │ ├── lato-italic.woff │ │ │ │ ├── lato-light.eot │ │ │ │ ├── lato-light.svg │ │ │ │ ├── lato-light.ttf │ │ │ │ ├── lato-light.woff │ │ │ │ ├── lato-regular.eot │ │ │ │ ├── lato-regular.svg │ │ │ │ ├── lato-regular.ttf │ │ │ │ └── lato-regular.woff │ │ ├── img │ │ │ ├── favicon.ico │ │ │ ├── icons │ │ │ │ ├── png │ │ │ │ │ ├── Book.png │ │ │ │ │ ├── Calendar.png │ │ │ │ │ ├── Chat.png │ │ │ │ │ ├── Clipboard.png │ │ │ │ │ ├── Compas.png │ │ │ │ │ ├── Gift-Box.png │ │ │ │ │ ├── Infinity-Loop.png │ │ │ │ │ ├── Mail.png │ │ │ │ │ ├── Map.png │ │ │ │ │ ├── Pensils.png │ │ │ │ │ ├── Pocket.png │ │ │ │ │ ├── Retina-Ready.png │ │ │ │ │ ├── Toilet-Paper.png │ │ │ │ │ └── Watches.png │ │ │ │ └── svg │ │ │ │ │ ├── book.svg │ │ │ │ │ ├── calendar.svg │ │ │ │ │ ├── chat.svg │ │ │ │ │ ├── clipboard.svg │ │ │ │ │ ├── clocks.svg │ │ │ │ │ ├── compas.svg │ │ │ │ │ ├── gift-box.svg │ │ │ │ │ ├── loop.svg │ │ │ │ │ ├── mail.svg │ │ │ │ │ ├── map.svg │ │ │ │ │ ├── paper-bag.svg │ │ │ │ │ ├── pencils.svg │ │ │ │ │ ├── retina.svg │ │ │ │ │ ├── ribbon.svg │ │ │ │ │ └── toilet-paper.svg │ │ │ ├── login │ │ │ │ ├── icon.png │ │ │ │ ├── imac-2x.png │ │ │ │ └── imac.png │ │ │ └── tile │ │ │ │ ├── ribbon-2x.png │ │ │ │ └── ribbon.png │ │ ├── index.html │ │ ├── js │ │ │ └── radiocheck.js │ │ ├── less │ │ │ ├── flat-ui.less │ │ │ ├── mixins.less │ │ │ ├── mixins │ │ │ │ ├── background-clip.less │ │ │ │ ├── background-variant.less │ │ │ │ ├── border-radius.less │ │ │ │ ├── buttons.less │ │ │ │ ├── center-block.less │ │ │ │ ├── clearfix.less │ │ │ │ ├── forms.less │ │ │ │ ├── gradients.less │ │ │ │ ├── grid.less │ │ │ │ ├── hide-text.less │ │ │ │ ├── image.less │ │ │ │ ├── nav-divider.less │ │ │ │ ├── navbar-vertical-align.less │ │ │ │ ├── opacity.less │ │ │ │ ├── pagination.less │ │ │ │ ├── pallets.less │ │ │ │ ├── reset-filter.less │ │ │ │ ├── resize.less │ │ │ │ ├── responsive-visibility.less │ │ │ │ ├── select.less │ │ │ │ ├── size.less │ │ │ │ ├── switches.less │ │ │ │ ├── tab-focus.less │ │ │ │ ├── text-emphasis.less │ │ │ │ ├── text-overflow.less │ │ │ │ └── vendor-prefixes.less │ │ │ ├── modules │ │ │ │ ├── button-groups.less │ │ │ │ ├── buttons.less │ │ │ │ ├── code.less │ │ │ │ ├── dropdowns.less │ │ │ │ ├── footer.less │ │ │ │ ├── forms.less │ │ │ │ ├── glyphicons.less │ │ │ │ ├── input-groups.less │ │ │ │ ├── local-fonts.less │ │ │ │ ├── login.less │ │ │ │ ├── navbar.less │ │ │ │ ├── pager.less │ │ │ │ ├── pagination.less │ │ │ │ ├── palette.less │ │ │ │ ├── progress-bars.less │ │ │ │ ├── radiocheck.less │ │ │ │ ├── scaffolding.less │ │ │ │ ├── select.less │ │ │ │ ├── share.less │ │ │ │ ├── slider.less │ │ │ │ ├── switch.less │ │ │ │ ├── tagsinput.less │ │ │ │ ├── thumbnails.less │ │ │ │ ├── tiles.less │ │ │ │ ├── todo-list.less │ │ │ │ ├── tooltip.less │ │ │ │ ├── type.less │ │ │ │ ├── typeahead.less │ │ │ │ └── video.less │ │ │ ├── spaces.less │ │ │ └── variables.less │ │ └── package.json │ │ ├── jquery │ │ ├── .bower.json │ │ ├── MIT-LICENSE.txt │ │ ├── bower.json │ │ ├── dist │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ └── jquery.min.map │ │ └── src │ │ │ ├── ajax.js │ │ │ ├── ajax │ │ │ ├── jsonp.js │ │ │ ├── load.js │ │ │ ├── parseJSON.js │ │ │ ├── parseXML.js │ │ │ ├── script.js │ │ │ ├── var │ │ │ │ ├── nonce.js │ │ │ │ └── rquery.js │ │ │ └── xhr.js │ │ │ ├── attributes.js │ │ │ ├── attributes │ │ │ ├── attr.js │ │ │ ├── classes.js │ │ │ ├── prop.js │ │ │ ├── support.js │ │ │ └── val.js │ │ │ ├── callbacks.js │ │ │ ├── core.js │ │ │ ├── core │ │ │ ├── access.js │ │ │ ├── init.js │ │ │ ├── parseHTML.js │ │ │ ├── ready.js │ │ │ └── var │ │ │ │ └── rsingleTag.js │ │ │ ├── css.js │ │ │ ├── css │ │ │ ├── addGetHookIf.js │ │ │ ├── curCSS.js │ │ │ ├── defaultDisplay.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ ├── support.js │ │ │ ├── swap.js │ │ │ └── var │ │ │ │ ├── cssExpand.js │ │ │ │ ├── getStyles.js │ │ │ │ ├── isHidden.js │ │ │ │ ├── rmargin.js │ │ │ │ └── rnumnonpx.js │ │ │ ├── data.js │ │ │ ├── data │ │ │ ├── Data.js │ │ │ ├── accepts.js │ │ │ └── var │ │ │ │ ├── data_priv.js │ │ │ │ └── data_user.js │ │ │ ├── deferred.js │ │ │ ├── deprecated.js │ │ │ ├── dimensions.js │ │ │ ├── effects.js │ │ │ ├── effects │ │ │ ├── Tween.js │ │ │ └── animatedSelector.js │ │ │ ├── event.js │ │ │ ├── event │ │ │ ├── ajax.js │ │ │ ├── alias.js │ │ │ └── support.js │ │ │ ├── exports │ │ │ ├── amd.js │ │ │ └── global.js │ │ │ ├── intro.js │ │ │ ├── jquery.js │ │ │ ├── manipulation.js │ │ │ ├── manipulation │ │ │ ├── _evalUrl.js │ │ │ ├── support.js │ │ │ └── var │ │ │ │ └── rcheckableType.js │ │ │ ├── offset.js │ │ │ ├── outro.js │ │ │ ├── queue.js │ │ │ ├── queue │ │ │ └── delay.js │ │ │ ├── selector-native.js │ │ │ ├── selector-sizzle.js │ │ │ ├── selector.js │ │ │ ├── serialize.js │ │ │ ├── sizzle │ │ │ └── dist │ │ │ │ ├── sizzle.js │ │ │ │ ├── sizzle.min.js │ │ │ │ └── sizzle.min.map │ │ │ ├── traversing.js │ │ │ ├── traversing │ │ │ ├── findFilter.js │ │ │ └── var │ │ │ │ └── rneedsContext.js │ │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── hasOwn.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── push.js │ │ │ ├── rnotwhite.js │ │ │ ├── slice.js │ │ │ ├── strundefined.js │ │ │ ├── support.js │ │ │ └── toString.js │ │ │ └── wrap.js │ │ ├── sockjs │ │ ├── .bower.json │ │ ├── component.json │ │ ├── sockjs.js │ │ └── sockjs.min.js │ │ ├── stomp │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── Cakefile │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── RELEASE_NOTES.md │ │ ├── bower.json │ │ ├── browsertests │ │ │ ├── index.html │ │ │ ├── integration │ │ │ │ ├── integration.html │ │ │ │ └── integration.js │ │ │ ├── qunit.css │ │ │ ├── qunit.js │ │ │ ├── test.css │ │ │ └── unit │ │ │ │ ├── ack.js │ │ │ │ ├── config.js │ │ │ │ ├── connection.js │ │ │ │ ├── frame.js │ │ │ │ ├── message.js │ │ │ │ ├── parse_connect.js │ │ │ │ ├── subscription.js │ │ │ │ ├── transaction.js │ │ │ │ └── websocket.js │ │ ├── coffeelint.json │ │ ├── doc │ │ │ ├── .gitignore │ │ │ ├── i │ │ │ │ └── johnny_automatic │ │ │ │ │ ├── johnny_automatic_advise_from_the_doctor.svg │ │ │ │ │ ├── johnny_automatic_elephant_climbing.svg │ │ │ │ │ ├── johnny_automatic_follow_the_leader.svg │ │ │ │ │ └── johnny_automatic_the_dynamometer_test.svg │ │ │ ├── index.html │ │ │ ├── j │ │ │ │ └── doc.js │ │ │ └── screen.css │ │ ├── example │ │ │ ├── README.md │ │ │ ├── chat │ │ │ │ └── index.html │ │ │ ├── css │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.responsive.css │ │ │ ├── index.html │ │ │ ├── server.js │ │ │ └── webworker │ │ │ │ ├── README.md │ │ │ │ ├── index.html │ │ │ │ └── webworker.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── stomp-node.js │ │ │ ├── stomp.js │ │ │ └── stomp.min.js │ │ ├── package.json │ │ ├── src │ │ │ ├── stomp-node.coffee │ │ │ ├── stomp-node.orig.js │ │ │ ├── stomp.coffee │ │ │ └── stomp.orig.js │ │ └── test │ │ │ ├── server.mock.coffee │ │ │ ├── stomp.spec.coffee │ │ │ └── websocket.mock.coffee │ │ └── videojs │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── component.json │ │ ├── composer.json │ │ ├── contrib.json │ │ ├── dist │ │ └── video-js │ │ │ ├── demo.captions.vtt │ │ │ ├── demo.html │ │ │ ├── font │ │ │ ├── vjs.eot │ │ │ ├── vjs.svg │ │ │ ├── vjs.ttf │ │ │ └── vjs.woff │ │ │ ├── video-js.css │ │ │ ├── video-js.less │ │ │ ├── video-js.min.css │ │ │ ├── video-js.swf │ │ │ ├── video.dev.js │ │ │ └── video.js │ │ ├── docs │ │ ├── api │ │ │ ├── vjs.BigPlayButton.md │ │ │ ├── vjs.Button.md │ │ │ ├── vjs.CaptionsButton.md │ │ │ ├── vjs.CaptionsTrack.md │ │ │ ├── vjs.ChaptersButton.md │ │ │ ├── vjs.ChaptersTrack.md │ │ │ ├── vjs.ChaptersTrackMenuItem.md │ │ │ ├── vjs.Component.md │ │ │ ├── vjs.ControlBar.md │ │ │ ├── vjs.CoreObject.md │ │ │ ├── vjs.CurrentTimeDisplay.md │ │ │ ├── vjs.DurationDisplay.md │ │ │ ├── vjs.Flash.md │ │ │ ├── vjs.FullscreenToggle.md │ │ │ ├── vjs.Html5.md │ │ │ ├── vjs.JSON.md │ │ │ ├── vjs.LoadProgressBar.md │ │ │ ├── vjs.LoadingSpinner.md │ │ │ ├── vjs.MediaLoader.md │ │ │ ├── vjs.MediaTechController.md │ │ │ ├── vjs.Menu.md │ │ │ ├── vjs.MenuButton.md │ │ │ ├── vjs.MenuItem.md │ │ │ ├── vjs.MuteToggle.md │ │ │ ├── vjs.OffTextTrackMenuItem.md │ │ │ ├── vjs.PlayProgressBar.md │ │ │ ├── vjs.PlayToggle.md │ │ │ ├── vjs.Player.md │ │ │ ├── vjs.PosterImage.md │ │ │ ├── vjs.ProgressControl.md │ │ │ ├── vjs.RemainingTimeDisplay.md │ │ │ ├── vjs.SeekBar.md │ │ │ ├── vjs.SeekHandle.md │ │ │ ├── vjs.Slider.md │ │ │ ├── vjs.SliderHandle.md │ │ │ ├── vjs.SubtitlesButton.md │ │ │ ├── vjs.SubtitlesTrack.md │ │ │ ├── vjs.TextTrack.md │ │ │ ├── vjs.TextTrackButton.md │ │ │ ├── vjs.TextTrackDisplay.md │ │ │ ├── vjs.TextTrackMenuItem.md │ │ │ ├── vjs.TimeDivider.md │ │ │ ├── vjs.VolumeBar.md │ │ │ ├── vjs.VolumeControl.md │ │ │ ├── vjs.VolumeHandle.md │ │ │ ├── vjs.VolumeLevel.md │ │ │ ├── vjs.VolumeMenuButton.md │ │ │ ├── vjs.md │ │ │ └── vjs.media.md │ │ ├── guides │ │ │ ├── api.md │ │ │ ├── components.md │ │ │ ├── glossary.md │ │ │ ├── languages.md │ │ │ ├── options.md │ │ │ ├── plugins.md │ │ │ ├── setup.md │ │ │ ├── skins.md │ │ │ ├── tech.md │ │ │ └── tracks.md │ │ └── index.md │ │ ├── lang │ │ └── es.json │ │ ├── package.json │ │ ├── sandbox │ │ ├── index.html.example │ │ ├── language.html.example │ │ └── plugin.html.example │ │ └── src │ │ ├── css │ │ ├── font │ │ │ ├── vjs.eot │ │ │ ├── vjs.svg │ │ │ ├── vjs.ttf │ │ │ └── vjs.woff │ │ └── video-js.less │ │ └── js │ │ ├── big-play-button.js │ │ ├── button.js │ │ ├── cdn.js │ │ ├── component.js │ │ ├── control-bar │ │ ├── control-bar.js │ │ ├── fullscreen-toggle.js │ │ ├── live-display.js │ │ ├── mute-toggle.js │ │ ├── play-toggle.js │ │ ├── playback-rate-menu-button.js │ │ ├── progress-control.js │ │ ├── time-display.js │ │ ├── volume-control.js │ │ └── volume-menu-button.js │ │ ├── core-object.js │ │ ├── core.js │ │ ├── error-display.js │ │ ├── events.js │ │ ├── exports.js │ │ ├── fullscreen-api.js │ │ ├── json.js │ │ ├── lib.js │ │ ├── loading-spinner.js │ │ ├── media-error.js │ │ ├── media │ │ ├── flash.externs.js │ │ ├── flash.js │ │ ├── html5.js │ │ ├── loader.js │ │ └── media.js │ │ ├── menu.js │ │ ├── player.externs.js │ │ ├── player.js │ │ ├── plugins.js │ │ ├── poster.js │ │ ├── setup.js │ │ ├── slider.js │ │ ├── tracks.js │ │ └── util.js └── zookeeper │ ├── .gitignore │ └── src │ └── main │ ├── java │ └── demo │ │ └── zookeeper │ │ ├── Application.java │ │ └── StateMachineCommands.java │ └── resources │ ├── META-INF │ └── spring │ │ └── spring-shell-plugin.xml │ └── statechartmodel.txt ├── spring-statemachine-starter └── spring-statemachine-starter.txt ├── spring-statemachine-test └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── test │ │ ├── AbstractStateMachineJUnit4Tests.java │ │ ├── AbstractStateMachineJUnit5Tests.java │ │ ├── StateMachineTestPlan.java │ │ ├── StateMachineTestPlanBuilder.java │ │ ├── TestUtils.java │ │ ├── assertj │ │ ├── StateContextAssert.java │ │ ├── StateMachineAssert.java │ │ ├── StateMachineAsserts.java │ │ └── StateMachineEventResultAssert.java │ │ └── support │ │ └── LatchStateMachineListener.java │ └── test │ └── java │ └── org │ └── springframework │ └── statemachine │ └── test │ ├── StateMachineTestPlanBuilderJUnit4Tests.java │ ├── StateMachineTestPlanBuilderJUnit5Tests.java │ ├── StateMachineTestingJUnit4Tests.java │ ├── StateMachineTestingJUnit5Tests.java │ ├── assertj │ └── StateMachineEventResultAssertTests.java │ └── docs │ └── DocsTestSampleTests.java ├── spring-statemachine-uml └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── uml │ │ ├── ResourcerResolver.java │ │ ├── UmlStateMachineModelFactory.java │ │ └── support │ │ ├── UmlModelParser.java │ │ └── UmlUtils.java │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── statemachine │ │ └── uml │ │ ├── AbstractUmlTests.java │ │ ├── ResourcerResolverTests.java │ │ ├── UmlStateMachineModelFactoryTests.java │ │ └── docs │ │ └── DocsUmlSampleTests1.java │ └── resources │ └── org │ └── springframework │ └── statemachine │ └── uml │ ├── action-with-transition-choice.di │ ├── action-with-transition-choice.notation │ ├── action-with-transition-choice.uml │ ├── action-with-transition-junction.di │ ├── action-with-transition-junction.notation │ ├── action-with-transition-junction.uml │ ├── broken-model-shadowentries.di │ ├── broken-model-shadowentries.notation │ ├── broken-model-shadowentries.uml │ ├── docs │ ├── simple-machine.di │ ├── simple-machine.notation │ └── simple-machine.uml │ ├── import-main │ ├── import-main.di │ ├── import-main.notation │ └── import-main.uml │ ├── import-sub │ ├── import-sub.di │ ├── import-sub.notation │ └── import-sub.uml │ ├── initial-actions.di │ ├── initial-actions.notation │ ├── initial-actions.uml │ ├── missingname-choice.di │ ├── missingname-choice.notation │ ├── missingname-choice.uml │ ├── multijoin-forkjoin.di │ ├── multijoin-forkjoin.notation │ ├── multijoin-forkjoin.uml │ ├── pseudostate-in-submachine.di │ ├── pseudostate-in-submachine.notation │ ├── pseudostate-in-submachine.uml │ ├── pseudostate-in-submachineref.di │ ├── pseudostate-in-submachineref.notation │ ├── pseudostate-in-submachineref.uml │ ├── simple-actions.di │ ├── simple-actions.notation │ ├── simple-actions.uml │ ├── simple-choice.di │ ├── simple-choice.notation │ ├── simple-choice.uml │ ├── simple-connectionpointref.di │ ├── simple-connectionpointref.notation │ ├── simple-connectionpointref.uml │ ├── simple-entryexit.di │ ├── simple-entryexit.notation │ ├── simple-entryexit.uml │ ├── simple-eventdefer.di │ ├── simple-eventdefer.notation │ ├── simple-eventdefer.uml │ ├── simple-flat-end.di │ ├── simple-flat-end.notation │ ├── simple-flat-end.uml │ ├── simple-flat-multiple-to-end-viachoices.di │ ├── simple-flat-multiple-to-end-viachoices.notation │ ├── simple-flat-multiple-to-end-viachoices.uml │ ├── simple-flat-multiple-to-end.di │ ├── simple-flat-multiple-to-end.notation │ ├── simple-flat-multiple-to-end.uml │ ├── simple-flat.di │ ├── simple-flat.notation │ ├── simple-flat.uml │ ├── simple-forkjoin.di │ ├── simple-forkjoin.notation │ ├── simple-forkjoin.uml │ ├── simple-guards.di │ ├── simple-guards.notation │ ├── simple-guards.uml │ ├── simple-history-deep.di │ ├── simple-history-deep.notation │ ├── simple-history-deep.uml │ ├── simple-history-default.di │ ├── simple-history-default.notation │ ├── simple-history-default.uml │ ├── simple-history-shallow.di │ ├── simple-history-shallow.notation │ ├── simple-history-shallow.uml │ ├── simple-junction.di │ ├── simple-junction.notation │ ├── simple-junction.uml │ ├── simple-localtransition.di │ ├── simple-localtransition.notation │ ├── simple-localtransition.uml │ ├── simple-root-regions.di │ ├── simple-root-regions.notation │ ├── simple-root-regions.uml │ ├── simple-spels.di │ ├── simple-spels.notation │ ├── simple-spels.uml │ ├── simple-state-actions.di │ ├── simple-state-actions.notation │ ├── simple-state-actions.uml │ ├── simple-submachine.di │ ├── simple-submachine.notation │ ├── simple-submachine.uml │ ├── simple-submachineref.di │ ├── simple-submachineref.notation │ ├── simple-submachineref.uml │ ├── simple-timers.di │ ├── simple-timers.notation │ ├── simple-timers.uml │ ├── simple-transitiontypes.di │ ├── simple-transitiontypes.notation │ ├── simple-transitiontypes.uml │ ├── transition-effect-spel.di │ ├── transition-effect-spel.notation │ └── transition-effect-spel.uml └── spring-statemachine-zookeeper └── src ├── main └── java │ └── org │ └── springframework │ └── statemachine │ └── zookeeper │ ├── ZookeeperStateMachineEnsemble.java │ └── ZookeeperStateMachinePersist.java └── test ├── java └── org │ └── springframework │ └── statemachine │ └── zookeeper │ ├── AbstractZookeeperTests.java │ ├── TestUtils.java │ ├── ZookeeperStateMachineEnsembleTests.java │ ├── ZookeeperStateMachinePersistTests.java │ ├── ZookeeperStateMachineTests.java │ └── docs │ └── DocsZookeeperSampleTests.java └── resources └── log4j2.xml /.github/labels-rename.yml: -------------------------------------------------------------------------------- 1 | - name: type/bug 2 | from_name: bug 3 | - name: status/duplicate 4 | from_name: duplicate 5 | - name: type/enhancement 6 | from_name: enhancement 7 | - name: type/help-needed 8 | from_name: help wanted 9 | - name: status/invalid 10 | from_name: invalid 11 | - name: type/question 12 | from_name: question 13 | - name: status/declined 14 | from_name: wontfix 15 | - name: type/task 16 | from_name: task 17 | - name: area/tests 18 | from_name: test 19 | - name: area/jepsen 20 | from_name: jepsen 21 | - name: area/documentation 22 | from_name: docs 23 | - name: for/backport 24 | from_name: backport 25 | - name: type/epic 26 | from_name: Epic 27 | - name: area/dependencies 28 | from_name: dependencies 29 | - name: for/blocker 30 | from_name: blocker 31 | -------------------------------------------------------------------------------- /.github/release-files-spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | { 4 | "aql": { 5 | "items.find": { 6 | "$and": [ 7 | { 8 | "@build.name": "${buildname}", 9 | "@build.number": "${buildnumber}", 10 | "path": {"$match": "org*"} 11 | }, 12 | { 13 | "$or": [ 14 | { 15 | "name": {"$match": "*.pom"} 16 | }, 17 | { 18 | "name": {"$match": "*.jar"} 19 | } 20 | ] 21 | } 22 | ] 23 | } 24 | }, 25 | "target": "nexus/" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /.github/rlnotes.mustache: -------------------------------------------------------------------------------- 1 | {{#headerslength}} 2 | # Generic Notes 3 | 4 | {{/headerslength}} 5 | {{#headers}} 6 | **{{title}}** 7 | {{body}} 8 | 9 | {{/headers}} 10 | # Issues 11 | 12 | {{#issues}} 13 | {{repo}}#{{number}} {{title}} 14 | {{/issues}} 15 | 16 | {{#footerslength}} 17 | # Additional Notes 18 | 19 | {{/footerslength}} 20 | {{#footers}} 21 | **{{title}}** 22 | {{body}} 23 | 24 | {{/footers}} 25 | -------------------------------------------------------------------------------- /.github/workflows/central-sync-close.yml: -------------------------------------------------------------------------------- 1 | name: Central Sync Close 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | stagedRepositoryId: 7 | description: "Staged repository id" 8 | required: true 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | 15 | # Request close promotion repo 16 | - uses: jvalkeal/nexus-sync@v0 17 | with: 18 | username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} 19 | password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} 20 | staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }} 21 | staging-repo-id: ${{ github.event.inputs.stagedRepositoryId }} 22 | close: true 23 | -------------------------------------------------------------------------------- /.github/workflows/central-sync-release.yml: -------------------------------------------------------------------------------- 1 | name: Central Sync Release 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | stagedRepositoryId: 7 | description: "Staged repository id" 8 | required: true 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | 15 | # Request release promotion repo 16 | - uses: jvalkeal/nexus-sync@v0 17 | with: 18 | username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} 19 | password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} 20 | staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }} 21 | staging-repo-id: ${{ github.event.inputs.stagedRepositoryId }} 22 | release: true 23 | -------------------------------------------------------------------------------- /.github/workflows/label-manage.yml: -------------------------------------------------------------------------------- 1 | name: Labels Manage 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'main' 7 | paths: 8 | - '.github/labels-manage.yml' 9 | - '.github/workflows/label-manage.yml' 10 | workflow_dispatch: 11 | 12 | jobs: 13 | labeler: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Mangle Labels 18 | uses: crazy-max/ghaction-github-labeler@v3 19 | with: 20 | github-token: ${{ secrets.GITHUB_TOKEN }} 21 | yaml-file: .github/labels-manage.yml 22 | dry-run: false 23 | skip-delete: false 24 | -------------------------------------------------------------------------------- /.github/workflows/label-rename.yml: -------------------------------------------------------------------------------- 1 | name: Labels Rename 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | labeler: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | - name: Rename Labels 12 | uses: crazy-max/ghaction-github-labeler@v3 13 | with: 14 | github-token: ${{ secrets.GITHUB_TOKEN }} 15 | yaml-file: .github/labels-rename.yml 16 | dry-run: false 17 | skip-delete: true 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | bin 3 | build 4 | .settings 5 | .classpath 6 | .project 7 | *.iml 8 | *.log 9 | *.ipr 10 | *.iws 11 | *.swp 12 | metastore_db 13 | /src/test/resources/s3.properties 14 | /.idea/ 15 | /.vscode/ 16 | .DS_Store 17 | out 18 | target 19 | classes 20 | .sts4-cache 21 | .attach_pid* 22 | nexus 23 | .jfrog 24 | -------------------------------------------------------------------------------- /docs/src/api/overview.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | This document is the API specification for the Spring Statemachine project. 4 |8 | For further API reference and developer documentation, see the 9 | Spring Statemachine Project Page. 10 | There you can find the latest news, links to documentation, books, presentations and webinars. 11 |
12 |To run the integration tests, you need a Stomp server listening to 11 | with a queue . 12 |
13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/browsertests/test.css: -------------------------------------------------------------------------------- 1 | #debug { 2 | background-color: #F0F0F0; 3 | font-size: 12px; 4 | height: 75%; 5 | overflow: auto; 6 | padding: 10px; 7 | z-index: 100; 8 | } -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/browsertests/unit/config.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | 3 | TEST = { 4 | destination : "/topic/chat.general", 5 | login : "admin", 6 | password : "password", 7 | url : "ws://localhost:61614", 8 | badUrl: "ws://localhost:61625", 9 | timeout: 2000, 10 | debug : function(str) { 11 | $("#debug").append(str + "\n"); 12 | } 13 | 14 | }; 15 | 16 | // fill server requirements: 17 | $("#test_url").text(TEST.url); 18 | $("#test_destination").text(TEST.destination); 19 | $("#test_login").text(TEST.login); 20 | $("#test_password").text(TEST.password); 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/browsertests/unit/connection.js: -------------------------------------------------------------------------------- 1 | module("Stomp Connection"); 2 | 3 | test("Connect to an invalid Stomp server", function() { 4 | 5 | var client = Stomp.client(TEST.badUrl); 6 | client.connect("foo", "bar", 7 | function() {}, 8 | function() { 9 | start(); 10 | }); 11 | stop(TEST.timeout); 12 | }); 13 | 14 | test("Connect to a valid Stomp server", function() { 15 | 16 | var client = Stomp.client(TEST.url); 17 | client.connect(TEST.login, TEST.password, 18 | function() { 19 | start(); 20 | }); 21 | stop(TEST.timeout); 22 | }); 23 | 24 | test("Disconnect", function() { 25 | 26 | var client = Stomp.client(TEST.url); 27 | client.connect(TEST.login, TEST.password, 28 | function() { 29 | // once connected, we disconnect 30 | client.disconnect(function() { 31 | start(); 32 | }); 33 | }); 34 | stop(TEST.timeout); 35 | }); -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/browsertests/unit/websocket.js: -------------------------------------------------------------------------------- 1 | module("Web Sockets"); 2 | 3 | test("check Web Sockets support", function() { 4 | ok(WebSocket, "this browser support Web Sockets"); 5 | }); 6 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/coffeelint.json: -------------------------------------------------------------------------------- 1 | { 2 | "max_line_length": { 3 | "value": 80, 4 | "level": "warn" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/doc/.gitignore: -------------------------------------------------------------------------------- 1 | docco.css 2 | stomp.html 3 | stomp-node.html 4 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/example/README.md: -------------------------------------------------------------------------------- 1 | # STOMP Over WebSocket Examples 2 | 3 | To run the examples, start a local HTPP server: 4 | 5 | $ node server.js 6 | 7 | The [Chat example](http://localhost:8080/chat/) shows how to use `stomp.js` to send and receive STOMP messages directly from the Web browser. 8 | 9 | The [WebWorker example](http://localhost:8080/chat/) uses a WebWorker to send and receive STOMP messages from the broker. 10 | 11 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/example/server.js: -------------------------------------------------------------------------------- 1 | var connect = require('connect'); 2 | 3 | connect() 4 | .use(connect.logger('dev')) 5 | .use(connect.static(__dirname)) 6 | .use(connect.static(__dirname + '/../lib/')) 7 | .listen(8080); 8 | console.log('Server running at https://0.0.0.0:8080/'); 9 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/example/webworker/README.md: -------------------------------------------------------------------------------- 1 | #WebWorker Example Using STOMP Over WebSocket 2 | 3 | This example uses a WebWorker to send and receive STOMP messages from the broker. 4 | 5 | The main page creates a WebWorker and post all the configuration to connect to the STOMP broker and send a text message. 6 | When the WebWorker will receive a message, it will inform the main page using its `postMessage` method. 7 | 8 | ##Running the Example 9 | 10 | run in the `example`parent directory: 11 | 12 | $ node server.js 13 | 14 | and go to [/webworker/](http://localhost:8080/webworker/). 15 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/stomp/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 [Jeff Mesnil](http://jmesnil.net/) 2 | // 3 | // Stomp Over WebSocket http://jmesnil.net/stomp-websocket/doc/ | Apache License V2.0 4 | // 5 | // The library can be used in node.js app to connect to STOMP brokers over TCP 6 | // or Web sockets. 7 | 8 | // Root of the `stompjs module` 9 | 10 | var Stomp = require('./lib/stomp.js'); 11 | var StompNode = require('./lib/stomp-node.js'); 12 | 13 | module.exports = Stomp.Stomp; 14 | module.exports.overTCP = StompNode.overTCP; 15 | module.exports.overWS = StompNode.overWS; -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "video.js", 3 | "description": "An HTML5 and Flash video player with a common API and skin for both.", 4 | "version": "4.7.3", 5 | "main": [ 6 | "dist/video-js/video.js", 7 | "dist/video-js/video-js.css" 8 | ], 9 | "keywords": [ 10 | "videojs", 11 | "html5", 12 | "flash", 13 | "video", 14 | "player" 15 | ], 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "test", 21 | "tests", 22 | "build" 23 | ], 24 | "homepage": "https://github.com/videojs/video.js", 25 | "_release": "4.7.3", 26 | "_resolution": { 27 | "type": "version", 28 | "tag": "v4.7.3", 29 | "commit": "760eb308db573022d6a96ee67bed9d205cde2aca" 30 | }, 31 | "_source": "git://github.com/videojs/video.js.git", 32 | "_target": "~4.7.2", 33 | "_originalSource": "videojs" 34 | } -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013 Brightcove, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | https://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "video.js", 3 | "description": "An HTML5 and Flash video player with a common API and skin for both.", 4 | "version": "4.7.3", 5 | "main": [ 6 | "dist/video-js/video.js", 7 | "dist/video-js/video-js.css" 8 | ], 9 | "keywords": [ 10 | "videojs", 11 | "html5", 12 | "flash", 13 | "video", 14 | "player" 15 | ], 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "test", 21 | "tests", 22 | "build" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "video.js", 3 | "description": "An HTML5 and Flash video player with a common API and skin for both.", 4 | "version": "4.7.3", 5 | "keywords": [ 6 | "videojs", 7 | "html5", 8 | "flash", 9 | "video", 10 | "player" 11 | ], 12 | "scripts": ["dist/video-js/video.dev.js"], 13 | "styles": ["dist/video-js/video-js.css"], 14 | "files": ["dist/video-js/video-js.swf"], 15 | "fonts": [ 16 | "dist/video-js/font/vjs.eot", 17 | "dist/video-js/font/vjs.svg", 18 | "dist/video-js/font/vjs.ttf", 19 | "dist/video-js/font/vjs.woff" 20 | ], 21 | "main": "dist/video-js/video.dev.js" 22 | } 23 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "videojs/video.js", 3 | "description": "An HTML5 and Flash video player with a common API and skin for both.", 4 | "type": "library", 5 | "keywords": [ 6 | "videojs", 7 | "html5", 8 | "flash", 9 | "video", 10 | "player" 11 | ], 12 | "homepage": "https://www.videojs.com/", 13 | "license": "Apache-2.0" 14 | } 15 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/demo.captions.vtt: -------------------------------------------------------------------------------- 1 | WEBVTT 2 | 3 | 00:00.700 --> 00:04.110 4 | Captions describe all relevant audio for the hearing impaired. 5 | [ Heroic music playing for a seagull ] 6 | 7 | 00:04.500 --> 00:05.000 8 | [ Splash!!! ] 9 | 10 | 00:05.100 --> 00:06.000 11 | [ Sploosh!!! ] 12 | 13 | 00:08.000 --> 00:09.225 14 | [ Splash...splash...splash splash splash ] 15 | 16 | 00:10.525 --> 00:11.255 17 | [ Splash, Sploosh again ] 18 | 19 | 00:13.500 --> 00:14.984 20 | Dolphin: eeeEEEEEeeee! 21 | 22 | 00:14.984 --> 00:16.984 23 | Dolphin: Squawk! eeeEEE? 24 | 25 | 00:25.000 --> 00:28.284 26 | [ A whole ton of splashes ] 27 | 28 | 00:29.500 --> 00:31.000 29 | Mine. Mine. Mine. 30 | 31 | 00:34.300 --> 00:36.000 32 | Shark: Chomp 33 | 34 | 00:36.800 --> 00:37.900 35 | Shark: CHOMP!!! 36 | 37 | 00:37.861 --> 00:41.193 38 | EEEEEEOOOOOOOOOOWHALENOISE 39 | 40 | 00:42.593 --> 00:45.611 41 | [ BIG SPLASH ] -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/font/vjs.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/font/vjs.eot -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/font/vjs.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/font/vjs.ttf -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/font/vjs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/font/vjs.woff -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/video-js.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/dist/video-js/video-js.swf -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/docs/api/vjs.JSON.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # vjs.JSON 4 | 5 | 6 | --- 7 | 8 | ## INDEX 9 | 10 | - [METHODS](#methods) 11 | - [parse](#parse-text-reviver-) 12 | 13 | --- 14 | 15 | ## METHODS 16 | 17 | ### parse( text, [reviver] ) 18 | > parse the json 19 | 20 | ##### PARAMETERS: 21 | * __text__ `String` The JSON string to parse 22 | * __reviver__ `Function` _(OPTIONAL)_ Optional function that can transform the results 23 | 24 | ##### RETURNS: 25 | * `Object|Array` The parsed JSON 26 | 27 | _defined in_: [src/js/json.js#L34](https://github.com/videojs/video.js/blob/master/src/js/json.js#L34) 28 | 29 | --- 30 | 31 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/docs/api/vjs.media.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # vjs.media 4 | 5 | 6 | --- 7 | 8 | ## INDEX 9 | 10 | - [UNDEFINED](#undefined) 11 | - [ApiMethods](#apimethods) 12 | 13 | --- 14 | 15 | ## UNDEFINED 16 | 17 | ### ApiMethods 18 | > List of default API methods for any MediaTechController 19 | 20 | _defined in_: [src/js/media/media.js#L169](https://github.com/videojs/video.js/blob/master/src/js/media/media.js#L169) 21 | 22 | --- 23 | 24 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/css/font/vjs.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/css/font/vjs.eot -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/css/font/vjs.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/css/font/vjs.ttf -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/css/font/vjs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlanBinu007/spring-statemachine/4da9c52742faa51b0085ea3b04abbe0a32949960/spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/css/font/vjs.woff -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/js/big-play-button.js: -------------------------------------------------------------------------------- 1 | /* Big Play Button 2 | ================================================================================ */ 3 | /** 4 | * Initial play button. Shows before the video has played. The hiding of the 5 | * big play button is done via CSS and player states. 6 | * @param {vjs.Player|Object} player 7 | * @param {Object=} options 8 | * @class 9 | * @constructor 10 | */ 11 | vjs.BigPlayButton = vjs.Button.extend(); 12 | 13 | vjs.BigPlayButton.prototype.createEl = function(){ 14 | return vjs.Button.prototype.createEl.call(this, 'div', { 15 | className: 'vjs-big-play-button', 16 | innerHTML: '', 17 | 'aria-label': 'play video' 18 | }); 19 | }; 20 | 21 | vjs.BigPlayButton.prototype.onClick = function(){ 22 | this.player_.play(); 23 | }; 24 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/js/control-bar/control-bar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Container of main controls 3 | * @param {vjs.Player|Object} player 4 | * @param {Object=} options 5 | * @class 6 | * @constructor 7 | * @extends vjs.Component 8 | */ 9 | vjs.ControlBar = vjs.Component.extend(); 10 | 11 | vjs.ControlBar.prototype.options_ = { 12 | loadEvent: 'play', 13 | children: { 14 | 'playToggle': {}, 15 | 'currentTimeDisplay': {}, 16 | 'timeDivider': {}, 17 | 'durationDisplay': {}, 18 | 'remainingTimeDisplay': {}, 19 | 'liveDisplay': {}, 20 | 'progressControl': {}, 21 | 'fullscreenToggle': {}, 22 | 'volumeControl': {}, 23 | 'muteToggle': {}, 24 | // 'volumeMenuButton': {}, 25 | 'playbackRateMenuButton': {} 26 | } 27 | }; 28 | 29 | vjs.ControlBar.prototype.createEl = function(){ 30 | return vjs.createEl('div', { 31 | className: 'vjs-control-bar' 32 | }); 33 | }; 34 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/js/control-bar/live-display.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Displays the live indicator 3 | * TODO - Future make it click to snap to live 4 | * @param {vjs.Player|Object} player 5 | * @param {Object=} options 6 | * @constructor 7 | */ 8 | vjs.LiveDisplay = vjs.Component.extend({ 9 | init: function(player, options){ 10 | vjs.Component.call(this, player, options); 11 | } 12 | }); 13 | 14 | vjs.LiveDisplay.prototype.createEl = function(){ 15 | var el = vjs.Component.prototype.createEl.call(this, 'div', { 16 | className: 'vjs-live-controls vjs-control' 17 | }); 18 | 19 | this.contentEl_ = vjs.createEl('div', { 20 | className: 'vjs-live-display', 21 | innerHTML: '' + this.localize('Stream Type') + '' + this.localize('LIVE'), 22 | 'aria-live': 'off' 23 | }); 24 | 25 | el.appendChild(this.contentEl_); 26 | 27 | return el; 28 | }; 29 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/js/error-display.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Display that an error has occurred making the video unplayable 3 | * @param {vjs.Player|Object} player 4 | * @param {Object=} options 5 | * @constructor 6 | */ 7 | vjs.ErrorDisplay = vjs.Component.extend({ 8 | init: function(player, options){ 9 | vjs.Component.call(this, player, options); 10 | 11 | this.update(); 12 | player.on('error', vjs.bind(this, this.update)); 13 | } 14 | }); 15 | 16 | vjs.ErrorDisplay.prototype.createEl = function(){ 17 | var el = vjs.Component.prototype.createEl.call(this, 'div', { 18 | className: 'vjs-error-display' 19 | }); 20 | 21 | this.contentEl_ = vjs.createEl('div'); 22 | el.appendChild(this.contentEl_); 23 | 24 | return el; 25 | }; 26 | 27 | vjs.ErrorDisplay.prototype.update = function(){ 28 | if (this.player().error()) { 29 | this.contentEl_.innerHTML = this.localize(this.player().error().message); 30 | } 31 | }; 32 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/js/media/flash.externs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @fileoverview Externs for video-js.swf. Externs are functions 3 | * that the compiler shouldn't obfuscate. 4 | */ 5 | 6 | /** 7 | * @param {string} name 8 | */ 9 | HTMLObjectElement.prototype.vjs_getProperty = function(name) {}; 10 | 11 | /** 12 | * @param {string} name 13 | * @param {string|number} value 14 | */ 15 | HTMLObjectElement.prototype.vjs_setProperty = function(name, value) {}; 16 | 17 | /** 18 | * Control methods 19 | */ 20 | HTMLObjectElement.prototype.vjs_play = function() {}; 21 | HTMLObjectElement.prototype.vjs_pause = function() {}; 22 | HTMLObjectElement.prototype.vjs_load = function() {}; 23 | 24 | /** 25 | * @param {string} src 26 | */ 27 | HTMLObjectElement.prototype.vjs_src = function(src) {}; 28 | -------------------------------------------------------------------------------- /spring-statemachine-samples/web/src/main/resources/static/lib/videojs/src/js/plugins.js: -------------------------------------------------------------------------------- 1 | /** 2 | * the method for registering a video.js plugin 3 | * 4 | * @param {String} name The name of the plugin 5 | * @param {Function} init The function that is run when the player inits 6 | */ 7 | vjs.plugin = function(name, init){ 8 | vjs.Player.prototype[name] = init; 9 | }; 10 | -------------------------------------------------------------------------------- /spring-statemachine-samples/zookeeper/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | bin 3 | build 4 | .settings 5 | .classpath 6 | .springBeans 7 | .project 8 | *.iml 9 | *.ipr 10 | *.iws 11 | metastore_db 12 | /samples/pig-scripting/src/main/resources/ml-100k.zip 13 | /samples/pig-scripting/src/main/resources/ml-100k/u.data 14 | /src/test/resources/s3.properties 15 | /.idea/ 16 | .DS_Store 17 | /out/ 18 | target 19 | *.log 20 | -------------------------------------------------------------------------------- /spring-statemachine-samples/zookeeper/src/main/resources/META-INF/spring/spring-shell-plugin.xml: -------------------------------------------------------------------------------- 1 | 2 |