Version 3.21.0

Neues in Faktor-IPS 3.21.0 und Produktvarianten 1.9

In Version 3.21 wurden insbesondere Verbesserungen für die Produktvarianten (Version 1.9) umgesetzt:

Produktvarianten

In dem optionalen Add-on Produktvarianten wurden diverse Erweiterungen umgesetzt.

Varianten von Varianten

Bisher konnten Varianten ausschließlich ausgehend von Produkten gebildet werden. Ab Version 1.9 können Varianten auch mehrstufig aufeinander aufbauen („Varianten von Varianten“). Dies erlaubt eine mehrstufige Modellierung und damit eine bessere Wiederverwendung von Produktinformationen bzw. Einschränkungen.

Eine Variante, die auf einer anderen Variante basiert, kann sowohl die Elemente der von ihr variierten Variante als auch die dort noch nicht veränderten Bestandteile verändern, z.B. die des ursprünglichen Produkts.

  • Für Beziehungen gilt die Regel, dass Einschränkungen nicht wieder aufgehoben werden können. Entsprechend werden Beziehungen, die in der Basis-Variante ausgeschlossene wurden, in der Variante zur Übersicht angezeigt, können aber nicht wieder eingeschlossen werden
  • Bei Attributen gelten die im Modell definierten Beschränkungen. So kann ein in der Basis-Variante eingeschränkter Wertebereich z.B. nur noch weiter eingeschränkt werden, außer das Modell lässt beliebige Änderungen zu

Die Produktvariantenvarianten von Varianten werden auf die gleiche Weise wie normale Varianten erstellt, im Wizard zum anlegen der Variante kann optional eine Basisvariante ausgewählt werden.

Variation der Konfiguration von Tabellenverwendungen

In Produktbausteinen können verwendete Tabellen konfiguriert werden. Diese Eigenschaft der Bausteine kann nun auch in Produktvarianten verändert werden. Wie bei den anderen Eigenschaften muss dies im Modell explizit erlaubt werden. Anschließend sind in einer Variante alle Tabellen von der passenden Tabellenstruktur auswählbar.

Variation der Konfiguration von Validierungsregeln

Es ist möglich eine Validierungsregel im Produktbaustein zu aktivieren/deaktivieren. Solche „produktkonfigurierten“ Validierungsregeln kann man nun auch in Produktvarianten variieren.

 

Erweiterung des ProductComponent-API

In Kombination mit dem Produktvarianten Plug-In möchte man an einem Produktbaustein (Runtime Bibliothek ProductComponent) erfragen können, ob dieser eine Variante darstellt. Wenn es sich um eine Variante handelt ist außerdem hilfreich, auf welchem Baustein die Variante basiert. Für diesen Anwendungsfall wurde das API von IProductComponent um die Methoden isVariant() und getVariedBase() erweitert.

Produktvorlagen

Im Umgang mit Vorlagen wurden ein paar kleinere Fehler behoben. Das Umbenennen von Vorlagen funktioniert jetzt richtig, so dass auch bisher übernommene Werte weiterhin als übernommen markiert sind. Wenn in einem Baustein die verwendete Vorlage verändert wird (d.h. es wird eine andere Vorlage ausgewählt), dann bleiben ebenfalls die Einstellungen für übernommene Werte erhalten. Damit könnte es allerdings passieren, dass sich übernommene Werte ändern, wenn sie in der neuen Vorlage anders vorbelegt sind. Wenn vor dem wechsel der Vorlage alle Werte auf „überschrieben“ gesetzt werden sollen, muss die verwendete Vorlage zunächst entfernt und danach eine neue Vorlage eingetragen werden.

Update auf Eclipse Version 4.4 (Luna)

Faktor-IPS benötigt ab dieser Version mindestens die Eclipse Plattform Luna (4.4). Nach langer Zeit haben wir uns entschlossen die Kompatibilität zu älteren Eclipse Versionen einzustellen, da nur dadurch weiterhin eine qualitativ hochwertige Codebasis mit aktueller API stattfinden kann. Luna wurde gewählt, da alle aktiven Kunden bereits dieses oder ein neueres Eclipse verwenden und mit Luna auch bereits die Unterstützung für Java 8 implementiert ist.

Generierter Code

Faktor-IPS Builder – Versionsheader

Die Versionsinformation des Faktor-IPS Builders wird bei neu generierten java Files nicht mehr hinzugefügt.

Bei bereits generierten Source-Files, die nicht gemerged werden (z.B. Klassen für Formeln in Produktbausteinen), wird der Versionsheader direkt entfernt. In generierten Klassen, die gemerged werden, wird der Header nicht automatisch entfernt und muss manuell (z.B. per Regular Expression) gelöscht werden.

Migration

Für die Version 3.21 ist keine Migration der Daten notwendig. Um sicherzustellen, dass Projekte nur mit der aktuellen Version bearbeitet werden, wird bei der Migration die verwendete Faktor-IPS Version auf 3.21 gestellt.

Release Notes – Faktor-IPS – Version 3.21.0

Bugs

  • Tabelleneditor wird unnötigerweise Dirty (FIPS-1465)
  • Vermeiden von unnötigen Leerzeilen zwischen Annotationen und Deklaration (FIPS-5374)
  • Exception bei Enum-Export (FIPS-5380)
  • Generierte toXml Methode in Produktbausteinen falsch für ValeSets mit null Value (FIPS-5441)
  • Exception bei JumpToSourceCode wenn Vertragsklasse im Archiv liegt (FIPS-5454)
  • Zeilenumbruch zwischen @since und @generated fehlt bei Enums (FIPS-5486)
  • Der Build von Tablecontents dauert unter Fips 3.20 sehr lange (FIPS-5492)
  • Fehler in der hashCode() Methode von Decimal (FIPS-5503)

Improvements

  • Generierung des Fileheaders mit der Builder-Version abschaffen (FIPS-614)
  • Mit Konstante für Beziehungen kann die ModelTypeAssociation nicht gefunden werden (FIPS-5241)

New Features