structurizr / java-extensions

Structurizr for Java extensions
Apache License 2.0
39 stars 23 forks source link

Add support for Cylinder and Pipe shapes to SoftwareSystem and Component for C4-PlantUML #52

Closed AdamDz closed 2 years ago

AdamDz commented 3 years ago

The Structurizr's Cylinder and Pipe's shapes are correctly translated for the Container element to C4-PlantUML's ContainerDb and ContainerPipe.

C4-PlantUML supports also ComponentDb/ComponentQueue and SystemDb/SystemQueue macros. These shapes are useful at these Component and System levels of abstractions as well. Would it be possible to have them supported by Structurizr DSL/CLI?

MLNW commented 3 years ago

@AdamDz The code that implements this is here: https://github.com/structurizr/java-extensions/blob/9a080e3504e1ed2667d09669a182d2aa6f2a535d/structurizr-export/src/com/structurizr/io/plantuml/C4PlantUMLExporter.java#L171-L179

Right around there components and systems are also written out. So it should be very easy to extend this for other elements. Though this could be generalized a little more.

MTomBosch commented 2 years ago

Using the features that were implemented for https://github.com/structurizr/java-extensions/issues/51 you can easily change the default styles of certain C4 plantuml elements or even change the styles of certain tagged elements.