From 6d2cae81c09783269fca4a7c955e5f511a7c5f57 Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Tue, 22 Oct 2024 17:40:41 +0200
Subject: [PATCH] OZG-6891 Add Readme sequence diagrams

---
 README.md | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 126 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 1a39d05..69597c4 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,128 @@
-# XTA Client Bibliothek
+# XTA-Client
+
+Ein Client zum Senden und Empfangen von XTA Nachrichten.
+
+
+
+Der Client verwendet *XTA 2 Version 3.1* mit [XTA-Modul-Webservice-Version](https://www.xoev.de/osci-xta/standard-xta-2/xta-versionsuebersicht-23036) `2.1.1`.
+Er wird als Maven-Artefakt `xta-client-lib` bereitgestellt und kann in Java-Anwendungen eingebunden werden.
+
+## Senden einer Nachricht
+Zum Senden einer Nachricht konfiguriert der Nutzer einen neuen XTA-Client.
+```mermaid
+%% Versand einer Nachricht
+  sequenceDiagram
+    participant A as Nutzer
+    participant B as XTA-Client
+    participant C as XTA-Server
+    Note left of A: (1) XTA-Client erzeugen
+    Note left of A: (2) Nachricht erzeugen
+    Note left of A: (3) Nachricht senden
+    A->>B: sendMessage
+    activate A
+    activate B
+    B->>C: checkAccountActive
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>C: lookupService
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>C: createMessageID
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>C: sendMessage
+    activate C
+    deactivate C
+    B->>C: getTransportReport
+    activate C
+    C-->>B: 
+    deactivate C
+    Note left of A: (4) Nachrichtenstatus prüfen
+    B-->>A: 
+	deactivate B
+	deactivate A
+```
+
+<small>* XTA-Server wird auch oft als Nachrichtenbroker oder Nachrichtenvermittler bezeichnet.</small>
+
+**Beispielcode:**
+
+```java
+// (1) XTA-Client erzeugen
+var client = XtaClient.from(config);
+// (2) Nachricht erzeugen
+...
+```
+
+
+## Empfangen von Nachrichten
+Zum Empfangen von Nachrichten konfiguriert der Nutzer einen neuen XTA-Client mit allen seinen Leser-Kennungen.
+
+```mermaid
+%% Abfrage einer Nachricht
+  sequenceDiagram
+    participant A as Nutzer
+    participant D as Verarbeiter
+    participant B as XTA-Client
+    participant C as XTA-Server
+    Note left of A: (1) XTA-Client erzeugen
+    Note left of A: (2) Nachrichten abholen
+    A->>B: fetchMessages
+
+    activate A
+    activate B
+    B->>C: getStatusList
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>C: getTransportReport
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>A: 
+	deactivate B
+	Note left of B: (4) Nachricht abholen
+    A->>B: getMessage
+    activate B
+    B->>C: getMessage
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>C: getTransportReport
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>A: 
+	deactivate B
+	Note left of D: ...Nachricht verarbeiten...
+	Note left of B: (5) Nachricht schließen
+    A->>B: close
+    activate B
+    B->>C: close
+    activate C
+    C-->>B: 
+    deactivate C
+    B->>A: 
+	deactivate B
+	deactivate A
+```
+
+
+**Beispielcode:**
+
+```java
+// (1) XTA-Client erzeugen
+var client = XtaClient.from(config);
+// (2) Nachricht erzeugen
+...
+```
+
+## Referenzen
+
+- Dieser XTA Client basiert auf dem [XTA Client Beispielcode für XTA 2 Version 3 vom 21.07.2021](https://www.xoev.de/sixcms/media.php/13/XTA_Client_Version_3_20210721.zip) auffindbar unter [Hilfsmittel](https://www.xoev.de/osci-xta/standard-xta-2/xta-hilfsmittel-23081).
+- Die [XTA 2 Version 3.1 Spezifikation](file:///home/janz/Downloads/XTA_2_Version_3.1_Spezifikation_30112021-2.pdf) ist auffindbar unter [XTA 2 Version 3.1](https://www.xoev.de/osci-xta/standard-xta-2/xta-versionsuebersicht/xta-2-version-3-23038).
 
-Mit dieser Bibliothek soll anhand des Kosit Beispielprojektes eine einfache Anbindung an die XTA API ermöglicht werden.  
 
-das ist ein toller gitea push mirror test
\ No newline at end of file
-- 
GitLab