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/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new ac1d1403fa Bump structurizr-core from 1.19.0 to 1.20.1
ac1d1403fa is described below

commit ac1d1403fa6a79028d66de348aea4e4bedf2fee8
Author: Andi Huber <[email protected]>
AuthorDate: Tue Feb 21 06:01:38 2023 +0100

    Bump structurizr-core from 1.19.0 to 1.20.1
    
    - that is by replacing outdated structurizr-plantuml with
    structurizr-export
---
 tooling/c4modeling/pom.xml                         |  9 +---
 .../java/org/apache/causeway/tooling/c4/C4.java    | 34 +++++++------
 .../apache/causeway/tooling/c4/test/C4Test.java    | 17 ++++---
 .../tooling/c4/test/baeldung-example-v1.puml       | 55 ++++++++++++----------
 .../tooling/c4/test/baeldung-example-v2.puml       | 34 +++++++------
 tooling/pom.xml                                    | 20 +++-----
 6 files changed, 89 insertions(+), 80 deletions(-)

diff --git a/tooling/c4modeling/pom.xml b/tooling/c4modeling/pom.xml
index 671cf1f53d..c528782116 100644
--- a/tooling/c4modeling/pom.xml
+++ b/tooling/c4modeling/pom.xml
@@ -41,13 +41,8 @@
                </dependency>
 
                <dependency>
-                       <groupId>com.structurizr</groupId>
-                       <artifactId>structurizr-core</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>com.structurizr</groupId>
-                       <artifactId>structurizr-plantuml</artifactId>
+                   <groupId>com.structurizr</groupId>
+                   <artifactId>structurizr-export</artifactId>
                </dependency>
 
        </dependencies>
diff --git 
a/tooling/c4modeling/src/main/java/org/apache/causeway/tooling/c4/C4.java 
b/tooling/c4modeling/src/main/java/org/apache/causeway/tooling/c4/C4.java
index 83a20cb784..5b935d5f4e 100644
--- a/tooling/c4modeling/src/main/java/org/apache/causeway/tooling/c4/C4.java
+++ b/tooling/c4modeling/src/main/java/org/apache/causeway/tooling/c4/C4.java
@@ -21,16 +21,15 @@ package org.apache.causeway.tooling.c4;
 import java.util.Optional;
 
 import com.structurizr.Workspace;
-import com.structurizr.io.plantuml.PlantUMLWriter;
-import com.structurizr.io.plantuml.StructurizrPlantUMLWriter;
+import com.structurizr.export.plantuml.StructurizrPlantUMLExporter;
 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.ContainerView;
 import com.structurizr.view.Shape;
 import com.structurizr.view.SystemContextView;
-import com.structurizr.view.View;
 import com.structurizr.view.ViewSet;
 
 import org.springframework.lang.Nullable;
@@ -47,7 +46,7 @@ import lombok.val;
 public class C4 {
 
     @Getter private final Workspace workspace;
-    private final PlantUMLWriter plantUMLWriter;
+    private final StructurizrPlantUMLExporter plantUMLExporter;
 
     /**
      * Creates a new workspace.
@@ -55,8 +54,8 @@ public class C4 {
      * @param name          the name of the workspace
      * @param description   a short description
      */
-    public static C4 of(@NonNull String name, @Nullable String description) {
-        val plantUMLWriter = new StructurizrPlantUMLWriter();
+    public static C4 of(@NonNull final String name, @Nullable final String 
description) {
+        val plantUMLWriter = new StructurizrPlantUMLExporter();
         val c4 = new C4(new Workspace(name, 
_Strings.nullToEmpty(description)), plantUMLWriter);
         c4.applyDefaultStyles();
         return c4;
@@ -81,33 +80,40 @@ public class C4 {
     }
 
     /**
-     * @return a single {@code view} as a PlantUML diagram definition
+     * @return a single {@link ContainerView} as a PlantUML diagram definition
      */
-    public String toPlantUML(View view) {
-        return plantUMLWriter.toString(view);
+    public String toPlantUML(final ContainerView containerView) {
+        return plantUMLExporter.export(containerView).getDefinition();
+    }
+
+    /**
+     * @return a single {@link SystemContextView} as a PlantUML diagram 
definition
+     */
+    public String toPlantUML(final SystemContextView systemContextView) {
+        return plantUMLExporter.export(systemContextView).getDefinition();
     }
 
     // -- SIMPLE FACTORIES
 
-    public Person person(@NonNull String name, @Nullable String description) {
+    public Person person(@NonNull final String name, @Nullable final String 
description) {
         return getModel().addPerson(name, _Strings.nullToEmpty(description));
     }
 
-    public SoftwareSystem softwareSystem(@NonNull String name, @Nullable 
String description) {
+    public SoftwareSystem softwareSystem(@NonNull final String name, @Nullable 
final String description) {
         return getModel().addSoftwareSystem(name, 
_Strings.nullToEmpty(description));
     }
 
-    public SystemContextView systemContextView(@NonNull SoftwareSystem 
softwareSystem, @NonNull String key, @Nullable String description) {
+    public SystemContextView systemContextView(@NonNull final SoftwareSystem 
softwareSystem, @NonNull final String key, @Nullable final String description) {
         return getViewSet().createSystemContextView(softwareSystem, key, 
_Strings.nullToEmpty(description));
     }
 
     // -- EXPERIMENTAL
 
-    public static void setTypeOverride(Element element, String typeOverride) {
+    public static void setTypeOverride(final Element element, final String 
typeOverride) {
         element.addProperty("typeOverride", typeOverride);
     }
 
-    public static Optional<String> getTypeOverride(Element element) {
+    public static Optional<String> getTypeOverride(final Element element) {
         return 
Optional.ofNullable(element.getProperties().get("typeOverride"));
     }
 
diff --git 
a/tooling/c4modeling/src/test/java/org/apache/causeway/tooling/c4/test/C4Test.java
 
b/tooling/c4modeling/src/test/java/org/apache/causeway/tooling/c4/test/C4Test.java
index fb9fbfbb2d..691a866f52 100644
--- 
a/tooling/c4modeling/src/test/java/org/apache/causeway/tooling/c4/test/C4Test.java
+++ 
b/tooling/c4modeling/src/test/java/org/apache/causeway/tooling/c4/test/C4Test.java
@@ -19,11 +19,10 @@
 package org.apache.causeway.tooling.c4.test;
 
 import java.io.IOException;
-import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
 
 import com.structurizr.Workspace;
-import com.structurizr.io.plantuml.BasicPlantUMLWriter;
+import com.structurizr.export.plantuml.StructurizrPlantUMLExporter;
 import com.structurizr.model.Person;
 import com.structurizr.model.SoftwareSystem;
 import com.structurizr.view.SystemContextView;
@@ -81,13 +80,19 @@ class C4Test {
 
         // Now the view needs to be rendered.
 
-        val stringWriter = new StringWriter();
-        val plantUMLWriter = new BasicPlantUMLWriter();
-        plantUMLWriter.write(workspace, stringWriter);
+        val sb = new StringBuffer();
+        val plantUMLExporter = new StructurizrPlantUMLExporter();
+        
plantUMLExporter.export(workspace).forEach(diagram->sb.append(diagram.getDefinition()));
+
+        System.err.println("---");
+        System.err.printf("%s%n", sb.toString());
+        System.err.println("---");
 
         _Text.assertTextEquals(
                 _Text.readLinesFromResource(this.getClass(), 
"baeldung-example-v1.puml", StandardCharsets.UTF_8),
-                stringWriter.toString());
+                sb.toString());
+
+
     }
 
     /**
diff --git 
a/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v1.puml
 
b/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v1.puml
index 8cee7c1db9..837f48c5e0 100644
--- 
a/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v1.puml
+++ 
b/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v1.puml
@@ -1,34 +1,39 @@
-@startuml(id=context)
+@startuml
+set separator none
 title Payment Terminal - System Context
-caption Payment Gateway Diagram
+
+top to bottom direction
 
 skinparam {
   shadowing false
-  arrowColor #707070
-  actorBorderColor #707070
-  componentBorderColor #707070
-  rectangleBorderColor #707070
-  noteBackgroundColor #ffffff
-  noteBorderColor #707070
+  arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
   maxMessageSize 100
 }
-rectangle 1 <<Person>> #dddddd [
-  Merchant
-  --
-  Merchant
-]
-rectangle 4 <<Software System>> #dddddd [
-  Fraud Detector
-  --
-  Fraud Detector
-]
-rectangle 2 <<Software System>> #dddddd [
-  Payment Terminal
-  --
-  Payment Terminal
-]
-1 .[#707070].> 2 : Makes payment
-2 .[#707070].> 4 : Obtains fraud score
+
+hide stereotype
+
+skinparam rectangle<<FraudDetector>> {
+  BackgroundColor #dddddd
+  FontColor #000000
+  BorderColor #9a9a9a
+}
+skinparam rectangle<<Merchant>> {
+  BackgroundColor #dddddd
+  FontColor #000000
+  BorderColor #9a9a9a
+}
+skinparam rectangle<<PaymentTerminal>> {
+  BackgroundColor #dddddd
+  FontColor #000000
+  BorderColor #9a9a9a
+}
+
+rectangle "==Merchant\n<size:10>[Person]</size>\n\nMerchant" <<Merchant>> as 
Merchant
+rectangle "==Payment Terminal\n<size:10>[Software System]</size>\n\nPayment 
Terminal" <<PaymentTerminal>> as PaymentTerminal
+rectangle "==Fraud Detector\n<size:10>[Software System]</size>\n\nFraud 
Detector" <<FraudDetector>> as FraudDetector
+
+Merchant .[#707070,thickness=2].> PaymentTerminal : "<color:#707070>Makes 
payment"
+PaymentTerminal .[#707070,thickness=2].> FraudDetector : 
"<color:#707070>Obtains fraud score"
 @enduml
\ No newline at end of file
diff --git 
a/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v2.puml
 
b/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v2.puml
index 4e5563f83d..2792abe813 100644
--- 
a/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v2.puml
+++ 
b/tooling/c4modeling/src/test/resources/org/apache/causeway/tooling/c4/test/baeldung-example-v2.puml
@@ -1,6 +1,8 @@
-@startuml(id=context)
+@startuml
+set separator none
 title Payment Terminal - System Context
-caption Payment Gateway Diagram
+
+top to bottom direction
 
 skinparam {
   shadowing false
@@ -9,25 +11,29 @@ skinparam {
   wrapWidth 200
   maxMessageSize 100
 }
+
 hide stereotype
-skinparam rectangle<<1>> {
-  BackgroundColor #08427b
-  FontColor #ffffff
-  BorderColor #052e56
-}
-skinparam rectangle<<2>> {
+
+skinparam rectangle<<FraudDetector>> {
   BackgroundColor #dddddd
   FontColor #fffffe
   BorderColor #9a9a9a
 }
-skinparam rectangle<<3>> {
+skinparam person<<Merchant>> {
+  BackgroundColor #08427b
+  FontColor #ffffff
+  BorderColor #052e56
+}
+skinparam rectangle<<PaymentTerminal>> {
   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,thickness=2].> 2 : "Makes payment"
-2 .[#707070,thickness=2].> 3 : "Obtains fraud score"
+
+person "==Merchant\n<size:10>[Person]</size>\n\nMerchant" <<Merchant>> as 
Merchant
+rectangle "==Payment Terminal\n<size:10>[Software System]</size>\n\nPayment 
Terminal" <<PaymentTerminal>> as PaymentTerminal
+rectangle "==Fraud Detector\n<size:10>[Software System]</size>\n\nFraud 
Detector" <<FraudDetector>> as FraudDetector
+
+Merchant .[#707070,thickness=2].> PaymentTerminal : "<color:#707070>Makes 
payment"
+PaymentTerminal .[#707070,thickness=2].> FraudDetector : 
"<color:#707070>Obtains fraud score"
 @enduml
\ No newline at end of file
diff --git a/tooling/pom.xml b/tooling/pom.xml
index 43ccc60008..99deba28c4 100644
--- a/tooling/pom.xml
+++ b/tooling/pom.xml
@@ -43,11 +43,9 @@
                <maven-model-builder.version>3.9.0</maven-model-builder.version>
                <picocli.version>4.7.1</picocli.version>
                
-               <!-- structurizr-core 1.20+ needs structurizr-plantuml newer 
than 1.6.3,
-                       which is not availabale as of yet (19-feb-2023) -->
-               <structurizr.version>1.19.0</structurizr.version> 
-               
<structurizr-plantuml.version>1.6.3</structurizr-plantuml.version>
-
+               <!-- brings in structurizr-core as a transitive dependency -->
+               <structurizr-export.version>1.10.0</structurizr-export.version>
+               
        </properties>
 
        <repositories>
@@ -240,15 +238,9 @@
                        </dependency>
 
                        <dependency>
-                               <groupId>com.structurizr</groupId>
-                               <artifactId>structurizr-core</artifactId>
-                               <version>${structurizr.version}</version>
-                       </dependency>
-
-                       <dependency>
-                               <groupId>com.structurizr</groupId>
-                               <artifactId>structurizr-plantuml</artifactId>
-                               
<version>${structurizr-plantuml.version}</version>
+                           <groupId>com.structurizr</groupId>
+                           <artifactId>structurizr-export</artifactId>
+                           <version>${structurizr-export.version}</version>
                        </dependency>
 
                </dependencies>

Reply via email to