You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/02/21 05:01:43 UTC
[causeway] branch master updated: Bump structurizr-core from 1.19.0 to 1.20.1
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 <ah...@apache.org>
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>