English Documentation

Release Notes

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)