English Documentation

Release Notes

Version 24.1.14

In this version, five issues affecting runtime and design time have been fixed. Due to a peculiarity in the SWT text field, line breaks are now stored only as LF. The code generator can now handle inner-class data types. Additionally, incorrectly encoded umlauts have been corrected to display them properly in the UI.

  • FIPS documentation written under Linux leads to diffs under Windows (
) (FIPS-5770)

  • IpsEnumType of data type definitions with inner-class enums do not work (FIPS-11963)

  • Umlauts fixes (FIPS-11936)

  • Display error for umlauts in the testrunner (FIPS-11992)

  • Modifying the attribute resets existing validation rules (FIPS-12026)

Version 24.1.12

Version 24.1.12 fixes the following bug:

  • Disappeared TOC entries and IndexViolation (FIPS-11850)

Version 24.1.11

With patch release 24.1.11 one bug was fixed:

  • ConcurrentModificationException from AbstractRuntimeRepository.getAllReferencedRepositories() (FIPS-11737)

Version 24.1.10

With patch release 24.1.10 one bug was fixed:

  • ModelObjectAttributes::resetAttributes expects a setter for cached attributes and constant attributes (FIPS-11713)

Version 24.1.9

  • "Edit attributes"-dialogue requires scrollbars (FIPS-11531)

A scroll bar has been added to the ‘Validation rule’ tab of the dialogue for editing attributes. This was necessary as parts of the user interface were no longer fully displayed at low screen resolutions.

Version 24.1.8

The API used by Faktor-IPS was changed in Eclipse 2024-03. Patch 24.1.8 makes Faktor-IPS compatible with that version of Eclipse.

Version 24.1.7

Version 24.1.7 fixes the following bug:

  • "Deleted" to-1 relationships in product variants are not filtered. (FIPS-11309)

When using product variants, associations with cardinality 0..0 are overwritten to exclude them in the variant. For multi-valued associations, links with upperBound=0 have already been filtered since FIPS-7905, however, single-valued associations have not yet been filtered. This has been fixed now.

The adjustment in the code generator leads to changes in the generation of getters in such cases.

Version 24.1.6

The following bugs have been fixed:

  • ConcurrentModificationException from migration of large table contents (FIPS-11265)

  • Fix differences can’t access EnumType - the error message now names the enum type that can’t be accessed (FIPS-11277)

  • Read-before-write in tablecontents.ContentPage.createNewTableViewer() (FIPS-11289)

Version 24.1.4

The following bugs have been fixed:

  • Eclipse hangs when renaming an IPS element with the IPS refactoring (FIPS-11044)

  • Renaming a table structure throws exception (FIPS-9786)

  • Table: fix-differences-dialog does not open (FIPS-11206)

  • Boolean value sets in product components not editable (FIPS-11220)

  • NullPointerExceptions during migration to 24.1 (FIPS-11248)

  • Archetype 24.1.3 creates projects with version 24.1, which is too low and requires immediate migration (FIPS-11214)

  • faktorips-validation-maven-plugin exits with exception when the product variant feature is required in the .ipsproject (FIPS-11253)

Version 24.1.3

Version 24.1.3 fixes the following two bugs:

  • Comparison of an extensible enum with == can fail (FIPS-11138). We generally recommend comparing extensible enums with equals like all Java objects. Nonetheless, caching in runtime repositories was improved to avoid recreating enum values.

  • Exception during Migration to 24.1 (FIPS-11174)

Version 24.1.2

Patch-Release 24.1.2 fixes following bugs:

  • Eclipse freezes when renaming an IPS element via IPS refactoring (FIPS-11044)

  • Migration of several projects only shows errors of the last project (FIPS-11078)

  • Migration fails if product components mark values as inherited that are not contained in the template (FIPS-11075)

  • String with multiple values and enumeration type leads to a validation error (FIPS-11056)

Version 24.1.1

Version 24.1.1 fixes three problems that unfortunately were only found after the release:

  • Creation of new attributes was not possible

  • Changes in templates no longer affected product components based on templates (FIPS-10998)

  • A migration from 24.1.0.rc01 and earlier alpha releases to 24.1.0.release was not possible (FIPS-11028)

Version 24.1.0

In this release Faktor-IPS was changed to enable the development of an IDE-independent product editor. The format of the .ipsproduct files was changed so that now the same format is used at design time (in Eclipse) as in the runtime repository. All runtime files that up to now were created as .xml are now used in their .ips* form.

Maven Coordinates in Table of Contents

When using the maven version provider, now the maven project coordinates are written as productDataVersion in the table of contents XML file and used at runtime to read the actual version from the JAR’s pom.properties. That helps after a release build or when using CI-friendly versions to keep the versions from ToC and Maven in sync.

Product projects do not need the src/main/java folder

In pure product projects, the src/main/java folder is no longer needed. The folder can be deleted in existing projects. The Faktor-IPS archetype has also been adjusted so that the folder for new product projects is no longer generated.

Excluding @restrainedmodifiable methods from annotation generation

Faktor-IPS offers the generator optionen additionalAnnotations to add annotations to all generated methods besides the Javadoc tags @generated and @restrainedmodifiable. Should the annotations only be generated for methods marked @generated but not those marked @restrainedmodifiable - as those potentially contain manually written code that should for example be included in test code coverage analysis - the new generator option additionalAnnotationsLocation can be used:

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

Migration

The migration deletes all XML files in the derived folders and all product data (including table and enum contents) is written anew, creating the .ips* files in the derived folders. The ToC files reflect this change, switching the xmlResource entries from .xml to .ips*.

If the migration is done with an alpha release, a snapshot build or a milestone/rc, it will now continue to be offered for the project. This eliminates the need to manually reset the version in the .ipsproject to migrate again with the next build.

Additionally, a new ValueSet has been introduced for FIPS-10537. The allowed values of a derived attribute are now generated as a DerivedValueSet instead of an UnrestrictedValueSet. Please consider this change during migration.

Fixed Bugs

  • Correctly set max heap size for test runner property (FIPS-9883)

  • Exception after changes in components (FIPS-9915)

  • Use spotbugs-annotations as provided dependency only in faktorips-valuetypes (FIPS-9983)

  • No toXML generated for StringLengthValueSet (FIPS-10229)

  • ProductSwitch double switches with Derived Unions (FIPS-10325)

  • Builder code generated with target locale instead of source locale (FIPS-10332)

  • DefaultRange#sizeForDiscreteValuesExcludingNull uses == instead of equals (FIPS-10344)

  • Default value can’t be selected from value list (FIPS-10361)

  • Fips generates incorrect resource block in pom (FIPS-10367)

  • XSD invalid with formulaCompiling Subclass (FIPS-10369)

  • ProductVariants can’t be initalized anymore (FIPS-10401)

  • MAX formula can’t handle Decimal.NULL (FIPS-10403)

  • Deep Source Folders have Bugs (FIPS-10426)

  • HTML-Export aborts with error (FIPS-10439)

  • DefaultRange#equals compares isEmpty wrong (FIPS-10440)

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

  • Multiple exceptions when adding IpsNature to Java project in ErrorLog (FIPS-10515)

  • Exception in ErrorLog after deleting Packages / IpsObjects (FIPS-10846)

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

  • Productconfigured attributes with derived value-sets in combination with product variants (FIPS-10533)

  • Fix ProductComponent toXML (FIPS-10537)

  • Sourcefolder produkteBeteiligung does no longer work (FIPS-10577)

  • Maven Archetype does not write plugin versions correctly to pom (FIPS-10582)

  • Migration only deletes XML files generated by Faktor-IPS (FIPS-10592)

  • Selection of a new enumeration type not working (FIPS-10595)

  • Associations excluded in product variants are included in get<association>. (FIPS-10618)

  • Remove duplicate imports (FIPS-10633)

  • Add ProductCmptType and PolicyCmptType to migration 24.1 (FIPS-10724)

  • Use subtype config for supertype attributes (FIPS-10735)

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

  • Exceptions after deleting product components / IPS objects (FIPS-10516)

  • Validationerror with "NoVersionIdProductCmptNamingStrategy" (FIPS-10851)

  • OrderedValueSet that only contains null generates compiler warning (FIPS-10866)

  • Buttons in the valueset dialog are in English instead of German (FIPS-10613)

  • Underscore as LITERAL_NAME stops code generation without displaying an error message (FIPS-10741)

  • Projects that are purely product projects do not need src/main/java (FIPS-10425)

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

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

  • Expose qualified name (FIPS-10630)

  • Fix ProductComponent toXML (FIPS-10537)

  • Fix hashCode for null bounds (FIPS-10454)

  • Fix validation of NullObject ranges (FIPS-10617)

  • Fix migration 24.1 (FIPS-10718)

  • Changes in the product component editor are not persisted (without notification to user) (FIPS-10517)

  • Tables unable to handle Unicode Control Characters (FIPS-7007)

  • Mvn-Version in ToC has errors for vm-shu-erw-produkte (FIPS-10883)

  • Error on creation of attributes in IpsTestCaseType (FIPS-10766)

  • Compile error with capitalized enum attributes (FIPS-10819)

  • Don’t write fallback version in ToC (FIPS-10914)

  • Error in ProductComponent#toXml (NoSuchElementException) (FIPS-10915)

  • All version parts after '-' are treated as classifier (FIPS-10931)

  • Comboboxes for product attributes in product component editor are broken to second line (FIPS-10949)

Further Features and Improvements

  • Preparation for product editor (FIPS-9978)

  • AbstractReadonlyTableOfContents.toString() shows only a partial content (FIPS-10503)

  • Focus after adding attributes/methods/validations (FIPS-10366)

  • Documented JDTClasspathContainer for maven dependencies (FIPS-10465)

  • Write Descriptions of Links to XML (FIPS-10649)

  • Update JADE to 1.0.8 (FIPS-9984)

  • Update JADE to 1.0.9 (FIPS-10536)

  • Product data DesignTime=Runtime (FIPS-9995)

  • Initialize DefaultInternationalStrings with EMPTY instead of null (FIPS-10412)

  • ValueSetKind(runtime) should also know Derived and StringLength (FIPS-10616)

  • Switch ProductBuilder-API from InMemoryRuntimeRepository to IModifiableRuntimeRepository (FIPS-10655)

  • Enable ToC to read Maven project version @ runtime (FIPS-10600)

  • Fixed find field for public ProductAttributes (FIPS-10498)

  • Add checkbox to fill new table columns with default value null (FIPS-10554)

  • Improve table validation (FIPS-10555)

  • Add annotations only for fully generated methods (FIPS-10828)

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

  • Immediately display or hide allowed value dropdown upon value set type change (FIPS-10361)

  • Tests with Java 21 (FIPS-10636)

  • Stabilize ToC entry order (FIPS-10825)

  • Export resource path from IpsBundle (FIPS-10885)