Skip to content

Commit 57e6c48

Browse files
Deployment diagram (#209)
* deployment diagram parser * deployment diagram resolver
1 parent 549c7ee commit 57e6c48

27 files changed

Lines changed: 1211 additions & 283 deletions

File tree

plantuml/parser/docs/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,13 @@ ComponentA --> ComponentB : uses
8181
=== Parse Tree ===
8282
Rule::startuml -> "@startuml"
8383
Rule::statement -> "package \"Sample SEooC\" ..."
84-
Rule::component
85-
Rule::nested_component -> "package \"Sample SEooC\""
86-
Rule::default_component
87-
Rule::component_type -> "package"
88-
Rule::default_component_name -> "\"Sample SEooC\""
84+
Rule::element
85+
Rule::nested_element -> "package \"Sample SEooC\""
86+
Rule::default_element
87+
Rule::element_kind -> "package"
88+
Rule::default_element_name -> "\"Sample SEooC\""
8989
Rule::alias -> "as SampleSEooC"
90-
Rule::component_style -> "#LightBlue"
90+
Rule::element_style -> "#LightBlue"
9191
Rule::statement_block -> "{ ... }"
9292
Rule::relation -> "ComponentA --> ComponentB : uses"
9393
Rule::relation_object -> "ComponentA"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# *******************************************************************************
2+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
#
4+
# See the NOTICE file(s) distributed with this work for additional
5+
# information regarding copyright ownership.
6+
#
7+
# This program and the accompanying materials are made available under the
8+
# terms of the Apache License Version 2.0 which is available at
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# SPDX-License-Identifier: Apache-2.0
12+
# *******************************************************************************
13+
filegroup(
14+
name = "deployment_diagram_files",
15+
srcs = glob([
16+
"**/*.puml",
17+
"**/*.json",
18+
]),
19+
visibility = ["//visibility:public"],
20+
)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
' *******************************************************************************
2+
' Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
'
4+
' See the NOTICE file(s) distributed with this work for additional
5+
' information regarding copyright ownership.
6+
'
7+
' This program and the accompanying materials are made available under the
8+
' terms of the Apache License Version 2.0 which is available at
9+
' https://www.apache.org/licenses/LICENSE-2.0
10+
'
11+
' SPDX-License-Identifier: Apache-2.0
12+
' *******************************************************************************
13+
@startuml arrows_link
14+
15+
node host_a
16+
node host_b
17+
node host_c
18+
node host_d
19+
node host_e
20+
host_a -- host_b : mark_a
21+
host_a .. host_c : mark_b
22+
host_a ~~ host_d : mark_c
23+
host_a == host_e
24+
25+
artifact bundle_a
26+
artifact bundle_b
27+
artifact bundle_c
28+
artifact bundle_d
29+
artifact bundle_e
30+
artifact bundle_f
31+
artifact bundle_g
32+
artifact bundle_h
33+
artifact bundle_i
34+
artifact bundle_j
35+
bundle_a --> bundle_b
36+
bundle_a --* bundle_c
37+
bundle_a --o bundle_d
38+
bundle_a --+ bundle_e
39+
bundle_a --# bundle_f
40+
bundle_a -->> bundle_g
41+
bundle_a --0 bundle_h
42+
bundle_a --^ bundle_i
43+
bundle_a --(0 bundle_j
44+
45+
@enduml
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
{
2+
"arrows_link.puml": {
3+
"host_a": {
4+
"id": "host_a",
5+
"name": "host_a",
6+
"alias": null,
7+
"parent_id": null,
8+
"comp_type": "Node",
9+
"stereotype": null,
10+
"relations": [
11+
{
12+
"target": "host_b",
13+
"annotation": "mark_a",
14+
"relation_type": "None"
15+
},
16+
{
17+
"target": "host_c",
18+
"annotation": "mark_b",
19+
"relation_type": "None"
20+
},
21+
{
22+
"target": "host_d",
23+
"annotation": "mark_c",
24+
"relation_type": "None"
25+
},
26+
{
27+
"target": "host_e",
28+
"annotation": null,
29+
"relation_type": "None"
30+
}
31+
]
32+
},
33+
"host_b": {
34+
"id": "host_b",
35+
"name": "host_b",
36+
"alias": null,
37+
"parent_id": null,
38+
"comp_type": "Node",
39+
"stereotype": null,
40+
"relations": []
41+
},
42+
"host_c": {
43+
"id": "host_c",
44+
"name": "host_c",
45+
"alias": null,
46+
"parent_id": null,
47+
"comp_type": "Node",
48+
"stereotype": null,
49+
"relations": []
50+
},
51+
"host_d": {
52+
"id": "host_d",
53+
"name": "host_d",
54+
"alias": null,
55+
"parent_id": null,
56+
"comp_type": "Node",
57+
"stereotype": null,
58+
"relations": []
59+
},
60+
"host_e": {
61+
"id": "host_e",
62+
"name": "host_e",
63+
"alias": null,
64+
"parent_id": null,
65+
"comp_type": "Node",
66+
"stereotype": null,
67+
"relations": []
68+
},
69+
"bundle_a": {
70+
"id": "bundle_a",
71+
"name": "bundle_a",
72+
"alias": null,
73+
"parent_id": null,
74+
"comp_type": "Artifact",
75+
"stereotype": null,
76+
"relations": [
77+
{
78+
"target": "bundle_b",
79+
"annotation": null,
80+
"relation_type": "None"
81+
},
82+
{
83+
"target": "bundle_c",
84+
"annotation": null,
85+
"relation_type": "None"
86+
},
87+
{
88+
"target": "bundle_d",
89+
"annotation": null,
90+
"relation_type": "None"
91+
},
92+
{
93+
"target": "bundle_e",
94+
"annotation": null,
95+
"relation_type": "None"
96+
},
97+
{
98+
"target": "bundle_f",
99+
"annotation": null,
100+
"relation_type": "None"
101+
},
102+
{
103+
"target": "bundle_g",
104+
"annotation": null,
105+
"relation_type": "None"
106+
},
107+
{
108+
"target": "bundle_h",
109+
"annotation": null,
110+
"relation_type": "None"
111+
},
112+
{
113+
"target": "bundle_i",
114+
"annotation": null,
115+
"relation_type": "None"
116+
},
117+
{
118+
"target": "bundle_j",
119+
"annotation": null,
120+
"relation_type": "None"
121+
}
122+
]
123+
},
124+
"bundle_b": {
125+
"id": "bundle_b",
126+
"name": "bundle_b",
127+
"alias": null,
128+
"parent_id": null,
129+
"comp_type": "Artifact",
130+
"stereotype": null,
131+
"relations": []
132+
},
133+
"bundle_c": {
134+
"id": "bundle_c",
135+
"name": "bundle_c",
136+
"alias": null,
137+
"parent_id": null,
138+
"comp_type": "Artifact",
139+
"stereotype": null,
140+
"relations": []
141+
},
142+
"bundle_d": {
143+
"id": "bundle_d",
144+
"name": "bundle_d",
145+
"alias": null,
146+
"parent_id": null,
147+
"comp_type": "Artifact",
148+
"stereotype": null,
149+
"relations": []
150+
},
151+
"bundle_e": {
152+
"id": "bundle_e",
153+
"name": "bundle_e",
154+
"alias": null,
155+
"parent_id": null,
156+
"comp_type": "Artifact",
157+
"stereotype": null,
158+
"relations": []
159+
},
160+
"bundle_f": {
161+
"id": "bundle_f",
162+
"name": "bundle_f",
163+
"alias": null,
164+
"parent_id": null,
165+
"comp_type": "Artifact",
166+
"stereotype": null,
167+
"relations": []
168+
},
169+
"bundle_g": {
170+
"id": "bundle_g",
171+
"name": "bundle_g",
172+
"alias": null,
173+
"parent_id": null,
174+
"comp_type": "Artifact",
175+
"stereotype": null,
176+
"relations": []
177+
},
178+
"bundle_h": {
179+
"id": "bundle_h",
180+
"name": "bundle_h",
181+
"alias": null,
182+
"parent_id": null,
183+
"comp_type": "Artifact",
184+
"stereotype": null,
185+
"relations": []
186+
},
187+
"bundle_i": {
188+
"id": "bundle_i",
189+
"name": "bundle_i",
190+
"alias": null,
191+
"parent_id": null,
192+
"comp_type": "Artifact",
193+
"stereotype": null,
194+
"relations": []
195+
},
196+
"bundle_j": {
197+
"id": "bundle_j",
198+
"name": "bundle_j",
199+
"alias": null,
200+
"parent_id": null,
201+
"comp_type": "Artifact",
202+
"stereotype": null,
203+
"relations": []
204+
}
205+
}
206+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
' *******************************************************************************
2+
' Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
'
4+
' See the NOTICE file(s) distributed with this work for additional
5+
' information regarding copyright ownership.
6+
'
7+
' This program and the accompanying materials are made available under the
8+
' terms of the Apache License Version 2.0 which is available at
9+
' https://www.apache.org/licenses/LICENSE-2.0
10+
'
11+
' SPDX-License-Identifier: Apache-2.0
12+
' *******************************************************************************
13+
@startuml declare_elements
14+
15+
' Generic fixture names to avoid mirroring external example text.
16+
actor role_a
17+
agent role_b
18+
artifact item_a
19+
boundary zone_a
20+
card item_b
21+
cloud zone_b
22+
component part_a
23+
control part_b
24+
database store_a
25+
entity record_a
26+
file doc_a
27+
folder dir_a
28+
frame zone_c
29+
interface port_a
30+
node host_a
31+
package pack_a
32+
queue lane_a
33+
stack lane_b
34+
rectangle box_a
35+
storage store_b
36+
usecase case_a
37+
38+
@enduml

0 commit comments

Comments
 (0)