From b5da16ac82aa6f5e386ccef4eadcd7b1f7997d1a Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Sun, 10 Apr 2016 15:53:42 +0100 Subject: [PATCH] Update docs - Relates to #194 --- build.gradle | 3 + .../reference/asciidoc/getting-started.adoc | 6 ++ .../asciidoc/images/simple-machine.png | Bin 0 -> 6352 bytes .../asciidoc/samples/simple-machine.uml | 16 +++ docs/src/reference/asciidoc/sm.adoc | 68 ++++++++++++ docs/src/reference/asciidoc/whatsnew.adoc | 3 +- .../docs/DocsConfigurationSampleTests8.java | 75 ++++++++++++++ .../uml/docs/DocsUmlSampleTests1.java | 49 +++++++++ .../statemachine/uml/docs/simple-machine.di | 2 + .../uml/docs/simple-machine.notation | 97 ++++++++++++++++++ .../statemachine/uml/docs/simple-machine.uml | 16 +++ 11 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 docs/src/reference/asciidoc/images/simple-machine.png create mode 100644 docs/src/reference/asciidoc/samples/simple-machine.uml create mode 100644 spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests8.java create mode 100644 spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/docs/DocsUmlSampleTests1.java create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.di create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.notation create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.uml diff --git a/build.gradle b/build.gradle index bb24ac21..fb1ab9c5 100644 --- a/build.gradle +++ b/build.gradle @@ -344,6 +344,8 @@ configure(rootProject) { from 'spring-statemachine-test/src/test/java/org/springframework/statemachine/test/docs' from 'spring-statemachine-recipes/src/test/java/org/springframework/statemachine/recipes/docs' from 'spring-statemachine-zookeeper/src/test/java/org/springframework/statemachine/zookeeper/docs' + from 'spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/docs' + from 'spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs' from 'spring-statemachine-samples/src/main/java/' from 'spring-statemachine-samples/washer/src/main/java/' from 'spring-statemachine-samples/tasks/src/main/java/' @@ -355,6 +357,7 @@ configure(rootProject) { from 'spring-statemachine-samples/security/src/main/java/' from 'spring-statemachine-samples/eventservice/src/main/java/' include '**/*.java' + include '**/*.uml' into 'docs/src/reference/asciidoc/samples' } diff --git a/docs/src/reference/asciidoc/getting-started.adoc b/docs/src/reference/asciidoc/getting-started.adoc index c607732f..87467acd 100644 --- a/docs/src/reference/asciidoc/getting-started.adoc +++ b/docs/src/reference/asciidoc/getting-started.adoc @@ -42,6 +42,12 @@ framework. |spring-statemachine-test |Support module for state machine testing. + +|spring-statemachine-cluster +|Support module for Spring Cloud Cluster. + +|spring-statemachine-uml +|Support module for UI uml modeling. |=== == Using Gradle diff --git a/docs/src/reference/asciidoc/images/simple-machine.png b/docs/src/reference/asciidoc/images/simple-machine.png new file mode 100644 index 0000000000000000000000000000000000000000..371a8670dad646a33b931fd92c2ee0501a463367 GIT binary patch literal 6352 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 R;Qt7Kj+Wlt;yX`5{~r*c*1Z4# literal 0 HcmV?d00001 diff --git a/docs/src/reference/asciidoc/samples/simple-machine.uml b/docs/src/reference/asciidoc/samples/simple-machine.uml new file mode 100644 index 00000000..13fdf9ec --- /dev/null +++ b/docs/src/reference/asciidoc/samples/simple-machine.uml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/src/reference/asciidoc/sm.adoc b/docs/src/reference/asciidoc/sm.adoc index c175c6a6..13205290 100644 --- a/docs/src/reference/asciidoc/sm.adoc +++ b/docs/src/reference/asciidoc/sm.adoc @@ -346,6 +346,38 @@ include::samples/DocsConfigurationSampleTests.java[tags=snippetYC] More about config model, refer to section <>. +=== Configuring Model +`StateMachineModelFactory` is a hook to configure statemachine model +without using a manual configuration. Essentially it is a thirt party +integration to integrate into a configuration model. +`StateMachineModelFactory` can be hooked into a configuration model by +using a `StateMachineModelConfigurer` as shown above. + +[source,java,indent=0] +---- +include::samples/DocsConfigurationSampleTests8.java[tags=snippetA] +---- + +As a custom example `CustomStateMachineModelFactory` would simply +define two states, _S1_ and _S2_ and an event _E1_ between those +states. + +[source,java,indent=0] +---- +include::samples/DocsConfigurationSampleTests8.java[tags=snippetB] +---- + +[NOTE] +==== +Defining a custom model is usually not what end user is looking for, +although it is possible, however it is a central concept of allowing +external access to this configuration model. +==== + +Example of using this model factory integration can be found from +<>. More generic info about custom model integration can +be found from <>. + [[statemachine-config-thingstoremember]] === Things to Remember @@ -1672,3 +1704,39 @@ event is sent to particular, random or all machines. All possible options for expected are documented in javadocs {sm-statemachinetestplanbuilder-statemachinetestplanstepbuilder}[_StateMachineTestPlanStepBuilder_]. ==== + +[[sm-papyrus]] +== Eclipse Modeling Support +Defining a state machine configuration with UI modeling is supported +via Eclipse Papyrus framework. + +From eclipse wizard create a new _Papyrus Model_ with `UML` _Diagram +Language_. In this example it's named as `simple-machine`. Then you've +given an option to choose various diagram kind's and a `StateMachine +Diagram` mush be chooce. + +We want to create a machine having two states, `S1` and `S2` where +`S1` is initial state. Then event `E1` is created to do a transition +from `S1` to `S2`. In papyrus a machine would then look like something +shown below. + +image::images/simple-machine.png[width=500] + +Behind a scenes a raw uml file would look like. + +[source,xml,indent=0] +---- +include::samples/simple-machine.uml[] +---- + +After uml file is in place in your project, it can be imported into +configuration using `StateMachineModelConfigurer` where +`StateMachineModelFactory` is associated with a model. +`UmlStateMachineModelFactory` is a special factory which knows howto +process eclipse's uml structure. + +[source,java,indent=0] +---- +include::samples/DocsUmlSampleTests1.java[tags=snippetA] +---- + diff --git a/docs/src/reference/asciidoc/whatsnew.adoc b/docs/src/reference/asciidoc/whatsnew.adoc index afd65856..2861fdc1 100644 --- a/docs/src/reference/asciidoc/whatsnew.adoc +++ b/docs/src/reference/asciidoc/whatsnew.adoc @@ -17,5 +17,6 @@ interoperability with web applications. * Configuration model classes are now a public API. * New features in timer based events. * Configuration model verifier. -* New samples, <>, <> +* New samples, <>, <>. +* UI modeling support using Eclipse Papyrus, <>. diff --git a/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests8.java b/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests8.java new file mode 100644 index 00000000..8440f4aa --- /dev/null +++ b/spring-statemachine-core/src/test/java/org/springframework/statemachine/docs/DocsConfigurationSampleTests8.java @@ -0,0 +1,75 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.statemachine.docs; + +import java.util.ArrayList; +import java.util.Collection; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.statemachine.config.EnableStateMachine; +import org.springframework.statemachine.config.StateMachineConfigurerAdapter; +import org.springframework.statemachine.config.builders.StateMachineModelConfigurer; +import org.springframework.statemachine.config.model.ConfigurationData; +import org.springframework.statemachine.config.model.DefaultStateMachineModel; +import org.springframework.statemachine.config.model.StateData; +import org.springframework.statemachine.config.model.StateMachineModel; +import org.springframework.statemachine.config.model.StateMachineModelFactory; +import org.springframework.statemachine.config.model.StatesData; +import org.springframework.statemachine.config.model.TransitionData; +import org.springframework.statemachine.config.model.TransitionsData; + +public class DocsConfigurationSampleTests8 { + +// tag::snippetA[] + @Configuration + @EnableStateMachine + public static class Config1 extends StateMachineConfigurerAdapter { + + @Override + public void configure(StateMachineModelConfigurer model) throws Exception { + model + .withModel() + .factory(modelFactory()); + } + + @Bean + public StateMachineModelFactory modelFactory() { + return new CustomStateMachineModelFactory(); + } + } +// end::snippetA[] + +// tag::snippetB[] + public static class CustomStateMachineModelFactory implements StateMachineModelFactory { + + @Override + public StateMachineModel build() { + ConfigurationData configurationData = new ConfigurationData<>(); + Collection> stateData = new ArrayList<>(); + stateData.add(new StateData("S1", true)); + stateData.add(new StateData("S2")); + StatesData statesData = new StatesData<>(stateData); + Collection> transitionData = new ArrayList<>(); + transitionData.add(new TransitionData("S1", "S2", "E1")); + TransitionsData transitionsData = new TransitionsData<>(transitionData); + StateMachineModel stateMachineModel = new DefaultStateMachineModel(configurationData, + statesData, transitionsData); + return stateMachineModel; + } + } +// end::snippetB[] +} diff --git a/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/docs/DocsUmlSampleTests1.java b/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/docs/DocsUmlSampleTests1.java new file mode 100644 index 00000000..e8e00623 --- /dev/null +++ b/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/docs/DocsUmlSampleTests1.java @@ -0,0 +1,49 @@ +/* + * Copyright 2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.statemachine.uml.docs; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.statemachine.config.EnableStateMachine; +import org.springframework.statemachine.config.StateMachineConfigurerAdapter; +import org.springframework.statemachine.config.builders.StateMachineModelConfigurer; +import org.springframework.statemachine.config.model.StateMachineModelFactory; +import org.springframework.statemachine.uml.UmlStateMachineModelFactory; + +public class DocsUmlSampleTests1 { + +// tag::snippetA[] + @Configuration + @EnableStateMachine + public static class Config1 extends StateMachineConfigurerAdapter { + + @Override + public void configure(StateMachineModelConfigurer model) throws Exception { + model + .withModel() + .factory(modelFactory()); + } + + @Bean + public StateMachineModelFactory modelFactory() { + Resource model = new ClassPathResource("org/springframework/statemachine/uml/docs/simple-machine.uml"); + return new UmlStateMachineModelFactory(model); + } + } +// end::snippetA[] +} diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.di b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.di new file mode 100644 index 00000000..bf9abab3 --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.di @@ -0,0 +1,2 @@ + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.notation b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.notation new file mode 100644 index 00000000..bf7d563c --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.notation @@ -0,0 +1,97 @@ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.uml b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.uml new file mode 100644 index 00000000..13fdf9ec --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/docs/simple-machine.uml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + +