@@ -13,43 +13,50 @@ left to right direction
1313' Use "package" to group related components and improve readability.
1414' This does not imply actual Java package structure.
1515package "SPDX Java libraries" {
16- package "Core libraries" {
17- component "<b>java-spdx-library</b>\n(core library & helpers)" as lib #LightGreen
18- component "spdx-java-core\n(core utilities)" as core #LightYellow
19- interface "IModelStore\n(storage service provider interface)" as storeSPI #LightYellow
16+ package "Core libraries" as core_pkg {
17+ component "<b><size:20>java-spdx-library</size></b>\nCore library & helpers" as lib #LightSalmon
18+ component "<b><size:20>spdx-java-core</size></b>\nCore utilities" as core #LightYellow
19+ component "<b><size:20>org.spdx.storage.IModelStore</size></b>\nStorage service provider interface" as storeSPI #LightBlue
20+ component "<b><size:20>org.spdx.storage.simple.InMemSpdxStore</size></b>\nSimple in-memory store" as inmem #LightBlue
2021 }
2122
22- package "Models" {
23- component "spdx-java-model-2_X\n(SPDX 2 model) " as model2
24- component "spdx-java-model-3_0\n(SPDX 3 model) " as model3
23+ package "Models" as model_pkg {
24+ component "<b><size:20> spdx-java-model-2_X</size></b>\nSPDX 2 model" as model2 #LightGreen
25+ component "<b><size:20> spdx-java-model-3_0</size></b>\nSPDX 3 model" as model3 #LightGreen
2526 }
2627
27- package "Storage implementations" {
28- component "spdx-java-tagvalue-store\n(Tag -Value store) " as tagvalue
29- component "spdx-java-rdf-store\n(RDF store) " as rdf
30- component "spdx-java-spreadsheet-store\n(XLS spreadsheet store) " as sheet
31- component "spdx-java-jackson-store\n(JSON / YAML / XML store) " as jackson
32- component "spdx-java-v3jsonld-store\n(v3 JSON-LD store) " as v3jsonld
28+ package "Storage implementations" as store_pkg {
29+ component "<b><size:20> spdx-java-tagvalue-store</size></b>\nTag -Value store" as tagvalue #LightBlue
30+ component "<b><size:20> spdx-java-rdf-store</size></b>\nRDF store" as rdf #LightBlue
31+ component "<b><size:20> spdx-java-spreadsheet-store</size></b>\nXLS spreadsheet store" as sheet #LightBlue
32+ component "<b><size:20> spdx-java-jackson-store</size></b>\nJSON / XML / YAML store" as jackson #LightBlue
33+ component "<b><size:20> spdx-java-v3jsonld-store</size></b>\nSPDX 3 JSON-LD store" as v3jsonld #LightBlue
3334 }
3435
35- package "Tooling" {
36- component "spdx-model-to-java\n(code generator for SPDX 3 model)" as genmodel3
37- component "tools-java\n(command-line tools)" as tools
38- component "spdx-maven-plugin\n(Maven integration)" as maven
36+ package "Tooling" as tooling_pkg {
37+ component "<b><size:20>spdx-maven-plugin</size></b>\nMaven integration" as maven
38+ component "<b><size:20>spdx-model-to-java</size></b>\nJava code generator for SPDX 3 model" as genmodel3
3939 }
4040
41- package "Specifications" {
42- component "SPDX 3 specification Turtle file" as spdx3turtle
41+ package "Specifications" as spec_pkg {
42+ component "<i><size:20>spdx-model.ttl</size></i>\nSPDX 3 specification RDF 1.1 Turtle file" as spdx3turtle
43+ }
44+
45+ package "User-facing applications" as app_pkg {
46+ component "<b><size:20>tools-java</size></b>\nCommand-line tools" as tools
47+ component "<i><size:20>spdx-online-tools</size></i>\nWeb-based tools" as online
4348 }
4449}
4550
46- ' Core relationships
51+ ' Core libraries and models
4752lib --> core : depends on
4853lib --> model2 : depends on
4954lib --> model3 : depends on
5055
5156' Storage SPI and implementations
5257core --> storeSPI : contains
58+ lib --> inmem : contains
59+ inmem ..|> storeSPI : implements
5360jackson ..|> storeSPI : implements
5461rdf ..|> storeSPI : implements
5562sheet ..|> storeSPI : implements
@@ -58,8 +65,17 @@ v3jsonld ..|> storeSPI : implements
5865
5966' Tooling
6067maven --> lib : depends on
61- tools --> lib : depends on
6268genmodel3 --> model3 : generates
63- genmodel3 --> spdx3turtle : depends on
69+ genmodel3 -left -> spdx3turtle : has data file
70+
71+ ' User-facing applications
72+ tools --> lib : depends on
73+ online --> tools : depends on
74+
75+ ' Layout hints
76+ spec_pkg - [hidden ]-> tooling_pkg
77+ store_pkg - [hidden ]-> core_pkg
78+ inmem - [hidden ]-> store_pkg
79+ model_pkg - [hidden ]-> core_pkg
6480
6581@enduml
0 commit comments