Hier sind alle wichtigen Änderungen dieses Projekts aufgeführt. Es ersetzt die ehemaligen Release Notes und Changes-Report von gdv.xport und orientiert sich an Keep a Changelog, genauso wie an Semantic Versioning. Aus Gründen der Übersichtlichkeit sind bei älteren Versionen die einzelnen Patch-Versionen nicht extra aufgeführt, sondern in der Minor-Version.
- zurück zu unveränderten technischen Namen aus Original VUVM
- leere Vorzeichenfelder sind jetzt zugelassen (Issue #96)
- v7.1.1:Fix für Feld JahresrenteInWaehrungseinheiten in SatzTyp 0220.010.9.1 in XMLs (Issue #95)
- Fehler in Methode "Bezeichner#of(String name)" (Issue #93)
- SatzTest#hasSparteAsProdukt() fehlerhaft (Issue #94)
- Update auf Java 11
- Teildatensatz.getFeld(int) auf maximale Feld-Anzahl beschränkt
- Teildatensatz.getFeld(String, ..) ist jetzt deprecated
- Teildatensatz ist jetzt von Datensatz abgeleitet (statt Satz)
- Basis-Validierung optimiert
- satzarten.properties zur Unterstützung der Valdierungslogik in SatzTyp eingeführt
- Validierung in Datensatz.setSparte(int)
- SatzTyp.isFreieSatzart() und SatzTyp.getErlaubteSparten()
- Unterstützung von Java 8
- XmlService.getSatzart(int)
- Unterstützung GDV-Version 2023
- Umstellung Feld-Constructor auf ByteAdresse (alte Constructoren sind damit 'deprecated')
- schnellere Validierung
- technische Namen innerhalb eines Datensatzes sind immer eindeutig (im Gegensatz zur Original-VUVM20xx.xml)
- Bezeichner muss fuer getFeld(..) und setFeld(..) eindeutig sein. Ansonsten sollte der Zugriff über die Byte-Adresse erfolgen
- Teildatensatz.hasFeld(Feld) geht nicht mehr nur über den Namen, sondern es müssen alle Attribute übereinstimmen
- 7.0.1: kleinere Fehler in der mitgelieferten VUVM2023.xml
- XML-Dateien (z.B. VUVM2023.xml) des GDV müssen nicht mehr manuell angepasst werden
- Downgrade HSQLDB-Treiber auf 2.6.1 wegen Java-8-Kompatibilität
- Validierung Satznummern
- kleinere Korrektur zu
VUVM2009.xml
eingespielt
- Gleichlautende Felder, die mehrfach in einem Satz auftreten können (wie z.B. "Satznummer"), müssen eindeutig sein. Ansonsten muss über Teildatensatz und Byte-Adresse auf das gewünschte Feld zugegriffen werden.
- nur noch Test-Abhängigkeit zu patterntesting (Issue #90)
- service-Modul auf Spring-Boot 2.6, Thymeleaf 3 und OpenApi 3 angehoben
- Backport für Java 8
- Build von Travis auf GitHub Actions umgestellt
- Log4j2- und andere Bibliotheken aktualisiert
- Property "gdv.eod" (End-of-Datensatz) wird beim Export berücksichtigt
- Jubiläums-Edition: 10 Jahre GDV.XPORT
- eigene Validatoren können jetzt konfiguriert / registriert werden (s. experimental.properties)
- Doku um Docker-Einstieg ergänzt
- Performance um ca. 20% verbessert
- numerische Felder mit Format 'MMJJJJ' werden als Datum erkannt
- jackson-databind-Abhängigkeit aktualisiert (Issue #81)
- Update auf jFachwert 4.2.2 (#16)
- Feld "KFV-Deckungsart" in Satzart 0220.052 ist jetzt numerisch ohne Nachkommastellen (Issue #85)
- Downgrade zu PatternTesting 2.1.2 wg. Java-8-Kompatibilität (Issue #84)
- gemischte Teildatensätze für Sparte Leben werden beim Import richtig erkannt (Issue #82)
- XmlService erlaubt jetzt die Registrierung eigener Sätze per XML-Resource
- SatzXml.of(..) akzeptiert jetzt auch URI (z.B. "classpath:/com/panik/unfall.xml") als Parameter
- ACHTUNG: bei NumFeld und abgeleitete Klassen werden Nachkommastellen beim Setzen von Zahlen berücksichtigt
- Speicherbrauch um 55% reduziert. Damit können ca. 2 Mio. Datensätze (ca. 3 Mio. Records) bei 8 GB Hauptspeicher eingelesen werden.
Datenpaket.add(Datensatz)
setzt jetzt korrekte Anzahl (Teildaten-)-Saetze im Nachsatz- verteilte Import-Funktionalität in Importer-Klasse zusammengefasst
- Datum mit "00" als Tag oder Monat (z.B. "00032022") werden nicht mehr als gültig angesehen
- Datum.setInhalt(..) überprüft das Datumsformat im STRICT-Modus
- Datenpaket.pack()-Methode funktioniert jetzt korrekt bei Lücken (Issue #79)
- Vorsatz und Nachsatz im Datenpaket haben jetzt die gleiche Config wie das Datenpaket
- VU-Nummer wird nicht mehr standardmäßig über Default-Properties vorbelegt
- Log4J auf 2.17.1 angehoben (CVE-2021-44832)
- doppelte Performance
- Umstieg auf Java 11
- Enum-Unterstützung wurde nach gdv-xport-deprecated verschoben
- eine Reihe Methoden, die für v6 als "deprecated" gekennzeichnet waren, wurden entfernt
- Property "gdv.numfeld.fill-blanks" wurde wieder entfernt
- Log4J auf 2.17.0 angehoben (s.a. Log4Shell / Apache Log4j Injection Vulnerability CVE-2021-44228)
- einge 'deprecated' Klassen und Methoden wurden im Vorgriff auf v6 bereits entfernt
- über Properties kann das Standard-Verhalten beim Setzen von Feldern oder Valdierung konfiguriert werden (s. default.properties)
- Satz#setVermittler(..) und Satz#getVermittler() hinzugefügt
- Validierung verbessert und ausgebaut
- rechtsbündige Ausrichtung bei AlphaNumFeld wird jetzt aus Bemerkungs-Tag abgeleitet
- statische Methoden in Config durch Properties ersetzt
- Datenpaket kann jetzt als Listener beim DatenpaketStreamer registriert werden
- Stand Test-Dateien teilweise aktualisiert
- fixed: Registrierte Datensätze werden in SatzRegistry richtig geklont (Issue #66)
- zusätzliche Unterstützung von Datensätzen Stand 2009
(Stand 2007 wird nicht unterstützt, weil die vom GDV bereit gestellte
VUVM20007_150507.xml
Fehler enthält und damit z.B. Satz 0220.030 beim Import nicht richtig gefüllt wird) - SatzRegistry#getSatz(..) akzeptiert jetzt zusätzlich die gewünschte Version
- Liste der gesetzten Versionen läßt sich jetzt über
Vorsatz.getSatzartVersionen()
abfragen - Datenpaket besitzt jetzt eine pack()-Methode (Issue #62)
- GdvXmlFormatter generiert jetzt eine Info-Angabe nach dem XML-Header
- Satz#setVermittler(..) und #getVermittler() hinzugefügt
- Datenpaket#setVuNummer(..) und Datenpaket#setVermittler(..) setzt jetzt nicht nur die Werte im Vor-/Nachsatz, sondern in allen Sätzen
- Datenpaket#importFrom(..)-Methoden berücksichtigen jetzt die angegebene Version aus dem Vorsatz und liefern Sätze der entsprechende Version (aktuell für Version VUVM2009, VUVM2013, VUVM2015 und VUVM2018, Issue #64)
- Datenpaket#importFrom(..)-Methoden liefern jetzt ein Datenpaket zur Weiterverarbeitung zurück, z.B. für
x = importFrom(istream).pack();
- fixed: Parsen von Teildatensätzen ohne Satznummer korrigiert (Issue #63)
- fixed: Satznummer wird jetzt auch für Satzart 0220.030 und anderen Satzarten mit mehrdeutigen Satznummernpositionen korrekt erkannt
- fixed: SatzRegistry.getAllSupportedSaetze() liefert jetzt den passenden Vorsatz zur SatzRegistry
- Satz#set(..) durch Satz#setFeld(..) ersetzt und Satz#get(..) als @Deprecated markiert
- fixed: Datensätze mit Sparte Leben werden jetzt korrekt importiert (Issue #61)
- statt "VUVM2018.xml" kann jetzt über '-Dgdv.XML-Resource=VUVM2015.xml' die 2015er-Version vorgegeben werden (oder andere Versionen)
- XmlSatzFactory erlaubt die Unterstützung mehrerer GDV-Versionen gleichzeitig
- GdvXmlFormatter formattiert (exportiert) jetzt Datensätze in das XML-Format von GDV-Online
- Versionen im Vorsatz können jetzt mit der aktuellen Version aus der XML-Beschreibung vorbelegt werden
- Nachsatz besitzt eine add-Methode
- numerische Felder akzeptieren BigDecimal und können auch nach BigDecimal konvertiert werden
- ByteAdresse ist als neuer Datentyp hinzugekommen und wird bei Teildatensatz.getFeld(..) als Parameter akzeptiert
- es werden viel mehr Satzarten direkt auf der XML-Beschreibung in VUVM2018.xml abgeleitet
- Widersprüche in VUVM2018.xml wurden manuell bereinigt
- Enums zur Beschreibung von Datensätzen sind jetzt @deprecated
- SatzTyp wurde ausgebaut und um of(..)-Methode erweitert
- gdv-xport-service auf OpenAPI / Swagger 3.0 aktualisiert
- fixed: Formatierung in Javaoc wird jetzt korrekt mit einem 't' geschrieben (Issue #57)
- Vorsatz.setVersion(..) eingeführt
- Versionen im Vorsatz werden nicht mehr vorbelegt
- fixed: format-Parameter in
api/v1/Datenpaket*
wird jetzt beachtet (Issue #48) - fixed: Fehler in der Swagger-API-Dokumentation behoben (Issue #45)
- zusätzlicher Konstruktor für Wagnisart in Satzart 0220.010 und 0221.010 (behebt Issue #39)
- es gibt ein neues Modul 'gdv-xport-deprecated', in der Klassen und Enumerationen verschoben wurden, die 'deprecated' sind. Dieses Abhängigkeit wird nur dann benötigt, wenn man noch einer dieser Klassen verwendet
- fixed: Security-Problem mit jackson-databind behoben (Issue #38)
- fixed: Umlaut-Problem und fehlerhafter XML-Header (Issue #37)
- fixed: Start-Probleme mit Uberjar (Issue #36)
- fixed: Problem beim CSV-Export mit Sonderzeichen (Strichpunkt) behoben (Issue #35)
- Aktualisierung auf die aktuelle XML-Version von 2018.
- Bezeichner-Klasse wurde aufgeräumt und falsche bzw. nicht benötigte Konstanten entfernt. Ebenso wurden manche Konstanten in den Feld-Beschreibungen korrigiert.
- Komplexität reduziert
- Umstellung auf Java 8
- Umstellung REST-Services auf Spring-Boot 2
Die Versionen 3.x und früher sind auf der Maven-Projekt-Seite unter changes aufgelistet.