From f4ce9310c19d4fb010dda5df45908aa37c2254e4 Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Sat, 5 Dec 2020 13:36:46 +0000 Subject: [PATCH] Support uml model linking - Essentially add support to be able to understand papyrus uml linked models. - Change handling of files in a classpath(fat-jar) to copy those into jvm tmp directory in a structure where relative links can work. - Forward port #888 --- .../asciidoc/images/papyrus-gs-22.png | Bin 0 -> 179965 bytes docs/src/reference/asciidoc/sm.adoc | 21 +++ .../statemachine/uml/ResourcerResolver.java | 138 ++++++++++++++++++ .../uml/UmlStateMachineModelFactory.java | 98 +++++++------ .../uml/support/UmlModelParser.java | 98 ++++++++++--- .../uml/ResourcerResolverTests.java | 124 ++++++++++++++++ .../uml/UmlStateMachineModelFactoryTests.java | 30 ++++ .../uml/docs/DocsUmlSampleTests1.java | 23 ++- .../uml/import-main/import-main.di | 2 + .../uml/import-main/import-main.notation | 93 ++++++++++++ .../uml/import-main/import-main.uml | 17 +++ .../statemachine/uml/import-sub/import-sub.di | 2 + .../uml/import-sub/import-sub.notation | 93 ++++++++++++ .../uml/import-sub/import-sub.uml | 16 ++ 14 files changed, 682 insertions(+), 73 deletions(-) create mode 100644 docs/src/reference/asciidoc/images/papyrus-gs-22.png create mode 100644 spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/ResourcerResolver.java create mode 100644 spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/ResourcerResolverTests.java create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.di create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.notation create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.uml create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.di create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.notation create mode 100644 spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.uml diff --git a/docs/src/reference/asciidoc/images/papyrus-gs-22.png b/docs/src/reference/asciidoc/images/papyrus-gs-22.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0c4627cf64703226c075340164185ae897a940 GIT binary patch literal 179965 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�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�?pXDRylQJHz%tr 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 rqwIxf1hEMX holders = new ArrayList<>(); + if (mainLocation != null) { + Resource[] resources = Stream.concat(Stream.of(mainLocation), Stream.of(additionalLocations)) + .map(location -> resourceLoader.getResource(location)) + .toArray(Resource[]::new); + return getResourceUris(resources); + } else if (mainResource != null) { + Resource[] resources = Stream.concat(Stream.of(mainResource), Stream.of(additionalResources)) + .toArray(Resource[]::new); + return getResourceUris(resources); + } + return holders.toArray(new Holder[0]); + } + + private Holder[] getResourceUris(Resource... resources) { + ArrayList holders = new ArrayList<>(); + try { + if (allPhysical(resources)) { + for (Resource resource : resources) { + holders.add(new Holder(resource.getFile().toURI())); + } + } else { + Path tempDir = Files.createTempDirectory(null); + for (Resource resource : resources) { + if (resource instanceof ClassPathResource) { + ClassPathResource cpr = (ClassPathResource)resource; + File f = new File(tempDir.toFile(), cpr.getPath()); + f.getParentFile().mkdirs(); + FileCopyUtils.copy(resource.getInputStream(), new FileOutputStream(f)); + holders.add(new Holder(f.toURI(), f.toPath())); + } + } + } + } catch (IOException e) { + throw new StateMachineException(e); + } + return holders.toArray(new Holder[0]); + } + + private boolean isPhysical(Resource resource) { + try { + resource.getFile(); + return true; + } catch (Exception e) { + } + return false; + } + + private boolean allPhysical(Resource... resources) { + for (Resource resource : resources) { + if (!isPhysical(resource)) { + return false; + } + } + return true; + } + + static class Holder { + URI uri; + Path path; + + public Holder(URI uri) { + this(uri, null); + } + + public Holder(URI uri, Path path) { + this.uri = uri; + this.path = path; + } + + public URI getUri() { + return uri; + } + + public Path getPath() { + return path; + } + } +} diff --git a/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/UmlStateMachineModelFactory.java b/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/UmlStateMachineModelFactory.java index 94501396..941fb1d2 100644 --- a/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/UmlStateMachineModelFactory.java +++ b/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/UmlStateMachineModelFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 the original author or authors. + * Copyright 2016-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,11 +15,7 @@ */ package org.springframework.statemachine.uml; -import java.io.FileOutputStream; -import java.io.IOException; -import java.net.URI; import java.nio.file.Files; -import java.nio.file.Path; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.uml2.uml.Model; @@ -29,23 +25,33 @@ import org.springframework.statemachine.config.model.AbstractStateMachineModelFa import org.springframework.statemachine.config.model.DefaultStateMachineModel; import org.springframework.statemachine.config.model.StateMachineModel; import org.springframework.statemachine.config.model.StateMachineModelFactory; +import org.springframework.statemachine.uml.ResourcerResolver.Holder; import org.springframework.statemachine.uml.support.UmlModelParser; import org.springframework.statemachine.uml.support.UmlModelParser.DataHolder; import org.springframework.statemachine.uml.support.UmlUtils; import org.springframework.util.Assert; -import org.springframework.util.FileCopyUtils; /** * {@link StateMachineModelFactory} which builds {@link StateMachineModel} from * uml representation. * + * {@code resource} or {@code location} is a main uml file used as a source + * passed to parser classes. {@code additionalResources} and {@code additionalLocations} + * are needed if uml model have references or links to additional uml files as an + * import. In case of a these files being located in a classpath which is inside of + * a jar, files are copied out into filesystem as eclipse uml libs can only parse + * physical files. In a case of this a common "path" from all resources are resolved + * and copied into filesystem with a structure so that at least relative links in uml + * files will work. + * * @author Janne Valkealahti */ -public class UmlStateMachineModelFactory extends AbstractStateMachineModelFactory - implements StateMachineModelFactory { +public class UmlStateMachineModelFactory extends AbstractStateMachineModelFactory { private Resource resource; private String location; + private Resource[] additionalResources; + private String[] additionalLocations; /** * Instantiates a new uml state machine model factory. @@ -53,8 +59,7 @@ public class UmlStateMachineModelFactory extends AbstractStateMachineModelFactor * @param resource the resource */ public UmlStateMachineModelFactory(Resource resource) { - Assert.notNull(resource, "Resource must be set"); - this.resource = resource; + this(resource, null); } /** @@ -63,20 +68,51 @@ public class UmlStateMachineModelFactory extends AbstractStateMachineModelFactor * @param location the resource location */ public UmlStateMachineModelFactory(String location) { + this(location, null); + } + + /** + * Instantiates a new uml state machine model factory. + * + * @param resource the resource + * @param additionalResources the additional resources + */ + public UmlStateMachineModelFactory(Resource resource, Resource[] additionalResources) { + Assert.notNull(resource, "Resource must be set"); + this.resource = resource; + this.additionalResources = additionalResources; + } + + /** + * Instantiates a new uml state machine model factory. + * + * @param location the resource location + * @param additionalLocations the additional locations + */ + public UmlStateMachineModelFactory(String location, String[] additionalLocations) { Assert.notNull(location, "Location must be set"); this.location = location; + this.additionalLocations = additionalLocations; } @Override public StateMachineModel build() { - Model model = null; + ResourcerResolver resourceResolver = null; + if (this.location != null) { + resourceResolver = new ResourcerResolver(getResourceLoader(), location, additionalLocations); + } else if (this.resource != null) { + resourceResolver = new ResourcerResolver(resource, additionalResources); + } + Holder holder = null; + Model model = null; org.eclipse.emf.ecore.resource.Resource resource = null; try { - holder = getResourceUri(resolveResource()); + Holder[] resources = resourceResolver.resolve(); + holder = resources != null && resources.length > 0 ? resources[0] : null; resource = UmlUtils.getResource(holder.uri.getPath()); model = (Model) EcoreUtil.getObjectByType(resource.getContents(), UMLPackage.Literals.MODEL); - } catch (IOException e) { + } catch (Exception e) { throw new IllegalArgumentException("Cannot build build model from resource " + resource + " or location " + location, e); } finally { // if we have a path, tmp file were created, clean it @@ -87,6 +123,7 @@ public class UmlStateMachineModelFactory extends AbstractStateMachineModelFactor } } } + UmlModelParser parser = new UmlModelParser(model, this); DataHolder dataHolder = parser.parseModel(); @@ -107,39 +144,4 @@ public class UmlStateMachineModelFactory extends AbstractStateMachineModelFactor // we don't set configurationData here, so assume null return new DefaultStateMachineModel(null, dataHolder.getStatesData(), dataHolder.getTransitionsData()); } - - private Resource resolveResource() { - if (resource != null) { - return resource; - } else { - return getResourceLoader().getResource(location); - } - } - - private Holder getResourceUri(Resource resource) throws IOException { - // try to see if resource is an actual File and eclipse - // libs cannot use input stream. thus creating a tmp file with - // needed .uml prefix and getting URI from there. - try { - return new Holder(resource.getFile().toURI()); - } catch (Exception e) { - } - Path tempFile = Files.createTempFile(null, ".uml"); - FileCopyUtils.copy(resource.getInputStream(), new FileOutputStream(tempFile.toFile())); - return new Holder(tempFile.toUri(), tempFile); - } - - private static class Holder { - URI uri; - Path path; - - public Holder(URI uri) { - this(uri, null); - } - - public Holder(URI uri, Path path) { - this.uri = uri; - this.path = path; - } - } } diff --git a/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/support/UmlModelParser.java b/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/support/UmlModelParser.java index 0647690f..bec2a46c 100644 --- a/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/support/UmlModelParser.java +++ b/spring-statemachine-uml/src/main/java/org/springframework/statemachine/uml/support/UmlModelParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2019 the original author or authors. + * Copyright 2016-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -69,8 +69,9 @@ import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; /** - * Model parser which constructs states and transitions data out from - * an uml model. + * Model parser which constructs states and transitions data out from an uml + * model. This implementation is not thread safe and model parsing can only be + * used once per instance. * * @author Janne Valkealahti */ @@ -92,6 +93,10 @@ public class UmlModelParser { private final AtomicInteger pseudostateNamingCounter = new AtomicInteger(1); private final Map pseudostateNaming = new HashMap<>(); + private final List seenStateData = new ArrayList<>(); + private final List seenEntryData = new ArrayList<>(); + private final List seenExitData = new ArrayList<>(); + private final List seenTransitionData = new ArrayList<>(); /** * Instantiates a new uml model parser. @@ -158,6 +163,46 @@ public class UmlModelParser { }); } + private void addStateData(StateData stateData) { + String key = stateData.getState(); + if (!seenStateData.contains(key)) { + stateDatas.add(stateData); + seenStateData.add(key); + } + } + + private void addEntryData(EntryData entryData) { + String skey = entryData.getSource() != null ? entryData.getSource() : "null"; + String tkey = entryData.getTarget() != null ? entryData.getTarget() : "null"; + String key = skey + "_" + tkey; + if (!seenEntryData.contains(key)) { + entrys.add(entryData); + seenEntryData.add(key); + } + } + + private void addExitData(ExitData exitData) { + String skey = exitData.getSource() != null ? exitData.getSource() : "null"; + String tkey = exitData.getTarget() != null ? exitData.getTarget() : "null"; + String key = skey + "_" + tkey; + if (!seenExitData.contains(key)) { + exits.add(exitData); + seenExitData.add(key); + } + } + + private void addTransitionData(TransitionData transitionData) { + String skey = transitionData.getSource() != null ? transitionData.getSource() : "null"; + String tkey = transitionData.getTarget() != null ? transitionData.getTarget() : "null"; + String ekey = transitionData.getEvent() != null ? transitionData.getEvent() : "null"; + String kkey = transitionData.getKind() != null ? transitionData.getKind().toString() : "null"; + String key = skey + "_" + tkey + "_" + ekey + "_" + kkey; + if (!seenTransitionData.contains(key)) { + transitionDatas.add(transitionData); + seenTransitionData.add(key); + } + } + private void handleRegion(Region region) { // build states for (Vertex vertex : region.getSubvertices()) { @@ -192,7 +237,7 @@ public class UmlModelParser { if (UmlUtils.isFinalState(state)) { stateData.setEnd(true); } - stateDatas.add(stateData); + addStateData(stateData); // add states via entry/exit reference points for (ConnectionPointReference cpr : state.getConnections()) { @@ -200,14 +245,14 @@ public class UmlModelParser { for (Pseudostate cp : cpr.getEntries()) { StateData cpStateData = new StateData<>(parent, regionId, cp.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.ENTRY); - stateDatas.add(cpStateData); + addStateData(cpStateData); } } if (cpr.getExits() != null) { for (Pseudostate cp : cpr.getExits()) { StateData cpStateData = new StateData<>(parent, regionId, cp.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.EXIT); - stateDatas.add(cpStateData); + addStateData(cpStateData); } } } @@ -223,13 +268,18 @@ public class UmlModelParser { if (kind != null) { StateData cpStateData = new StateData<>(parent, regionId, cp.getName(), false); cpStateData.setPseudoStateKind(kind); - stateDatas.add(cpStateData); + addStateData(cpStateData); } } - // do recursive handling of regions - for (Region sub : state.getRegions()) { - handleRegion(sub); + if (!state.getRegions().isEmpty()) { + // do recursive handling of regions + for (Region sub : state.getRegions()) { + handleRegion(sub); + } + } else if (state.getSubmachine() != null) { + // submachine would be there i.e. with import + handleStateMachine(state.getSubmachine()); } } // pseudostates like choice, etc @@ -256,27 +306,27 @@ public class UmlModelParser { if (state.getKind() == PseudostateKind.CHOICE_LITERAL) { StateData cpStateData = new StateData<>(parent, regionId, resolveName(state), false); cpStateData.setPseudoStateKind(PseudoStateKind.CHOICE); - stateDatas.add(cpStateData); + addStateData(cpStateData); } else if (state.getKind() == PseudostateKind.JUNCTION_LITERAL) { StateData cpStateData = new StateData<>(parent, regionId, state.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.JUNCTION); - stateDatas.add(cpStateData); + addStateData(cpStateData); } else if (state.getKind() == PseudostateKind.FORK_LITERAL) { StateData cpStateData = new StateData<>(parent, regionId, state.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.FORK); - stateDatas.add(cpStateData); + addStateData(cpStateData); } else if (state.getKind() == PseudostateKind.JOIN_LITERAL) { StateData cpStateData = new StateData<>(parent, regionId, state.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.JOIN); - stateDatas.add(cpStateData); + addStateData(cpStateData); } else if (state.getKind() == PseudostateKind.SHALLOW_HISTORY_LITERAL) { StateData cpStateData = new StateData<>(parent, regionId, state.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.HISTORY_SHALLOW); - stateDatas.add(cpStateData); + addStateData(cpStateData); } else if (state.getKind() == PseudostateKind.DEEP_HISTORY_LITERAL) { StateData cpStateData = new StateData<>(parent, regionId, state.getName(), false); cpStateData.setPseudoStateKind(PseudoStateKind.HISTORY_DEEP); - stateDatas.add(cpStateData); + addStateData(cpStateData); } } } @@ -296,19 +346,19 @@ public class UmlModelParser { // realistic with state machines EList cprentries = ((ConnectionPointReference)transition.getSource()).getEntries(); if (cprentries != null && cprentries.size() == 1 && cprentries.get(0).getKind() == PseudostateKind.ENTRY_POINT_LITERAL) { - entrys.add(new EntryData(cprentries.get(0).getName(), resolveName(transition.getTarget()))); + addEntryData(new EntryData(cprentries.get(0).getName(), resolveName(transition.getTarget()))); } EList cprexits = ((ConnectionPointReference)transition.getSource()).getExits(); if (cprexits != null && cprexits.size() == 1 && cprexits.get(0).getKind() == PseudostateKind.EXIT_POINT_LITERAL) { - exits.add(new ExitData(cprexits.get(0).getName(), resolveName(transition.getTarget()))); + addExitData(new ExitData(cprexits.get(0).getName(), resolveName(transition.getTarget()))); } } if (transition.getSource() instanceof Pseudostate) { if (((Pseudostate)transition.getSource()).getKind() == PseudostateKind.ENTRY_POINT_LITERAL) { - entrys.add(new EntryData(resolveName(transition.getSource()), resolveName(transition.getTarget()))); + addEntryData(new EntryData(resolveName(transition.getSource()), resolveName(transition.getTarget()))); } else if (((Pseudostate)transition.getSource()).getKind() == PseudostateKind.EXIT_POINT_LITERAL) { - exits.add(new ExitData(resolveName(transition.getSource()), resolveName(transition.getTarget()))); + addExitData(new ExitData(resolveName(transition.getSource()), resolveName(transition.getTarget()))); } else if (((Pseudostate)transition.getSource()).getKind() == PseudostateKind.CHOICE_LITERAL) { LinkedList> list = choices.get(resolveName(transition.getSource())); if (list == null) { @@ -373,12 +423,12 @@ public class UmlModelParser { if (transition.getTarget() instanceof ConnectionPointReference) { EList cprentries = ((ConnectionPointReference)transition.getTarget()).getEntries(); if (cprentries != null && cprentries.size() == 1) { - transitionDatas.add(new TransitionData(resolveName(transition.getSource()), + addTransitionData(new TransitionData(resolveName(transition.getSource()), cprentries.get(0).getName(), signal.getName(), UmlUtils.resolveTransitionActions(transition, resolver), guard, UmlUtils.mapUmlTransitionType(transition))); } } else { - transitionDatas.add(new TransitionData(resolveName(transition.getSource()), + addTransitionData(new TransitionData(resolveName(transition.getSource()), resolveName(transition.getTarget()), signal.getName(), UmlUtils.resolveTransitionActions(transition, resolver), guard, UmlUtils.mapUmlTransitionType(transition))); } @@ -391,7 +441,7 @@ public class UmlModelParser { if (timeEvent.isRelative()) { count = 1; } - transitionDatas.add(new TransitionData(resolveName(transition.getSource()), + addTransitionData(new TransitionData(resolveName(transition.getSource()), resolveName(transition.getTarget()), period, count, UmlUtils.resolveTransitionActions(transition, resolver), guard, UmlUtils.mapUmlTransitionType(transition))); } @@ -400,7 +450,7 @@ public class UmlModelParser { // create anonymous transition if needed if (shouldCreateAnonymousTransition(transition)) { - transitionDatas.add(new TransitionData(resolveName(transition.getSource()), resolveName(transition.getTarget()), + addTransitionData(new TransitionData(resolveName(transition.getSource()), resolveName(transition.getTarget()), null, UmlUtils.resolveTransitionActions(transition, resolver), resolveGuard(transition), UmlUtils.mapUmlTransitionType(transition))); } diff --git a/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/ResourcerResolverTests.java b/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/ResourcerResolverTests.java new file mode 100644 index 00000000..637f277c --- /dev/null +++ b/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/ResourcerResolverTests.java @@ -0,0 +1,124 @@ +/* + * Copyright 2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://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; + +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.junit.Assert.assertThat; + +import java.io.File; +import java.io.IOException; + +import org.junit.Test; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.DefaultResourceLoader; +import org.springframework.core.io.Resource; +import org.springframework.core.io.ResourceLoader; +import org.springframework.statemachine.uml.ResourcerResolver.Holder; + +public class ResourcerResolverTests { + + private ResourceLoader resourceLoader = new DefaultResourceLoader(); + // private String[] EMPTY_LOCATIONS = new String[0]; + + // in a below tests, + // we expect resources to resolve as a physical files + + @Test + public void testOneMainLocation() throws Exception { + String mainLocation = "classpath:org/springframework/statemachine/uml/import-main/import-main.uml"; + ResourcerResolver resolver = new ResourcerResolver(resourceLoader, mainLocation, null); + Holder[] resolved = resolver.resolve(); + assertThat(resolved, notNullValue()); + assertThat(resolved.length, is(1)); + assertThat(resolved[0].getUri().getPath(), notNullValue()); + } + + @Test + public void testOneMainResource() throws Exception { + Resource mainResource = new ClassPathResource("org/springframework/statemachine/uml/import-main/import-main.uml"); + ResourcerResolver resolver = new ResourcerResolver(mainResource, null); + Holder[] resolved = resolver.resolve(); + assertThat(resolved, notNullValue()); + assertThat(resolved.length, is(1)); + assertThat(resolved[0].getUri().getPath(), notNullValue()); + } + + @Test + public void testMultipleLocations() throws Exception { + String mainLocation = "classpath:org/springframework/statemachine/uml/import-main/import-main.uml"; + String subLocation = "classpath:org/springframework/statemachine/uml/import-sub/import-sub.uml"; + ResourcerResolver resolver = new ResourcerResolver(resourceLoader, mainLocation, new String[]{subLocation}); + Holder[] resolved = resolver.resolve(); + assertThat(resolved, notNullValue()); + assertThat(resolved.length, is(2)); + assertThat(resolved[0].getUri().getPath(), notNullValue()); + assertThat(resolved[1].getUri().getPath(), notNullValue()); + } + + @Test + public void testMultipleResources() throws Exception { + Resource mainResource = new ClassPathResource("org/springframework/statemachine/uml/import-main/import-main.uml"); + Resource subResource = new ClassPathResource("org/springframework/statemachine/uml/import-sub/import-sub.uml"); + ResourcerResolver resolver = new ResourcerResolver(mainResource, new Resource[]{subResource}); + Holder[] resolved = resolver.resolve(); + assertThat(resolved, notNullValue()); + assertThat(resolved.length, is(2)); + assertThat(resolved[0].getUri().getPath(), notNullValue()); + assertThat(resolved[1].getUri().getPath(), notNullValue()); + } + + // in a below tests, + // do monkey thing and setup resource which will not resolve to + // an actual file as would happen with file inside boot fat-jar classpath + + @Test + public void testOneMainResourceNotPhysicalFile() throws Exception { + Resource mainResource = new TestClassPathResource("org/springframework/statemachine/uml/import-main/import-main.uml"); + ResourcerResolver resolver = new ResourcerResolver(mainResource, null); + Holder[] resolved = resolver.resolve(); + assertThat(resolved, notNullValue()); + assertThat(resolved.length, is(1)); + assertThat(resolved[0].getUri().getPath(), notNullValue()); + assertThat(resolved[0].getPath().toFile().exists(), is(true)); + } + + @Test + public void testMultipleResourcesNotPhysicalFile() throws Exception { + Resource mainResource = new TestClassPathResource("org/springframework/statemachine/uml/import-main/import-main.uml"); + Resource subResource = new TestClassPathResource("org/springframework/statemachine/uml/import-sub/import-sub.uml"); + ResourcerResolver resolver = new ResourcerResolver(mainResource, new Resource[]{subResource}); + Holder[] resolved = resolver.resolve(); + assertThat(resolved, notNullValue()); + assertThat(resolved.length, is(2)); + assertThat(resolved[0].getUri().getPath(), notNullValue()); + assertThat(resolved[0].getPath().toFile().exists(), is(true)); + assertThat(resolved[1].getUri().getPath(), notNullValue()); + assertThat(resolved[1].getPath().toFile().exists(), is(true)); + } + + private static class TestClassPathResource extends ClassPathResource { + + public TestClassPathResource(String path) { + super(path); + } + + @Override + public File getFile() throws IOException { + throw new IOException(); + } + } +} diff --git a/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/UmlStateMachineModelFactoryTests.java b/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/UmlStateMachineModelFactoryTests.java index cde38b17..c20bc524 100644 --- a/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/UmlStateMachineModelFactoryTests.java +++ b/spring-statemachine-uml/src/test/java/org/springframework/statemachine/uml/UmlStateMachineModelFactoryTests.java @@ -1136,6 +1136,17 @@ public class UmlStateMachineModelFactoryTests extends AbstractUmlTests { assertThat(stateMachine.getExtendedState().get("key", String.class), is("value")); } + @Test + @SuppressWarnings("unchecked") + public void testImportedSubMachine() { + context.register(Config28.class); + context.refresh(); + StateMachine stateMachine = context.getBean(StateMachine.class); + + stateMachine.start(); + assertThat(stateMachine.getState().getIds(), containsInAnyOrder("MAIN2", "CHILD2")); + } + @Configuration @EnableStateMachine public static class Config2 extends StateMachineConfigurerAdapter { @@ -1791,6 +1802,25 @@ public class UmlStateMachineModelFactoryTests extends AbstractUmlTests { } } + @Configuration + @EnableStateMachine + public static class Config28 extends StateMachineConfigurerAdapter { + + @Override + public void configure(StateMachineModelConfigurer model) throws Exception { + model + .withModel() + .factory(modelFactory()); + } + + @Bean + public StateMachineModelFactory modelFactory() { + Resource mainModel = new ClassPathResource("org/springframework/statemachine/uml/import-main/import-main.uml"); + Resource subModel = new ClassPathResource("org/springframework/statemachine/uml/import-sub/import-sub.uml"); + return new UmlStateMachineModelFactory(mainModel, new Resource[] { subModel }); + } + } + public static class LatchAction implements Action { CountDownLatch latch = new CountDownLatch(1); @Override 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 index 408659ad..6b24a756 100644 --- 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 @@ -1,5 +1,5 @@ /* - * Copyright 2016 the original author or authors. + * Copyright 2016-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -97,4 +97,25 @@ public class DocsUmlSampleTests1 { } } // end::snippetB[] + +// tag::snippetC[] + @Configuration + @EnableStateMachine + public static class Config3 extends StateMachineConfigurerAdapter { + + @Override + public void configure(StateMachineModelConfigurer model) throws Exception { + model + .withModel() + .factory(modelFactory()); + } + + @Bean + public StateMachineModelFactory modelFactory() { + return new UmlStateMachineModelFactory( + "classpath:org/springframework/statemachine/uml/import-main/import-main.uml", + new String[] { "classpath:org/springframework/statemachine/uml/import-sub/import-sub.uml" }); + } + } +// end::snippetC[] } diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.di b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.di new file mode 100644 index 00000000..8c549eec --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.di @@ -0,0 +1,2 @@ + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.notation b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.notation new file mode 100644 index 00000000..ce32452c --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.notation @@ -0,0 +1,93 @@ + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.uml b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.uml new file mode 100644 index 00000000..cfef0147 --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-main/import-main.uml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.di b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.di new file mode 100644 index 00000000..8c549eec --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.di @@ -0,0 +1,2 @@ + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.notation b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.notation new file mode 100644 index 00000000..b151c18b --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.notation @@ -0,0 +1,93 @@ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.uml b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.uml new file mode 100644 index 00000000..bd8858a7 --- /dev/null +++ b/spring-statemachine-uml/src/test/resources/org/springframework/statemachine/uml/import-sub/import-sub.uml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + +