diff --git a/Dockerfile b/Dockerfile index 3fff740..a5d2c44 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,4 +11,4 @@ EXPOSE 3000 WORKDIR /docs -CMD ["java", "-jar", "/app/structurizr-to-png.jar"] +ENTRYPOINT ["/opt/java/openjdk/bin/java", "-jar", "/app/structurizr-to-png.jar"] diff --git a/README.md b/README.md index 6266df6..7d164ae 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,10 @@ Create PNGs from [Structurizr DSL](https://github.com/structurizr/dsl#readme) files. This project uses [PlantUML](https://plantuml.com) or [Graphviz](https://graphviz.org) to render Structurizr DSL to PNG -images with various rendering strategies. Image rendering is based on exports from the Structurizr CLI. The project -performs some post-processing of the workspace model to support conventions around external software systems. +images with various rendering strategies. Image rendering is based on exports from the Structurizr CLI. - * Tags are mapped to shapes in the [`theme.json`](./src/main/resources/themes/theme.json) - * Systems tagged with `External`, `External System` or `Existing System` will be rendered as external +A default [`theme.json`](./src/main/resources/themes/theme.json) is used when no user provided theme is referenced. The +default theme maps tags to shapes and has some conventions around external systems. ## Features diff --git a/images/c4plantuml/structurizr-PriceTracker-Container.png b/images/c4plantuml/structurizr-PriceTracker-Container.png index 369a462..7150619 100644 Binary files a/images/c4plantuml/structurizr-PriceTracker-Container.png and b/images/c4plantuml/structurizr-PriceTracker-Container.png differ diff --git a/images/c4plantuml/structurizr-PriceTracker-SystemContext.png b/images/c4plantuml/structurizr-PriceTracker-SystemContext.png index b18d98c..fb953de 100644 Binary files a/images/c4plantuml/structurizr-PriceTracker-SystemContext.png and b/images/c4plantuml/structurizr-PriceTracker-SystemContext.png differ diff --git a/images/graphviz/structurizr-PriceTracker-Container.png b/images/graphviz/structurizr-PriceTracker-Container.png index 6efde0c..278ff4e 100644 Binary files a/images/graphviz/structurizr-PriceTracker-Container.png and b/images/graphviz/structurizr-PriceTracker-Container.png differ diff --git a/images/graphviz/structurizr-PriceTracker-SystemContext.png b/images/graphviz/structurizr-PriceTracker-SystemContext.png index a31217d..309c313 100644 Binary files a/images/graphviz/structurizr-PriceTracker-SystemContext.png and b/images/graphviz/structurizr-PriceTracker-SystemContext.png differ diff --git a/images/structurizr/structurizr-PriceTracker-Container.png b/images/structurizr/structurizr-PriceTracker-Container.png index 248216a..6ea869e 100644 Binary files a/images/structurizr/structurizr-PriceTracker-Container.png and b/images/structurizr/structurizr-PriceTracker-Container.png differ diff --git a/images/structurizr/structurizr-PriceTracker-SystemContext.png b/images/structurizr/structurizr-PriceTracker-SystemContext.png index 6b3d3a6..2c15e53 100644 Binary files a/images/structurizr/structurizr-PriceTracker-SystemContext.png and b/images/structurizr/structurizr-PriceTracker-SystemContext.png differ diff --git a/pom.xml b/pom.xml index 3a73b52..f26350e 100644 --- a/pom.xml +++ b/pom.xml @@ -61,7 +61,7 @@ io.vertx vertx-stack-depchain - 4.4.4 + 4.5.9 pom import @@ -83,22 +83,22 @@ com.structurizr structurizr-client - 1.24.1 + 2.2.0 com.structurizr structurizr-core - 1.24.1 + 2.2.0 com.structurizr structurizr-dsl - 1.30.2 + 2.2.0 com.structurizr structurizr-export - 1.15.0 + 2.2.0 @@ -124,7 +124,7 @@ commons-cli commons-cli - 1.5.0 + 1.8.0 io.vertx @@ -137,12 +137,12 @@ net.sourceforge.plantuml plantuml - 1.2023.10 + 1.2024.6 org.fusesource.jansi jansi - 2.4.0 + 2.4.1 org.slf4j @@ -191,11 +191,11 @@ org.apache.maven.plugins maven-compiler-plugin - 3.11.0 + 3.13.0 maven-surefire-plugin - 3.1.2 + 3.3.1 @{argLine} -Dfile.encoding=UTF-8 random @@ -204,7 +204,7 @@ org.jacoco jacoco-maven-plugin - 0.8.10 + 0.8.12 jacoco-surefire @@ -233,7 +233,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.6.0 + 3.7.1 copy-dependencies @@ -253,7 +253,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.3.0 + 3.4.2 diff --git a/src/main/java/com/extendaretail/dsl2png/WorkspaceReader.java b/src/main/java/com/extendaretail/dsl2png/WorkspaceReader.java index f4f93d6..72febcf 100644 --- a/src/main/java/com/extendaretail/dsl2png/WorkspaceReader.java +++ b/src/main/java/com/extendaretail/dsl2png/WorkspaceReader.java @@ -3,7 +3,6 @@ import com.structurizr.Workspace; import com.structurizr.dsl.StructurizrDslParser; import com.structurizr.dsl.StructurizrDslParserException; -import com.structurizr.model.Location; import com.structurizr.model.SoftwareSystem; import com.structurizr.view.ComponentView; import com.structurizr.view.Configuration; @@ -54,7 +53,7 @@ public WorkspaceReader(int themePort) { public Workspace loadFromDsl(File dslFile) throws IOException, StructurizrDslParserException { Workspace workspace = parseDsl(dslFile); addTheme(workspace); - setExternalLocation(workspace); + // setExternalLocation(workspace); workspace .getViews() .getViews() @@ -121,12 +120,12 @@ private void addTheme(Workspace workspace) throws IOException { } } - private void setExternalLocation(Workspace workspace) { - workspace.getModel().getSoftwareSystems().stream() - .filter(hasExternalTag) - .forEach( - s -> { - s.setLocation(Location.External); - }); - } + // private void setExternalLocation(Workspace workspace) { + // workspace.getModel().getSoftwareSystems().stream() + // .filter(hasExternalTag) + // .forEach( + // s -> { + // s.setLocation(Location.External); + // }); + // } } diff --git a/src/test/java/com/extendaretail/dsl2png/WorkspaceReaderTest.java b/src/test/java/com/extendaretail/dsl2png/WorkspaceReaderTest.java index 6eb15a8..636f82a 100644 --- a/src/test/java/com/extendaretail/dsl2png/WorkspaceReaderTest.java +++ b/src/test/java/com/extendaretail/dsl2png/WorkspaceReaderTest.java @@ -7,7 +7,6 @@ import com.extendaretail.dsl2png.vertx.MainVerticle; import com.structurizr.Workspace; import com.structurizr.dsl.StructurizrDslParserException; -import com.structurizr.model.Location; import io.vertx.core.DeploymentOptions; import io.vertx.core.Vertx; import io.vertx.junit5.VertxExtension; @@ -42,11 +41,6 @@ void dslWithValidSyntax(TestInfo testInfo, Vertx vertx, VertxTestContext testCon assertEquals(2, workspace.getModel().getSoftwareSystems().size()); assertEquals(4, workspace.getViews().getViews().size()); - // Location should've been decorated. - assertEquals( - Location.External, - workspace.getModel().getSoftwareSystemWithName("Existing System").getLocation()); - testContext.completeNow(); }); } @@ -61,7 +55,8 @@ void dslWithSyntaxError(TestInfo testInfo, VertxTestContext testContext) throws () -> new WorkspaceReader(httpPort).loadFromDsl(createInvalidDsl(testInfo))); assertThat(e) .hasMessageContaining("Unexpected tokens") - .hasMessageContaining("at line 3: user = personX \"User\" \"A user\""); + .hasMessageContaining("at line 3") + .hasMessageContaining("user = personX \"User\" \"A user\""); testContext.completeNow(); }); }