Release Notes

Version 24.1.3

Version 24.1.3 behebt folgende zwei Fehler:

  • Vergleich eines erweiterbaren Enums mit == kann fehlschagen (FIPS-11138). Prinzipiell empfehlen wir erweiterbare Enums wie alle Java-Objekte mit equals zu vergleichen. Dennoch haben wir das Caching verbessert, so dass Enum-Werte nicht mehr verworfen und neu geladen werden.

  • Exception bei Migration auf 24.1 (FIPS-11174)

Version 24.1.2

Das Patch-Release 24.1.2 behebt folgende Fehler:

  • Eclipse hängt sich beim Umbenennen eines IPS-Elementes über das IPS-Refactoring auf (FIPS-11044)

  • Migration mehrerer Projekte zeigt nur Fehler aus dem letzten Projekt (FIPS-11078)

  • Migration schlägt fehl wenn Produktbausteine Werte als inherited markieren die nicht in der Vorlage enthalten sind (FIPS-11075)

  • String mit mehreren Werten und Typ Aufzählung führt zu einem Validierungsfehler (FIPS-11056)

Version 24.1.1

Version 24.1.1 behebt drei leider erst kurz nach dem Release aufgefallene Probleme:

  • Die Anlage neuer Attribute schlug fehl

  • Änderungen in Vorlagen schlugen sich nicht mehr in den davon abgeleiteten Bausteinen nieder (FIPS-10998)

  • Die Migration von 24.1.0.rc01 und früheren Alpha-Releases auf 24.1.0.release war nicht möglich (FIPS-11028)

Version 24.1.0

In diesem Release wurde Faktor-IPS angepasst, um die Entwicklung eines von der IDE unabhängigen Produkteditors zu ermöglichen. Dazu wurde unter anderem das Format der .ipsproduct-Dateien angepasst, so dass diese jetzt zur Entwicklungszeit (in Eclipse) das gleiche Format nutzen wie zur Laufzeit im Runtime-Repository. Alle Laufzeitdaten, die bisher als .xml erstellt wurden, werden jetzt direkt in ihrer .ips*-Form genutzt.

Maven-Koordinaten in Table-of-Contents

Wird der Maven-Version-Provider genutzt werden nun in der Table-of-Contents-XML-Datei statt der Version die Maven-Koordinaten als productDataVersion eingetragen und zur Laufzeit damit die tatsächliche Version aus den pom.properties des JARs ausgelesen. Dies hilft insbesondere, bei einem Release-Build oder der Verwendung von CI-friendly Versionen zu vermeiden, dass die Version im ToC nicht zur Maven-Version passt.

Produkt-Projekte benötigen keinen src/main/java Ordner

In reinen Produktprojekten wird kein src/main/java Ordner mehr benötigt. Dieser kann in bestehenden Projekten einfach gelöscht werden. Der Faktor-IPS Archetype wurde außerdem angepasst, damit der Ordner für neue Produktprojekte nicht mehr generiert wird.

@restrainedmodifiable-Methoden nicht annotieren

Faktor-IPS bietet mit der Generatoroption additionalAnnotations die Möglichkeit, an alle generierten Methoden neben den Javadoc-Tags @generated und @restrainedmodifiable auch Annotationen zu generieren. Sollen die Annotations nur an mit @generated markierten Methoden generiert werden, nicht aber an solchen mit @restrainedmodifiable - die potentiell handgeschriebenen Code beinhalten können, welcher z.B. bei der Prüfung auf Codeabdeckung durch Testfälle mit betrachtet werden soll - kann dies über die neue Option additionalAnnotationsLocation erreicht werden:

   <Property name="additionalAnnotationsLocation" value="OnlyGenerated"/>

Migration

Bei der Migration werden alle XML-Dateien aus den Derived-Ordnern gelöscht und alle Produktdaten (inklusive Tabellen- und Enuminhalten) neu gebaut, wodurch die Daten als .ips*-Dateien in den Derived-Ordnern neu angelegt werden. Die ToC-Dateien reflektieren diese Änderungen, indem die xmlResource-Einträge von .xml auf die passende .ips*-Endung umgestellt werden.

Wird die Migration mit einem Alpha-Release, einem Snapshot-Build oder einem Milestone/RC durchgeführt, wird sie jetzt weiterhin für das Projekt angeboten. Dadurch muss die Version in der .ipsproject nicht manuell zurückgesetzt werden, um mit dem nächsten Build erneut migrieren zu können.

Des Weiteren wurde für FIPS-10537 ein neues ValueSet eingeführt. Die Erlaubten-Werte eines derived Attributes werden jetzt nicht mehr als UnrestrictedValueSet generiert, sondern als DerivedValueSet. Bitte bei der Migration beachten.

Behobene Fehler

  • Max heap size for test runner property richtig setzen (FIPS-9883)

  • Exception nach Änderung im Baustein (FIPS-9915)

  • spotbugs-annotations sollte nur als provided Dependency in faktorips-valuetypes verwendet werden (FIPS-9983)

  • Für StringLengthValueSet wird kein toXML generiert (FIPS-10229)

  • ProductSwitch wechselt doppelt bei Derived Unions (FIPS-10325)

  • Builder-Code wird mit Ziel-Locale statt Source-Locale generiert (FIPS-10332)

  • DefaultRange#sizeForDiscreteValuesExcludingNull verwendet == statt equals (FIPS-10344)

  • Defaultwert kann nicht aus Werteliste ausgewählt werden (FIPS-10361)

  • Fips generiert falschen resource Block in pom (FIPS-10367)

  • XSD ungültig bei formulaCompiling Subclass (FIPS-10369)

  • Produktvarianten können nicht mehr initialisiert werden (FIPS-10401)

  • MAX-Formel kann nicht mit Decimal.NULL umgehen (FIPS-10403)

  • Deep Source Folders have Bugs (FIPS-10426)

  • HTML-Export bricht mit Fehler ab (FIPS-10439)

  • DefaultRange#equals vergleicht isEmpty falsch (FIPS-10440)

  • Deep Source Folders still have Bugs (FIPS-10486)

  • Zahlreiche Exceptions beim Hinzufügen der IpsNature zu einem Java-Projekt im ErrorLog (FIPS-10515)

  • Exception im ErrorLog nach dem Löschen von Packages / IpsObjects (FIPS-10846)

  • EnumContent und TableContent-XML Files: Attribute 'xml:space' is not allowed (FIPS-10532)

  • Produktkonfigurierte Attribute mit abgeleiteten Wertebereichen in Zusammenspiel mit Produktvarianten (FIPS-10533)

  • Fix ProductComponent toXML (FIPS-10537)

  • Sourcefolder produkteBeteiligung funktioniert nicht (FIPS-10577)

  • Maven Archetype schreibt Pluginversionen nicht korrekt in pom (FIPS-10582)

  • Migration löscht nur XML-Dateien die von Faktor-IPS erzeugt wurden (FIPS-10592)

  • Auswahl eines neuen Enumeration Type nicht möglich (FIPS-10595)

  • In Produktvarianten ausgeschlossene Beziehungen sind in get<Beziehung> enthalten (FIPS-10618)

  • Jeder Build vermehrt Import-Statements (FIPS-10633)

  • Migration 24.1 schreibt auch toXml in ProductCmptType und PolicyCmptType neu (FIPS-10724)

  • Verwendung der korrekten Codegenerator-Konfiguration für Builder-Methoden zu Attributen aus Supertypen (FIPS-10735)

  • Not all Enum-Datatypes have a getAllValues-method (FIPS-10840)

  • Exceptions nach Löschen von Produktbausteinen / IpsObjekten (FIPS-10516)

  • Validierungsfehler bei "NoVersionIdProductCmptNamingStrategy" (FIPS-10851)

  • OrderedValueSet das nur null enthält erzeugt Compiler-Warning (FIPS-10866)

  • Buttons im Wertebereichsdialog sind englisch statt deutsch (FIPS-10613)

  • Unterstrich als LITERAL_NAME stoppt Codegenerierung ohne Anzeige einer Fehlermeldung (FIPS-10741)

  • Reine Produkt-Projekte brauchen kein src/main/java (FIPS-10425)

  • Add Target-Platform to Runtime-Workspace Path (FIPS-9946)

  • Test mit Eclipse 2023-09 (FIPS-10371)

  • Produktbausteine kennen ihren Qualified Name (FIPS-10630)

  • Fix ProductComponent toXML (FIPS-10537)

  • Fix des hashCode für null-Grenzen (FIPS-10454)

  • Fix der Validierung von NullObject-Bereichen (FIPS-10617)

  • Migration 24.1 kommt mit defektem XML besser klar (FIPS-10718)

  • Änderungen im Baustein-Editor werden nicht gespeichert (ohne Hinweis an den Benutzer) (FIPS-10517)

  • Tabellen kommen nicht mit Unicode Control Characters klar (FIPS-7007)

  • Mvn-Version in ToC ist fehlerhaft für vm-shu-erw-produkte (FIPS-10883)

  • Fehler beim anlegen von Attributen im IpsTestCaseType (FIPS-10766)

  • Compile Fehler bei Großschreibung von Enum-Attributen (FIPS-10819)

  • Keine Fallback-Version ins ToC schreiben (FIPS-10914)

  • Fehler bei ProductComponent#toXml (NoSuchElementException) (FIPS-10915)

  • Alle Versionsbestandteile nach einem '-' werden als Classifier interpretiert (FIPS-10931)

  • Comboboxen von Produktattributen im Produktbausteineditor sind zweizeilig (FIPS-10949)

Weitere Funktionen und Verbesserungen

  • AbstractReadonlyTableOfContents.toString() zeigt nur einen Teilcontent (FIPS-10503)

  • Validierung der Produktattribute gegen das Modell (FIPS-10498)

  • Lösung des Problems, dass Version in toc files der maven Version hinterher hinkt (FIPS-10600)

  • Fokus nach Anlage Attribute/Methoden/Validierungen (FIPS-10366)

  • Der JDTClasspathContainer für Maven-Dependencies wurde in der .ipsproject dokumentiert (FIPS-10465)

  • Descriptions von Links in XML schreiben (FIPS-10649)

  • Produktdaten DesignTime=Runtime (FIPS-9995)

  • DefaultInternationalStrings mit EMPTY statt null initialisieren (FIPS-10412)

  • ValueSetKind(runtime) sollte analog zu ValueSetType(design time) auch Derived und StringLength kennen (FIPS-10616)

  • Umstellung der ProductBuilder-API von InMemoryRuntimeRepository auf IModifiableRuntimeRepository (FIPS-10655)

  • Lösung des Problems, dass Version in toc files der maven Version hinterher hinkt (FIPS-10600)

  • Felder mit Annotationen für ProductAttributes werden jetzt korrekt gefunden (FIPS-10498)

  • Checkbox im Unterschiede-Beheben-Wizard um neue Spalten mit <null> zu füllen (FIPS-10554)

  • Bessere Validierung von Tabellen mit kaputtem XML (FIPS-10555)

  • Annotationen nur bei vollständig generierten Methoden ergänzen (FIPS-10828)

  • Honor project’s validation settings in runtime toXml code (FIPS-10628)

  • Die Auswahl des (Default-)Werts eines Attributs wird nun direkt nach dem Wechsel des Wertebereichstyps auf Aufzählung angezeigt (FIPS-10361)

  • Tests mit Java 21 (FIPS-10636)

  • ToC-Reihenfolge stabilisieren (FIPS-10825)

  • Export des Resourcen-Pfads aus IpsBundle (FIPS-10885)