|
| 1 | +' SPDX-FileCopyrightText: 2025 SPDX contributors |
| 2 | +' SPDX-FileType: DOCUMENTATION |
| 3 | +' SPDX-License-Identifier: Apache-2.0 |
| 4 | + |
| 5 | +@startuml spdx_java_lib_family |
| 6 | +scale 1.5 |
| 7 | + |
| 8 | +title Family of SPDX Java libraries |
| 9 | + |
| 10 | +' Left-to-right layout is more familiar for readers of left-to-right languages. |
| 11 | +left to right direction |
| 12 | + |
| 13 | +' Use "package" to group related components and improve readability. |
| 14 | +' This does not imply actual Java package structure. |
| 15 | +package "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 |
| 20 | + } |
| 21 | + |
| 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 |
| 25 | + } |
| 26 | + |
| 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 |
| 33 | + } |
| 34 | + |
| 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 |
| 39 | + } |
| 40 | + |
| 41 | + package "Specifications" { |
| 42 | + component "SPDX 3 specification Turtle file" as spdx3turtle |
| 43 | + } |
| 44 | +} |
| 45 | + |
| 46 | +' Core relationships |
| 47 | +lib --> core : depends on |
| 48 | +lib --> model2 : depends on |
| 49 | +lib --> model3 : depends on |
| 50 | + |
| 51 | +' Storage SPI and implementations |
| 52 | +core --> storeSPI : contains |
| 53 | +jackson ..|> storeSPI : implements |
| 54 | +rdf ..|> storeSPI : implements |
| 55 | +sheet ..|> storeSPI : implements |
| 56 | +tagvalue ..|> storeSPI : implements |
| 57 | +v3jsonld ..|> storeSPI : implements |
| 58 | + |
| 59 | +' Tooling |
| 60 | +maven --> lib : depends on |
| 61 | +tools --> lib : depends on |
| 62 | +genmodel3 --> model3 : generates |
| 63 | +genmodel3 --> spdx3turtle : depends on |
| 64 | + |
| 65 | +@enduml |
0 commit comments