Version 3.5.0

Internationalisierte Validierungsmeldungen

In Faktor-IPS besteht die Möglichkeit Validierungsregeln anzulegen und im Fehlerfall eine passende Meldung auszugeben. Mit Faktor-IPS 3.5 ist es nun auch möglich, diese Meldungen in verschiedenen Sprachen zu hinterlegen. Auswählbar sind alle im Projekt definierten Sprachen.

Die Texte werden in Property-Dateien geschrieben und zur Laufzeit ausgelesen. Es ist daher auch möglich weitere Sprachen direkt in die Laufzeitumgebung auszuliefern.

1
Außerdem kann in den Ersetzungsparametern (angegeben in geschweifte Klammern) die Formatierungsyntax analog zu Java MessageFormat verwendet werden. Der Parameter datum kann beispielsweise wie folgt formatiert werden: {datum,date,medium}. Für die deutsche Spracheinstellung würde damit das Datum 29.09.2011 formatiert werden.

Konfiguration von Min/Max/Default-Kardinalität auch bei abweichender Vertrags- und Produktstruktur erlauben

In Faktor-IPS werden im allgemeinen Vertrags- und Produktstruktur parallel aufgebaut. Dadurch kann in Produktbausteinen an einem Link zu einem anderen Baustein Min-, Max-Kardinalität und der Defaultwert für die Kardinalität angeben. Diese Werte, beziehen sich auf die Anzahl der Beziehungen zwischen den entsprechenden Vertragsbausteinen.

2

Dabei wurde von Faktor-IPS bisher automatisch festgelegt, welche Beziehung auf Vertragsseite durch welche Beziehung auf Produktseite konfiguriert wird.

Wenn die Struktur auf Vertragsseite von der Produktseite abweicht, kann diese Zugehörigkeit nicht automatisch gefunden werden. Im Beispiel wird auf Vertragsseite eine Versicherte Person zwischen Police und Tarifvereinbarung modelliert. Die Versicherte Person soll jedoch nicht produktkonfiguriert sein.

3

Will man diesen Fall mit Faktor-IPS modellieren, kann man ab Version 3.5 in einer der Assoziationen (Vertrags- oder Produktseite) die jeweils passende Beziehung festlegen. Auf Vertragsseite kann man zudem definieren, ob die Beziehung überhaupt konfigurierbar sein soll. Es besteht damit auch die Möglichkeit, dass es zwar eine parallele Struktur auf Produktseite gibt, die Kardinalität im Produktbaustein aber nicht veränderbar sein soll.

4

Modellsuche: Suche nach ExtensionProperties

In der letzten Version von Faktor-IPS wurde bereits die Modellsuche vorgestellt. Damit kann man Modellelemente nach bestimmten Kriterien (z.B. enthält ein Attribut mit dem Namen „Steuer“) suchen. Es gibt in Faktor-IPS außerdem die Möglichkeit an beliebige Objekte sogenannte ExtensionProperties zu definieren. Wenn man beispielsweise ein Altsystem ablöst, könnte man ein Feld an allen Attributen definieren, in dem man die Attribut-ID des Altsystem eingeben kann. Die Erweiterung der Modellsuche findet jetzt nicht die Elemente mit dem angegebenen Namen sondern durchsucht auch die Felder von ExtensionProperties.

Umstellung der Faktor-IPS Runtime-Bibliotheken auf Classpathcontainer

Vor allem in Testprojekten, in denen man nicht direkt die Runtime-Bibliotheken als JAR referenzieren will, gab es schon bisher die Möglichkeit per Classpathvariable in Eclipse auf die installierten Runtime-Bibliotheken von Faktor-IPS zuzugreifen. Durch die Einführung eines eigenen Faktor-IPS Classpathcontainers ist dieser Mechanismus noch komfortabler geworden. Der Container wird automatisch beim hinzufügen der Faktor-IPS Nature angelegt, kann aber auch über die Java Classpath Einstellungen erstellt werden. Auch der Zugriff auf die installierten Runtime-Sourcen funktioniert damit ohne Probleme.

Änderungen am generierten Code

Am generierten Code ändert sich vor allem die Methode zum Erzeugen von Meldungstexten für Validierungsregeln. Wie bereits oben angesprochen, werden die Texte jetzt in Property-Dateien verwaltet um eine Übersetzung zuzulassen. Anstatt des Regeltextes wird daher der Zugriff auf die Property-Datei in die Methode generiert.

Des weiteren gibt es die Möglichkeit im Generator einzustellen, dass toXml-Methoden für Produktbausteine generiert werden. Diese Funktionalität wird für eine kundenspezifische Erweiterung von Faktor-IPS benötigt und ist voreingestellt deaktiviert.

Migration

Für die mehrsprachigen Validierungstexte müssen die Texte in den Vertragsteilklassen anders gespeichert werden. Die automatische Migration von Faktor-IPS wandelt das XML um, übernimmt den bisher eingestellten Text und setzt ihn für die im Projekt definierte Standardsprache.

Die anderen Änderungen sind voll kompatibel zur letzten Version und benötigen keine Migration.

Release Notes – Faktor-IPS – Version 3.5.0

Bugs

  • Source Bundles funktionieren nicht (FIPS-550)
  • Eingabe von Money-Werten (FIPS-581)
  • Reihenfolge der generierten Formeln in Anpassungsstufen ändert sich (FIPS-615)
  • Horizontales Layout von Produktbausteinen resized bei auf-/zuklappen von Sections (FIPS-617)
  • Kleingeschriebene PolicyCmptTypes erzeugen ungültigen Code (FIPS-618)
  • Aufteilung im Enum Type Editor (FIPS-620)
  • Compile Fehler in doInitPropertiesFromXml für Produktbaustein-Attribut mit Namen „Value“ (FIPS-622)
  • User-Code-Kommentare bei Validierungsregeln fehlen bei nicht produktkonfigurierten Regeln (FIPS-624)
  • NPE beim Öffnen eines Produkts (FIPS-654)
  • Faktor-IPS-Tabelle lässt sich nicht im Editor öffnen (FIPS-659)
  • Exception im TestCaseTypeEditor (FIPS-666)
  • Statische Produktattribute fürhren zu Compilefehlern im generierten Formel-Code (FIPS-670)
  • Fehlender Super.* Aufruf bei Derived Derived Unions auf Produktseite (FIPS-674)
  • Faktor-IPS Feature wird nicht im About-Dialog angezeigt (FIPS-679)
  • Bei Attributregeln wird @generated anstatt @restrainedmodifyable generiert (FIPS-681)
  • Editor zum einstellen von Subset of Derived-Union fehlerhaft (FIPS-696)
  • Fehler in der Validierung der konfigurierten Kardinalität von Vertragsassoziationen im Produktbausteineditor (FIPS-698)
  • org.faktorips.runtime.productdataprovider.common jar enthält keine Klassen (FIPS-703)
  • java.lang.StackOverflowError bei Öffnen eines Tarifs (FIPS-706)

Improvements

  • ClasspathContainer für Faktor-IPS Runtime und Valuetypes (FIPS-481)
  • Modellsuche sollte auch die Suche nach ExtensionProperties ermöglichen (FIPS-539)
  • Open target in new Editor für Aufzählungen (FIPS-580)
  • Methode isRange an ValueSet (FIPS-653)

New Features

  • internationalisierte Validierungs-Meldungen (FIPS-488)
  • Konfiguration von Min/Max/Default-Kardinalität auch bei abweichender Vertrags- und Produktstruktur erlauben (FIPS-563)