Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sequence diagrams are not supported by C4-PlantUML #3

Open
myvocabu opened this issue Jan 2, 2023 · 1 comment
Open

Sequence diagrams are not supported by C4-PlantUML #3

myvocabu opened this issue Jan 2, 2023 · 1 comment

Comments

@myvocabu
Copy link

myvocabu commented Jan 2, 2023

Hi Klaus,
fist of all thank you a lot for you job and this lib, extremely useful but there is one thing about dynamic diagram which blocks me from usage as a replacement the original com.structurizr ones - its imposibility of exporting DynamicView to PlantUml.

So, can u please activate DynamicView rendering for PlanUML exporter as its supported by com.structurizr:structurizr-export, here is an example: https://github.com/structurizr/examples/blob/main/java/src/main/java/com/structurizr/example/MicroservicesExample.java#L61 and as an output you're getting is the next:
`@startuml
title Customer Information System - Dynamic

!includeurl https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
!includeurl https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
LAYOUT_WITH_LEGEND()

Person(2, "Customer", "A customer")

System_Boundary("1_boundary", "Customer Information System") {
Container(3, "Customer Application", "Angular", "Allows customers to manage their profile.")
Container(4, "Customer Service", "Java and Spring Boot", "The point of access for customer information.")
ContainerDb(5, "Customer Database", "Oracle 12c", "Stores customer information.")
Container(6, "Reporting Service", "Ruby", "Creates normalised data for reporting purposes.")
ContainerDb(7, "Reporting Database", "MySQL", "Stores a normalised version of all business data for ad hoc reporting purposes.")
Container(8, "Audit Service", "C# .NET", "Provides organisation-wide auditing facilities.")
ContainerDb(9, "Audit Store", "Event Store", "Stores information about events that have happened.")
ContainerQueue(10, "Message Bus", "RabbitMQ", "Transport for business events.")
}

Rel_D(2, 3, "1. Uses")
Rel_D(3, 4, "2. Updates customer information using", "JSON/HTTPS")
Rel_D(4, 5, "3. Stores data in", "JDBC")
Rel_D(4, 10, "4. Sends customer update events to")
Rel_D(4, 3, "5. Confirms update to", "WebSocket")
Rel_D(10, 8, "5. Sends customer update events to")
Rel_D(10, 6, "5. Sends customer update events to")
Rel_D(8, 9, "6. Stores events in")
Rel_D(6, 7, "6. Stores data in")
@enduml`

Basicaly, could you please make sure all overridden properties are configurable on you lib side, like these ones in here:
io/cloudflight/architecture/structurizr/service/export/C4PlantUmlExportService.kt:18
configuration.addProperty(ExtendedC4PlantUmlExporter.PLANTUML_SEQUENCE_DIAGRAMS_PROPERTY, true.toString()) configuration.addProperty(ExtendedC4PlantUmlExporter.PLANTUML_ADD_PROPERTIES_PROPERTY, true.toString()) configuration.addProperty(ExtendedC4PlantUmlExporter.PLANTUML_ADD_TAGS_PROPERTY, true.toString())

otherwise that violates open/close principle

Thanks and Happy New Year!

@klu2
Copy link
Contributor

klu2 commented Jul 20, 2024

Dear @myvocabu

really really sorry for replying so incredibly late, I just really didn't get any notification on that issue.
I'm about to migrate the library to the latest dependencies (and already released a first RC), and I will take your input into consideration as well.

Please some more days of patience

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants