From c08f8ffcc67506b72d2d3160bfb61f6ad799dd23 Mon Sep 17 00:00:00 2001 From: Hallvard Traetteberg <hal@ntnu.no> Date: Fri, 20 Sep 2019 14:10:04 +0200 Subject: [PATCH] Med arkitekturdiagram --- simpleexample2/README.md | 50 +-------------------------- simpleexample2/architecture.png | Bin 0 -> 33622 bytes simpleexample2/architecture.puml | 56 +++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 49 deletions(-) create mode 100644 simpleexample2/architecture.png create mode 100644 simpleexample2/architecture.puml diff --git a/simpleexample2/README.md b/simpleexample2/README.md index 0a23096..4f46c26 100644 --- a/simpleexample2/README.md +++ b/simpleexample2/README.md @@ -10,52 +10,4 @@ I et multi-modul-prosjekt så inneholder **settings.gradle** en oversikt over de ## Arkitekturdiagram -```plantuml -component core { - package simpleex.core - package simpleex.json -} - -component fxui { - package simpleex.ui -} - -simpleex.ui ..> simpleex.core -simpleex.ui ..> simpleex.json - -component javafx { -} -component fxml { -} - -fxui ..> javafx -fxui ..> fxml - -component restapi { - package simpleex.restapi -} - -simpleex.restapi ..> simpleex.core -simpleex.restapi ..> simpleex.json - -component jaxrs { -} - -restapi ..> jaxrs - -component restserver { - package simpleex.restserver -} - -simpleex.restserver ..> simpleex.core -simpleex.restserver ..> simpleex.restapi - -component jersey { -} - -component grizzly2 { -} - -restserver ..> jersey -restserver ..> grizzly2 -``` + diff --git a/simpleexample2/architecture.png b/simpleexample2/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..6930a609f9850ee7e1da4d2beb5c1af5c2d4681f GIT binary patch literal 33622 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 literal 0 HcmV?d00001 diff --git a/simpleexample2/architecture.puml b/simpleexample2/architecture.puml new file mode 100644 index 0000000..f89574d --- /dev/null +++ b/simpleexample2/architecture.puml @@ -0,0 +1,56 @@ +@startuml + +component core { + package simpleex.core + package simpleex.json +} + +component jackson { +} + +simpleex.json ..> jackson + +component fxui { + package simpleex.ui +} + +simpleex.ui ..> simpleex.core +simpleex.ui ..> simpleex.json + +component javafx { + component fxml { + } +} + +fxui ..> javafx +fxui ..> fxml + +component restapi { + package simpleex.restapi +} + +simpleex.restapi ..> simpleex.core +simpleex.restapi ..> simpleex.json + +component jaxrs { +} + +restapi ..> jaxrs + +component restserver { + package simpleex.restserver +} + +simpleex.restserver ..> simpleex.core +simpleex.restserver ..> simpleex.restapi + +component jersey { +} + +component grizzly2 { +} + +restserver ..> jersey +restserver ..> grizzly2 + +@enduml -- GitLab