You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/09/23 15:10:44 UTC
[isis] branch master updated: ISIS-2437: add c4 diagrams to System
Overview (no relations yet)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new d776505 ISIS-2437: add c4 diagrams to System Overview (no relations yet)
d776505 is described below
commit d77650555a5e334ac725115d38a13b0776975e6a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 23 17:10:31 2020 +0200
ISIS-2437: add c4 diagrams to System Overview (no relations yet)
---
.../system/modules/ROOT/pages/about.adoc | 1381 +++++++++++++++++++-
.../main/java/org/apache/isis/tooling/c4/C4.java | 48 +-
.../org/apache/isis/tooling/c4/test/C4Test.java | 76 +-
...ldung-example.puml => baeldung-example-v1.puml} | 0
.../isis/tooling/c4/test/baeldung-example-v2.puml | 33 +
tooling/cli/pom.xml | 5 +
.../isis/tooling/cli/projdoc/ProjectDocModel.java | 51 +-
.../isis/tooling/model4adoc/AsciiDocFactory.java | 52 +
tooling/pom.xml | 6 +
9 files changed, 1625 insertions(+), 27 deletions(-)
diff --git a/antora/components/system/modules/ROOT/pages/about.adoc b/antora/components/system/modules/ROOT/pages/about.adoc
index 2722d40..5d84d3a 100644
--- a/antora/components/system/modules/ROOT/pages/about.adoc
+++ b/antora/components/system/modules/ROOT/pages/about.adoc
@@ -4,6 +4,49 @@ These tables summarize all Maven artifacts available with _Apache Isis_.
== Base
+[plantuml,Base,svg]
+----
+@startuml(id=Base)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
+ rectangle "==Apache Isis (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Antora\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+}
+@enduml
+----
+
.Projects/Modules (Base)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -51,6 +94,31 @@ These tables summarize all Maven artifacts available with _Apache Isis_.
== Commons
+[plantuml,Commons,svg]
+----
+@startuml(id=Commons)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Commons\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (Commons)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -61,7 +129,7 @@ These tables summarize all Maven artifacts available with _Apache Isis_.
|jar
|\commons
|Apache Isis Commons
-|Isis library, defining utilities (potentially) required by the entire Apache Isis ecosystem.
+|Apache Isis Commons is a library with utilities, that are shared with the entire Apache Isis ecosystem.
_Dependencies_
@@ -70,6 +138,7 @@ _Dependencies_
* javax:javaee-api:jar:<managed>
* org.junit.jupiter:junit-jupiter-api:jar:<managed>
* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
+* org.junit.jupiter:junit-jupiter-params:jar:<managed>
* org.junit.vintage:junit-vintage-engine:jar:<managed>
* org.slf4j:slf4j-api:jar:<managed>
* org.springframework:spring-context:jar:<managed>
@@ -83,6 +152,91 @@ _Dependencies_
== Core
+[plantuml,Core,svg]
+----
+@startuml(id=Core)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<12>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Core\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Core - AppLib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Apache Isis Core - Code Gen (ByteBuddy)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Core - Configuration\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+ rectangle "==Apache Isis Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+ rectangle "==Apache Isis Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+ rectangle "==Apache Isis Core - Schemas\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+ rectangle "==Apache Isis Core - Security\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+ rectangle "==Apache Isis Core - Unit Test Support\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Core - WebApp\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+}
+@enduml
+----
+
.Projects/Modules (Core)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -117,6 +271,7 @@ _Components_
* org.apache.isis.applib.annotation.ViewModel
* org.apache.isis.applib.services.audit.AuditerServiceLogging
* org.apache.isis.applib.services.clock.ClockService
+* org.apache.isis.applib.services.command.CommandService
* org.apache.isis.applib.services.command.spi.CommandServiceListener$Null
* org.apache.isis.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto
* org.apache.isis.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto
@@ -394,6 +549,31 @@ _Dependencies_
== App
+[plantuml,App,svg]
+----
+@startuml(id=App)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (App)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -412,6 +592,61 @@ _Dependencies_
== Mavendeps
+[plantuml,Mavendeps,svg]
+----
+@startuml(id=Mavendeps)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Maven Deps - BDD Integ Spec\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Maven Deps - Integration Testing\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
+ rectangle "==Apache Isis Maven Deps - JDK11\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+ rectangle "==Apache Isis Maven Deps - Testing\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
+ rectangle "==Apache Isis Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+}
+@enduml
+----
+
.Projects/Modules (Mavendeps)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -511,6 +746,61 @@ _Dependencies_
== Mappings
+[plantuml,Mappings,svg]
+----
+@startuml(id=Mappings)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Ext - REST Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+ rectangle "==Apache Isis Ext - REST Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
+ rectangle "==Apache Isis Map - JaxRS Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Map - JaxRS Client (impl)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Map - JaxRS Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Mappings\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (Mappings)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -589,6 +879,61 @@ _Dependencies_
== Persistence
+[plantuml,Persistence,svg]
+----
+@startuml(id=Persistence)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Apache Isis Persistence - JDO (datanucleus 5)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+ rectangle "==Apache Isis Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Persistence - JPA (model)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+}
+@enduml
+----
+
.Projects/Modules (Persistence)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -699,6 +1044,43 @@ _Dependencies_
== Security
+[plantuml,Security,svg]
+----
+@startuml(id=Security)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+ rectangle "==Apache Isis Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Apache Isis Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+}
+@enduml
+----
+
.Projects/Modules (Security)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -769,6 +1151,151 @@ _Dependencies_
== Valuetypes
+[plantuml,Valuetypes,svg]
+----
+@startuml(id=Valuetypes)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<22>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<12>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<13>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<14>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<15>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<16>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<17>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<18>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<19>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<20>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<21>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Val - Asciidoctor (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
+ rectangle "==Apache Isis Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Val - Asciidoctor (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+ rectangle "==Apache Isis Val - Asciidoctor (ui vaadin)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+ rectangle "==Apache Isis Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+ rectangle "==Apache Isis Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
+ rectangle "==Apache Isis Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
+ rectangle "==Apache Isis Val - Markdown (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
+ rectangle "==Apache Isis Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+ rectangle "==Apache Isis Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
+ rectangle "==Apache Isis Val - Markdown (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
+ rectangle "==Apache Isis Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
+ rectangle "==Apache Isis Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
+ rectangle "==Apache Isis Val - SSE (ui)\n<size:10>[Container: packaging: pom]</size>" <<21>> as 21
+ rectangle "==Apache Isis Val - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
+ rectangle "==Apache Isis Val - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
+ rectangle "==Apache Isis Val - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
+ rectangle "==Apache Isis Val - Server Sent Events (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<22>> as 22
+ rectangle "==Apache Isis Value types\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (Valuetypes)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -1062,6 +1589,91 @@ _Dependencies_
== Viewer
+[plantuml,Viewer,svg]
+----
+@startuml(id=Viewer)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<12>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Viewer - Common Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+ rectangle "==Apache Isis Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Viewer - RO (JAX-RS Resteasy v4)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+ rectangle "==Apache Isis Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+ rectangle "==Apache Isis Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
+ rectangle "==Apache Isis Viewer - Wicket (Model)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+ rectangle "==Apache Isis Viewer - Wicket (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+ rectangle "==Apache Isis Viewer - Wicket (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+}
+@enduml
+----
+
.Projects/Modules (Viewer)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -1298,6 +1910,127 @@ _Dependencies_
== Testing
+[plantuml,Testing,svg]
+----
+@startuml(id=Testing)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<12>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<13>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<14>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<15>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<16>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<17>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<18>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Testing\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+ rectangle "==Apache Isis Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+ rectangle "==Apache Isis Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
+ rectangle "==Apache Isis Tst - H2 Console (ui)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+ rectangle "==Apache Isis Tst - HSQLDB Manager\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+ rectangle "==Apache Isis Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
+ rectangle "==Apache Isis Tst - Integ Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
+ rectangle "==Apache Isis Tst - Integ Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<13>> as 13
+ rectangle "==Apache Isis Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
+ rectangle "==Apache Isis Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<15>> as 15
+ rectangle "==Apache Isis Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
+ rectangle "==Apache Isis Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<17>> as 17
+}
+@enduml
+----
+
.Projects/Modules (Testing)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -1541,6 +2274,37 @@ _Dependencies_
== Regression Tests
+[plantuml,Regression Tests,svg]
+----
+@startuml(id=Regression_Tests)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis - Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis - Regression Tests (stable)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+}
+@enduml
+----
+
.Projects/Modules (Regression Tests)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -1599,6 +2363,205 @@ _Dependencies_
== Extensions
+[plantuml,Extensions,svg]
+----
+@startuml(id=Extensions)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<22>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<23>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<24>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<25>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<26>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<27>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<28>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<29>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<30>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<31>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<12>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<13>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<14>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<15>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<16>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<17>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<18>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<19>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<20>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<21>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Ext - @Model\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
+ rectangle "==Apache Isis Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+ rectangle "==Apache Isis Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
+ rectangle "==Apache Isis Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Ext - Command Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+ rectangle "==Apache Isis Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Ext - Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+ rectangle "==Apache Isis Ext - Flyway\n<size:10>[Container: packaging: pom]</size>" <<12>> as 12
+ rectangle "==Apache Isis Ext - Flyway Impl\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
+ rectangle "==Apache Isis Ext - Quartz\n<size:10>[Container: packaging: pom]</size>" <<22>> as 22
+ rectangle "==Apache Isis Ext - Quartz Impl\n<size:10>[Container: packaging: jar]</size>" <<23>> as 23
+ rectangle "==Apache Isis Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<24>> as 24
+ rectangle "==Apache Isis Ext - Sec Man API\n<size:10>[Container: packaging: jar]</size>" <<25>> as 25
+ rectangle "==Apache Isis Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<26>> as 26
+ rectangle "==Apache Isis Ext - Sec Man Model\n<size:10>[Container: packaging: jar]</size>" <<27>> as 27
+ rectangle "==Apache Isis Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<28>> as 28
+ rectangle "==Apache Isis Ext - Sec Man Realm (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<29>> as 29
+ rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (impl)\n<size:10>[Container: packaging: jar]</size>" <<31>> as 31
+ rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (parent)\n<size:10>[Container: packaging: pom]</size>" <<30>> as 30
+ rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (parent)\n<size:10>[Container: packaging: pom]</size>" <<10>> as 10
+ rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (ui)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+ rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
+ rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
+ rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (ui)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
+ rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (applib)\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
+ rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
+ rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
+ rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (ui)\n<size:10>[Container: packaging: jar]</size>" <<21>> as 21
+ rectangle "==Apache Isis Extensions\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (Extensions)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -1705,7 +2668,6 @@ _Dependencies_
* org.apache.isis.core:isis-core-config:jar:<managed>
* org.apache.isis.core:isis-core-runtime:jar:<managed>
* org.apache.isis.core:isis-schema:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed>
* org.apache.isis.extensions:isis-extensions-quartz-impl:jar:<managed>
* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
* org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed>
@@ -2032,6 +2994,157 @@ _Dependencies_
== Subdomains
+[plantuml,Subdomains,svg]
+----
+@startuml(id=Subdomains)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<22>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<23>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<12>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<13>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<14>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<15>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<16>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<17>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<18>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<19>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<20>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<21>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Sub - Base (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Sub - Base (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+ rectangle "==Apache Isis Sub - Docx (applib)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Sub - Docx (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+ rectangle "==Apache Isis Sub - Excel (Fixtures)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+ rectangle "==Apache Isis Sub - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+ rectangle "==Apache Isis Sub - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+ rectangle "==Apache Isis Sub - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+ rectangle "==Apache Isis Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+ rectangle "==Apache Isis Sub - Freemarker (applib)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
+ rectangle "==Apache Isis Sub - Freemarker (parent)\n<size:10>[Container: packaging: pom]</size>" <<12>> as 12
+ rectangle "==Apache Isis Sub - Ognl (applib)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
+ rectangle "==Apache Isis Sub - Ognl (parent)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
+ rectangle "==Apache Isis Sub - PDF Box (applib)\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
+ rectangle "==Apache Isis Sub - PDF Box (parent)\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
+ rectangle "==Apache Isis Sub - Spring (applib)\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
+ rectangle "==Apache Isis Sub - Spring (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
+ rectangle "==Apache Isis Sub - XdocReport (applib)\n<size:10>[Container: packaging: jar]</size>" <<21>> as 21
+ rectangle "==Apache Isis Sub - XdocReport (parent)\n<size:10>[Container: packaging: pom]</size>" <<20>> as 20
+ rectangle "==Apache Isis Sub - Zip (applib)\n<size:10>[Container: packaging: jar]</size>" <<23>> as 23
+ rectangle "==Apache Isis Sub - Zip (parent)\n<size:10>[Container: packaging: pom]</size>" <<22>> as 22
+ rectangle "==Apache Isis Subdomains\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (Subdomains)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -2325,6 +3438,61 @@ _Dependencies_
== Tooling
+[plantuml,Tooling,svg]
+----
+@startuml(id=Tooling)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis - Tooling\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Tooling - C4 Modeling\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Apache Isis Tooling - CLI (Command Line Interface)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Tooling - Java Model (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Tooling - Model for AsciiDoc\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Tooling - Project Model (Code mining)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+}
+@enduml
+----
+
.Projects/Modules (Tooling)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -2353,6 +3521,23 @@ _Dependencies_
|org.apache.isis.tooling
+|isis-tooling-c4modeling
+|jar
+|\tooling\c4modeling
+|Apache Isis Tooling - C4 Modeling
+|Library for programmatic C4 Model generation.
+
+ See https://c4model.com/
+
+_Dependencies_
+
+* com.structurizr:structurizr-core:jar:<managed>
+* com.structurizr:structurizr-plantuml:jar:<managed>
+* org.apache.isis.commons:isis-commons:jar:<managed>
+
+
+
+|org.apache.isis.tooling
|isis-tooling-cli
|jar
|\tooling\cli
@@ -2363,6 +3548,7 @@ _Dependencies_
* info.picocli:picocli:jar:<managed>
* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.tooling:isis-tooling-c4modeling:jar:<managed>
* org.apache.isis.tooling:isis-tooling-javamodel:jar:<managed>
* org.apache.isis.tooling:isis-tooling-model4adoc:jar:<managed>
* org.apache.isis.tooling:isis-tooling-projectmodel:jar:<managed>
@@ -2422,6 +3608,61 @@ _Dependencies_
== Examples
+[plantuml,Examples,svg]
+----
+@startuml(id=Examples)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Demo - Domain\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Demo - JavaFX\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Demo - Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Demo - Vaadin\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Demo - Web\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Demo - Wicket\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+}
+@enduml
+----
+
.Projects/Modules (Examples)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -2481,6 +3722,8 @@ _Dependencies_
* demoapp.dom.annotDomain.DomainObject.publishing.metaAnnot.enabled.DomainObjectPublishingEnabledMetaAnnotatedJdoSeedService
* demoapp.dom.annotDomain.DomainObject.publishing.metaAnnotOverridden.enabled.DomainObjectPublishingEnabledMetaAnnotOverriddenJdoEntities
* demoapp.dom.annotDomain.DomainObject.publishing.metaAnnotOverridden.enabled.DomainObjectPublishingEnabledMetaAnnotOverriddenJdoSeedService
+* demoapp.dom.annotDomain.Property.command.PropertyCommandJdoEntities
+* demoapp.dom.annotDomain.Property.command.PropertyCommandJdoSeedService
* demoapp.dom.annotDomain.Property.publishing.PropertyPublishingJdoEntities
* demoapp.dom.annotDomain.Property.publishing.PropertyPublishingJdoSeedService
* demoapp.dom.annotDomain._changes.PublisherServiceToCaptureChangesInMemory
@@ -2716,6 +3959,85 @@ _Dependencies_
== Incubator
+[plantuml,Incubator,svg]
+----
+@startuml(id=Incubator)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<11>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<9>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<10>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Inc - Client kroViz\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Apache Isis Inc - Viewer JavaFX\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
+ rectangle "==Apache Isis Inc - Viewer JavaFX (Model)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Inc - Viewer JavaFX (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Inc - Viewer JavaFX (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+ rectangle "==Apache Isis Inc - Viewer Vaadin\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
+ rectangle "==Apache Isis Inc - Viewer Vaadin (Model)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+ rectangle "==Apache Isis Inc - Viewer Vaadin (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+ rectangle "==Apache Isis Inc - Viewer Vaadin (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+ rectangle "==Apache Isis Incubator\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+
.Projects/Modules (Incubator)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
@@ -2881,6 +4203,61 @@ _Dependencies_
== Legacy
+[plantuml,Legacy,svg]
+----
+@startuml(id=Legacy)
+title package-ecosystem - Containers
+caption Artifact Dependency Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+ BackgroundColor #438dd5
+ FontColor #fffffe
+ BorderColor #2E6295
+}
+package "package-ecosystem\n[Software System]" {
+ rectangle "==Apache Isis Legacy\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+ rectangle "==Apache Isis Legacy - Applib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+ rectangle "==Apache Isis Legacy - Commons\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+ rectangle "==Apache Isis Legacy - Metamodel\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+ rectangle "==Apache Isis Legacy - REST Client\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+ rectangle "==Apache Isis Legacy - Runtime\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+}
+@enduml
+----
+
.Projects/Modules (Legacy)
[cols="2m,2m,1m,1m,2,5a", options="header"]
|===
diff --git a/tooling/c4modeling/src/main/java/org/apache/isis/tooling/c4/C4.java b/tooling/c4modeling/src/main/java/org/apache/isis/tooling/c4/C4.java
index 43268a7..8b4663f 100644
--- a/tooling/c4modeling/src/main/java/org/apache/isis/tooling/c4/C4.java
+++ b/tooling/c4modeling/src/main/java/org/apache/isis/tooling/c4/C4.java
@@ -20,25 +20,34 @@ package org.apache.isis.tooling.c4;
import java.util.Optional;
+import javax.annotation.Nullable;
+
import com.structurizr.Workspace;
-import com.structurizr.io.plantuml.PlantUMLWriter;
+import com.structurizr.io.plantuml.AbstractPlantUMLWriter;
+import com.structurizr.io.plantuml.StructurizrPlantUMLWriter;
import com.structurizr.model.Element;
import com.structurizr.model.Model;
+import com.structurizr.model.Person;
+import com.structurizr.model.SoftwareSystem;
import com.structurizr.model.Tags;
+import com.structurizr.view.Shape;
+import com.structurizr.view.SystemContextView;
import com.structurizr.view.View;
import com.structurizr.view.ViewSet;
+import org.apache.isis.commons.internal.base._Strings;
+
import lombok.AccessLevel;
import lombok.Getter;
+import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.val;
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class C4 {
- final PlantUMLWriter plantUMLWriter = new PlantUMLWriter();
-
@Getter private final Workspace workspace;
+ private final AbstractPlantUMLWriter plantUMLWriter;
/**
* Creates a new workspace.
@@ -46,12 +55,17 @@ public class C4 {
* @param name the name of the workspace
* @param description a short description
*/
- public static C4 of(String name, String description) {
- val c4 = new C4(new Workspace(name, description));
+ public static C4 of(@NonNull String name, @Nullable String description) {
+ val plantUMLWriter = new StructurizrPlantUMLWriter();
+ val c4 = new C4(new Workspace(name, _Strings.nullToEmpty(description)), plantUMLWriter);
c4.applyDefaultStyles();
return c4;
}
-
+
+ public String getWorkspaceName() {
+ return workspace.getName();
+ }
+
/**
* @return the software architecture model
*/
@@ -72,6 +86,20 @@ public class C4 {
public String toPlantUML(View view) {
return plantUMLWriter.toString(view);
}
+
+ // -- SIMPLE FACTORIES
+
+ public Person person(@NonNull String name, @Nullable String description) {
+ return getModel().addPerson(name, _Strings.nullToEmpty(description));
+ }
+
+ public SoftwareSystem softwareSystem(@NonNull String name, @Nullable String description) {
+ return getModel().addSoftwareSystem(name, _Strings.nullToEmpty(description));
+ }
+
+ public SystemContextView systemContextView(@NonNull SoftwareSystem softwareSystem, @NonNull String key, @Nullable String description) {
+ return getViewSet().createSystemContextView(softwareSystem, key, _Strings.nullToEmpty(description));
+ }
// -- EXPERIMENTAL
@@ -89,14 +117,18 @@ public class C4 {
val styles = getViewSet().getConfiguration().getStyles();
styles.addElementStyle(Tags.ELEMENT).color("#fffffe");
- styles.addElementStyle(Tags.PERSON).background("#08427b");
+ //styles.addElementStyle(Tags.PERSON).background("#08427b");
styles.addElementStyle(Tags.CONTAINER).background("#438dd5");
// styles.addElementStyle(Tags.SOFTWARE_SYSTEM)
// .color("#ffffff")
// .background("#1168bd");
- //styles.addElementStyle(Tags.PERSON).background("#08427b").color("#ffffff").shape(Shape.Person);
+ styles.addElementStyle(Tags.PERSON).background("#08427b").color("#ffffff").shape(Shape.Person);
}
+
+
+
+
}
diff --git a/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/C4Test.java b/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/C4Test.java
index 4136a2a..568f457 100644
--- a/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/C4Test.java
+++ b/tooling/c4modeling/src/test/java/org/apache/isis/tooling/c4/test/C4Test.java
@@ -24,17 +24,18 @@ import java.nio.charset.StandardCharsets;
import com.structurizr.Workspace;
import com.structurizr.io.plantuml.PlantUMLWriter;
-import com.structurizr.model.Model;
import com.structurizr.model.Person;
import com.structurizr.model.SoftwareSystem;
import com.structurizr.view.SystemContextView;
-import com.structurizr.view.ViewSet;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.apache.isis.commons.internal.base._Text;
+import org.apache.isis.tooling.c4.C4;
+
+import lombok.val;
class C4Test {
@@ -51,34 +52,79 @@ class C4Test {
* see https://www.baeldung.com/structurizr
*/
@Test
- void testStructurizrNative() throws IOException {
+ void testStructurizr_native() throws IOException {
+
+ // First, we need to create a Workspace and a Model:
- Workspace workspace = new Workspace("Payment Gateway", "Payment Gateway");
- Model model = workspace.getModel();
+ val workspace = new Workspace("Payment Gateway", "Payment Gateway");
+ val model = workspace.getModel();
+
+ // We also define a user and two software systems within that model:
Person user = model.addPerson("Merchant", "Merchant");
- SoftwareSystem paymentTerminal = model.addSoftwareSystem(
- "Payment Terminal", "Payment Terminal");
+ SoftwareSystem paymentTerminal = model
+ .addSoftwareSystem("Payment Terminal", "Payment Terminal");
user.uses(paymentTerminal, "Makes payment");
- SoftwareSystem fraudDetector = model.addSoftwareSystem(
- "Fraud Detector", "Fraud Detector");
+ SoftwareSystem fraudDetector = model
+ .addSoftwareSystem("Fraud Detector", "Fraud Detector");
paymentTerminal.uses(fraudDetector, "Obtains fraud score");
- ViewSet viewSet = workspace.getViews();
+ // Now that our system is defined, we can create a view
+ // Here we created a view that includes all software systems and persons.
+
+ val viewSet = workspace.getViews();
- SystemContextView contextView = viewSet.createSystemContextView(
- paymentTerminal, "context", "Payment Gateway Diagram");
+ SystemContextView contextView = viewSet
+ .createSystemContextView(paymentTerminal, "context", "Payment Gateway Diagram");
contextView.addAllSoftwareSystems();
contextView.addAllPeople();
- StringWriter stringWriter = new StringWriter();
- PlantUMLWriter plantUMLWriter = new PlantUMLWriter();
+ // Now the view needs to be rendered.
+
+ val stringWriter = new StringWriter();
+ val plantUMLWriter = new PlantUMLWriter();
plantUMLWriter.write(workspace, stringWriter);
_Text.assertTextEquals(
- _Text.readLinesFromResource(this.getClass(), "baeldung-example.puml", StandardCharsets.UTF_8),
+ _Text.readLinesFromResource(this.getClass(), "baeldung-example-v1.puml", StandardCharsets.UTF_8),
stringWriter.toString());
}
+ /**
+ * see https://www.baeldung.com/structurizr
+ */
+ @Test
+ void testStructurizr_usingFactory() throws IOException {
+
+ val c4 = C4.of("Payment Gateway", "Payment Gateway");
+
+ // We also define a user and two software systems within that model:
+
+ Person user = c4.person("Merchant", "Merchant");
+ SoftwareSystem paymentTerminal = c4.softwareSystem("Payment Terminal", "Payment Terminal");
+ SoftwareSystem fraudDetector = c4.softwareSystem("Fraud Detector", "Fraud Detector");
+
+ user.uses(paymentTerminal, "Makes payment");
+ paymentTerminal.uses(fraudDetector, "Obtains fraud score");
+
+ // Now that our system is defined, we can create a view
+ // Here we created a view that includes all software systems and persons.
+
+ SystemContextView contextView = c4.systemContextView(paymentTerminal, "context", "Payment Gateway Diagram");
+ contextView.addAllSoftwareSystems();
+ contextView.addAllPeople();
+
+ // Now the view needs to be rendered.
+
+ val plantUmlSource = c4.toPlantUML(contextView);
+
+ // System.out.println(plantUmlSource); //debug
+
+ _Text.assertTextEquals(
+ _Text.readLinesFromResource(this.getClass(), "baeldung-example-v2.puml", StandardCharsets.UTF_8),
+ plantUmlSource);
+
+ }
+
}
diff --git a/tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example.puml b/tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example-v1.puml
similarity index 100%
rename from tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example.puml
rename to tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example-v1.puml
diff --git a/tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example-v2.puml b/tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example-v2.puml
new file mode 100644
index 0000000..33fdad1
--- /dev/null
+++ b/tooling/c4modeling/src/test/resources/org/apache/isis/tooling/c4/test/baeldung-example-v2.puml
@@ -0,0 +1,33 @@
+@startuml(id=context)
+title Payment Terminal - System Context
+caption Payment Gateway Diagram
+
+skinparam {
+ shadowing false
+ arrowFontSize 10
+ defaultTextAlignment center
+ wrapWidth 200
+ maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<1>> {
+ BackgroundColor #08427b
+ FontColor #ffffff
+ BorderColor #052E56
+}
+skinparam rectangle<<2>> {
+ BackgroundColor #dddddd
+ FontColor #fffffe
+ BorderColor #9A9A9A
+}
+skinparam rectangle<<3>> {
+ BackgroundColor #dddddd
+ FontColor #fffffe
+ BorderColor #9A9A9A
+}
+rectangle "==Merchant\n<size:10>[Person]</size>\n\nMerchant" <<1>> as 1
+rectangle "==Fraud Detector\n<size:10>[Software System]</size>\n\nFraud Detector" <<3>> as 3
+rectangle "==Payment Terminal\n<size:10>[Software System]</size>\n\nPayment Terminal" <<2>> as 2
+1 .[#707070].> 2 : "Makes payment"
+2 .[#707070].> 3 : "Obtains fraud score"
+@enduml
\ No newline at end of file
diff --git a/tooling/cli/pom.xml b/tooling/cli/pom.xml
index fbeae9f..d4ba5cd 100644
--- a/tooling/cli/pom.xml
+++ b/tooling/cli/pom.xml
@@ -60,6 +60,11 @@
<groupId>org.apache.isis.tooling</groupId>
<artifactId>isis-tooling-javamodel</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.tooling</groupId>
+ <artifactId>isis-tooling-c4modeling</artifactId>
+ </dependency>
<dependency>
<groupId>info.picocli</groupId>
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 4663334..2c21c20 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -28,12 +28,16 @@ import java.util.stream.Collectors;
import javax.annotation.Nullable;
+import com.structurizr.model.SoftwareSystem;
+
import org.asciidoctor.ast.Document;
import org.apache.isis.commons.internal.base._Files;
import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.tooling.c4.C4;
import org.apache.isis.tooling.cli.CliConfig.ProjectDoc;
import org.apache.isis.tooling.javamodel.AnalyzerConfigFactory;
+import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
import org.apache.isis.tooling.model4adoc.AsciiDocWriter;
import org.apache.isis.tooling.projectmodel.ArtifactCoordinates;
import org.apache.isis.tooling.projectmodel.Dependency;
@@ -97,14 +101,54 @@ public class ProjectDocModel {
// -- HELPER
+ private static class GroupDiagram {
+
+ private final C4 c4;
+ private final SoftwareSystem softwareSystem;
+
+ public GroupDiagram(C4 c4) {
+ this.c4 = c4;
+ this.softwareSystem = c4.softwareSystem("package-ecosystem", null);
+ }
+
+ public void collect(ProjectNode module) {
+ softwareSystem.addContainer(
+ module.getName(),
+ "",//module.getDescription(),
+ String.format("packaging: %s", module.getArtifactCoordinates().getPackaging()));
+ }
+
+ public String toPlantUml() {
+
+ val key = c4.getWorkspaceName();
+
+ val containerView = c4.getViewSet().createContainerView(softwareSystem, key, "Artifact Dependency Diagram");
+ containerView.addAllContainers();
+
+ val plantUmlSource = c4.toPlantUML(containerView);
+ return plantUmlSource;
+ }
+
+ public String toAsciiDoc() {
+
+ val key = c4.getWorkspaceName();
+
+ return AsciiDocFactory.SourceFactory.plantuml(toPlantUml(), key, null);
+ }
+
+ }
+
private void createSection(
final @NonNull Document doc,
final @NonNull String sectionName,
final @Nullable String groupIdPattern) {
- val block = block(doc);
+ val titleBlock = block(doc);
- block.setSource(String.format("== %s", sectionName));
+ titleBlock.setSource(String.format("== %s", sectionName));
+
+ val descriptionBlock = block(doc);
+ val groupDiagram = new GroupDiagram(C4.of(sectionName, null));
val table = table(doc);
table.setTitle(String.format("Projects/Modules (%s)", sectionName));
@@ -132,6 +176,7 @@ public class ProjectDocModel {
val projRelativePath = _Files.toRelativePath(projRoot, projPath);
modulesWritten.add(module);
+ groupDiagram.collect(module);
val row = row(table);
cell(table, row, module.getArtifactCoordinates().getGroupId());
@@ -142,6 +187,8 @@ public class ProjectDocModel {
cell(table, row, details(module));
});
+ descriptionBlock.setSource(groupDiagram.toAsciiDoc());
+
modules.removeAll(modulesWritten);
}
diff --git a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
index 32cb270..46878b5 100644
--- a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
+++ b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
@@ -18,6 +18,8 @@
*/
package org.apache.isis.tooling.model4adoc;
+import javax.annotation.Nullable;
+
import org.asciidoctor.ast.Block;
import org.asciidoctor.ast.Cell;
import org.asciidoctor.ast.Column;
@@ -26,6 +28,9 @@ import org.asciidoctor.ast.Row;
import org.asciidoctor.ast.StructuralNode;
import org.asciidoctor.ast.Table;
+import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.base._Text;
import org.apache.isis.tooling.model4adoc.ast.SimpleBlock;
import org.apache.isis.tooling.model4adoc.ast.SimpleCell;
import org.apache.isis.tooling.model4adoc.ast.SimpleColumn;
@@ -33,6 +38,7 @@ import org.apache.isis.tooling.model4adoc.ast.SimpleDocument;
import org.apache.isis.tooling.model4adoc.ast.SimpleRow;
import org.apache.isis.tooling.model4adoc.ast.SimpleTable;
+import lombok.NonNull;
import lombok.val;
/**
@@ -125,6 +131,52 @@ public class AsciiDocFactory {
return cell(row, col, source);
}
+ public static class SourceFactory {
+
+ public static String wrap(@NonNull String sourceType, @NonNull String source, @Nullable String title, Can<String> options) {
+ val sb = new StringBuilder();
+ sb.append("[").append(sourceType);
+ options.stream().map(String::trim).filter(_Strings::isNotEmpty).map(s->","+s).forEach(sb::append);
+ sb.append("]\n").append("----\n");
+ if(_Strings.isNotEmpty(title)) {
+ val trimmedTitle = title.trim();
+ if(!trimmedTitle.isEmpty()) {
+ sb.append(".").append(trimmedTitle).append("\n");
+ }
+ }
+ _Text.normalize(_Text.getLines(source))
+ .forEach(line->sb.append(line).append("\n"));
+ sb.append("----\n");
+ return sb.toString();
+ }
+
+ public static String xml(@NonNull String xmlSource, @Nullable String title) {
+ return wrap("source,xml", xmlSource, title, Can.empty());
+ }
+
+// [source,java]
+// .title
+// ----
+// public class SomeClass extends SomeOtherClass {
+// ...
+// }
+// ----
+ public static String java(@NonNull String javaSource, @Nullable String title) {
+ return wrap("source,java", javaSource, title, Can.empty());
+ }
+
+// [plantuml,c4-demo,svg]
+// ----
+// @startuml
+// ...
+// @enduml
+// ----
+ public static String plantuml(@NonNull String plantumlSource, @NonNull String diagramKey, @Nullable String title) {
+ return wrap(String.format("plantuml,%s,svg", diagramKey), plantumlSource, title, Can.of());
+ }
+
+
+ }
// -- HELPER
diff --git a/tooling/pom.xml b/tooling/pom.xml
index 2c14035..c7675f1 100644
--- a/tooling/pom.xml
+++ b/tooling/pom.xml
@@ -105,6 +105,12 @@
<dependency>
<groupId>org.apache.isis.tooling</groupId>
+ <artifactId>isis-tooling-c4modeling</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.tooling</groupId>
<artifactId>isis-tooling-model4adoc</artifactId>
<version>${project.version}</version>
</dependency>