Skip to content

Commit 586a32b

Browse files
Fixes #258.
1 parent 472d67e commit 586a32b

14 files changed

+224
-172
lines changed

changelog.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
- structurizr-client: Fixes https://github.com/structurizr/java/issues/257 (Serialization to JSON is not deterministic).
77
- structurizr-dsl: Fixes https://github.com/structurizr/java/issues/252 (DSL parser does not seem to handle curly brackets balance).
88
- structurizr-dsl: Deprecates `!constant`, adds `!const` and `!var` (see https://github.com/structurizr/java/issues/253).
9+
- structurizr-export: Fixes https://github.com/structurizr/java/issues/258 (Plantuml renderer: Group and system of same name yields puml code resulting in error).
910

1011
## 2.0.0 (22nd February 2024)
1112

structurizr-export/src/main/java/com/structurizr/export/plantuml/StructurizrPlantUMLExporter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ protected void startGroupBoundary(ModelView view, String group, IndentingWriter
194194
icon = "\\n\\n<img:" + icon + "{scale=" + scale + "}>";
195195
}
196196

197-
writer.writeLine(String.format("rectangle \"%s%s\" <<group%s>> {", groupName, icon, groupId));
197+
writer.writeLine(String.format("rectangle \"%s%s\" <<group%s>> as group%s {", groupName, icon, groupId, groupId));
198198
writer.indent();
199199
writer.writeLine(String.format("skinparam RectangleBorderColor<<group%s>> %s", groupId, color));
200200
writer.writeLine(String.format("skinparam RectangleFontColor<<group%s>> %s", groupId, color));

structurizr-export/src/test/java/com/structurizr/export/plantuml/StructurizrPlantUMLDiagramExporterTests.java

+198-147
Large diffs are not rendered by default.

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/36141-SystemContext.puml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ skinparam person<<PersonalBankingCustomer>> {
3838
shadowing false
3939
}
4040

41-
rectangle "Big Bank plc" <<group1>> {
41+
rectangle "Big Bank plc" <<group1>> as group1 {
4242
skinparam RectangleBorderColor<<group1>> #cccccc
4343
skinparam RectangleFontColor<<group1>> #cccccc
4444
skinparam RectangleBorderStyle<<group1>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/36141-SystemLandscape.puml

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ skinparam person<<PersonalBankingCustomer>> {
5656
shadowing false
5757
}
5858

59-
rectangle "Big Bank plc" <<group1>> {
59+
rectangle "Big Bank plc" <<group1>> as group1 {
6060
skinparam RectangleBorderColor<<group1>> #cccccc
6161
skinparam RectangleFontColor<<group1>> #cccccc
6262
skinparam RectangleBorderStyle<<group1>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/dynamic-view-container-scoped-with-groups.puml

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ skinparam rectangle<<B.B>> {
3737
}
3838

3939
rectangle "A\n<size:10>[Container]</size>" <<A.A>> {
40-
rectangle "Group 1" <<group1>> {
40+
rectangle "Group 1" <<group1>> as group1 {
4141
skinparam RectangleBorderColor<<group1>> #cccccc
4242
skinparam RectangleFontColor<<group1>> #cccccc
4343
skinparam RectangleBorderStyle<<group1>> dashed
@@ -48,7 +48,7 @@ rectangle "A\n<size:10>[Container]</size>" <<A.A>> {
4848
}
4949

5050
rectangle "B\n<size:10>[Container]</size>" <<B.B>> {
51-
rectangle "Group 2" <<group2>> {
51+
rectangle "Group 2" <<group2>> as group2 {
5252
skinparam RectangleBorderColor<<group2>> #cccccc
5353
skinparam RectangleFontColor<<group2>> #cccccc
5454
skinparam RectangleBorderStyle<<group2>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/dynamic-view-software-system-scoped-with-groups.puml

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ skinparam rectangle<<B>> {
3737
}
3838

3939
rectangle "A\n<size:10>[Software System]</size>" <<A>> {
40-
rectangle "Group 1" <<group1>> {
40+
rectangle "Group 1" <<group1>> as group1 {
4141
skinparam RectangleBorderColor<<group1>> #cccccc
4242
skinparam RectangleFontColor<<group1>> #cccccc
4343
skinparam RectangleBorderStyle<<group1>> dashed
@@ -48,7 +48,7 @@ rectangle "A\n<size:10>[Software System]</size>" <<A>> {
4848
}
4949

5050
rectangle "B\n<size:10>[Software System]</size>" <<B>> {
51-
rectangle "Group 2" <<group2>> {
51+
rectangle "Group 2" <<group2>> as group2 {
5252
skinparam RectangleBorderColor<<group2>> #cccccc
5353
skinparam RectangleFontColor<<group2>> #cccccc
5454
skinparam RectangleBorderStyle<<group2>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/dynamic-view-unscoped-with-groups.puml

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ skinparam rectangle<<B>> {
2626
shadowing false
2727
}
2828

29-
rectangle "Group 1" <<group1>> {
29+
rectangle "Group 1" <<group1>> as group1 {
3030
skinparam RectangleBorderColor<<group1>> #cccccc
3131
skinparam RectangleFontColor<<group1>> #cccccc
3232
skinparam RectangleBorderStyle<<group1>> dashed
3333

3434
rectangle "==A\n<size:10>[Software System]</size>" <<A>> as A
3535
}
3636

37-
rectangle "Group 2" <<group2>> {
37+
rectangle "Group 2" <<group2>> as group2 {
3838
skinparam RectangleBorderColor<<group2>> #cccccc
3939
skinparam RectangleFontColor<<group2>> #cccccc
4040
skinparam RectangleBorderStyle<<group2>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/group-styles-1.puml

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,23 @@ skinparam rectangle<<User3>> {
3232
shadowing false
3333
}
3434

35-
rectangle "Group 1\n\n<img:https://example.com/icon1.png{scale=1.0}>" <<group1>> {
35+
rectangle "Group 1\n\n<img:https://example.com/icon1.png{scale=1.0}>" <<group1>> as group1 {
3636
skinparam RectangleBorderColor<<group1>> #111111
3737
skinparam RectangleFontColor<<group1>> #111111
3838
skinparam RectangleBorderStyle<<group1>> dashed
3939

4040
rectangle "==User 1\n<size:10>[Person]</size>" <<User1>> as User1
4141
}
4242

43-
rectangle "Group 2\n\n<img:https://example.com/icon2.png{scale=1.0}>" <<group2>> {
43+
rectangle "Group 2\n\n<img:https://example.com/icon2.png{scale=1.0}>" <<group2>> as group2 {
4444
skinparam RectangleBorderColor<<group2>> #222222
4545
skinparam RectangleFontColor<<group2>> #222222
4646
skinparam RectangleBorderStyle<<group2>> dashed
4747

4848
rectangle "==User 2\n<size:10>[Person]</size>" <<User2>> as User2
4949
}
5050

51-
rectangle "Group 3" <<group3>> {
51+
rectangle "Group 3" <<group3>> as group3 {
5252
skinparam RectangleBorderColor<<group3>> #cccccc
5353
skinparam RectangleFontColor<<group3>> #cccccc
5454
skinparam RectangleBorderStyle<<group3>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/group-styles-2.puml

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,23 @@ skinparam rectangle<<User3>> {
3232
shadowing false
3333
}
3434

35-
rectangle "Group 1\n\n<img:https://example.com/icon1.png{scale=1.0}>" <<group1>> {
35+
rectangle "Group 1\n\n<img:https://example.com/icon1.png{scale=1.0}>" <<group1>> as group1 {
3636
skinparam RectangleBorderColor<<group1>> #111111
3737
skinparam RectangleFontColor<<group1>> #111111
3838
skinparam RectangleBorderStyle<<group1>> dashed
3939

4040
rectangle "==User 1\n<size:10>[Person]</size>" <<User1>> as User1
4141
}
4242

43-
rectangle "Group 2\n\n<img:https://example.com/icon2.png{scale=1.0}>" <<group2>> {
43+
rectangle "Group 2\n\n<img:https://example.com/icon2.png{scale=1.0}>" <<group2>> as group2 {
4444
skinparam RectangleBorderColor<<group2>> #222222
4545
skinparam RectangleFontColor<<group2>> #222222
4646
skinparam RectangleBorderStyle<<group2>> dashed
4747

4848
rectangle "==User 2\n<size:10>[Person]</size>" <<User2>> as User2
4949
}
5050

51-
rectangle "Group 3" <<group3>> {
51+
rectangle "Group 3" <<group3>> as group3 {
5252
skinparam RectangleBorderColor<<group3>> #aabbcc
5353
skinparam RectangleFontColor<<group3>> #aabbcc
5454
skinparam RectangleBorderStyle<<group3>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/groups-Components.puml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ skinparam rectangle<<D.F>> {
4040
rectangle "==C\n<size:10>[Software System]</size>" <<C>> as C
4141

4242
rectangle "F\n<size:10>[Container]</size>" <<D.F>> {
43-
rectangle "Group 5" <<group1>> {
43+
rectangle "Group 5" <<group1>> as group1 {
4444
skinparam RectangleBorderColor<<group1>> #cccccc
4545
skinparam RectangleFontColor<<group1>> #cccccc
4646
skinparam RectangleBorderStyle<<group1>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/groups-Containers.puml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ skinparam rectangle<<D>> {
4040
rectangle "==C\n<size:10>[Software System]</size>" <<C>> as C
4141

4242
rectangle "D\n<size:10>[Software System]</size>" <<D>> {
43-
rectangle "Group 4" <<group1>> {
43+
rectangle "Group 4" <<group1>> as group1 {
4444
skinparam RectangleBorderColor<<group1>> #cccccc
4545
skinparam RectangleFontColor<<group1>> #cccccc
4646
skinparam RectangleBorderStyle<<group1>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/groups-SystemLandscape.puml

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,21 @@ skinparam rectangle<<D>> {
3838
shadowing false
3939
}
4040

41-
rectangle "Group 1" <<group1>> {
41+
rectangle "Group 1" <<group1>> as group1 {
4242
skinparam RectangleBorderColor<<group1>> #cccccc
4343
skinparam RectangleFontColor<<group1>> #cccccc
4444
skinparam RectangleBorderStyle<<group1>> dashed
4545

4646
rectangle "==B\n<size:10>[Software System]</size>" <<B>> as B
4747
}
4848

49-
rectangle "Group 2" <<group2>> {
49+
rectangle "Group 2" <<group2>> as group2 {
5050
skinparam RectangleBorderColor<<group2>> #cccccc
5151
skinparam RectangleFontColor<<group2>> #cccccc
5252
skinparam RectangleBorderStyle<<group2>> dashed
5353

5454
rectangle "==C\n<size:10>[Software System]</size>" <<C>> as C
55-
rectangle "Group 3" <<group3>> {
55+
rectangle "Group 3" <<group3>> as group3 {
5656
skinparam RectangleBorderColor<<group3>> #cccccc
5757
skinparam RectangleFontColor<<group3>> #cccccc
5858
skinparam RectangleBorderStyle<<group3>> dashed

structurizr-export/src/test/java/com/structurizr/export/plantuml/structurizr/nested-groups.puml

+5-5
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,27 @@ skinparam rectangle<<Team2>> {
4444
shadowing false
4545
}
4646

47-
rectangle "Organisation 1" <<group1>> {
47+
rectangle "Organisation 1" <<group1>> as group1 {
4848
skinparam RectangleBorderColor<<group1>> #cccccc
4949
skinparam RectangleFontColor<<group1>> #cccccc
5050
skinparam RectangleBorderStyle<<group1>> dashed
5151

5252
rectangle "==Organisation 1\n<size:10>[Software System]</size>" <<Organisation1>> as Organisation1
53-
rectangle "Department 1" <<group2>> {
53+
rectangle "Department 1" <<group2>> as group2 {
5454
skinparam RectangleBorderColor<<group2>> #cccccc
5555
skinparam RectangleFontColor<<group2>> #cccccc
5656
skinparam RectangleBorderStyle<<group2>> dashed
5757

5858
rectangle "==Department 1\n<size:10>[Software System]</size>" <<Department1>> as Department1
59-
rectangle "Team 1" <<group3>> {
59+
rectangle "Team 1" <<group3>> as group3 {
6060
skinparam RectangleBorderColor<<group3>> #ff0000
6161
skinparam RectangleFontColor<<group3>> #ff0000
6262
skinparam RectangleBorderStyle<<group3>> dashed
6363

6464
rectangle "==Team 1\n<size:10>[Software System]</size>" <<Team1>> as Team1
6565
}
6666

67-
rectangle "Team 2" <<group4>> {
67+
rectangle "Team 2" <<group4>> as group4 {
6868
skinparam RectangleBorderColor<<group4>> #0000ff
6969
skinparam RectangleFontColor<<group4>> #0000ff
7070
skinparam RectangleBorderStyle<<group4>> dashed
@@ -76,7 +76,7 @@ rectangle "Organisation 1" <<group1>> {
7676

7777
}
7878

79-
rectangle "Organisation 2" <<group5>> {
79+
rectangle "Organisation 2" <<group5>> as group5 {
8080
skinparam RectangleBorderColor<<group5>> #cccccc
8181
skinparam RectangleFontColor<<group5>> #cccccc
8282
skinparam RectangleBorderStyle<<group5>> dashed

0 commit comments

Comments
 (0)