Version 21.6.0-rc03

New and Noteworthy in Version 21.6 Release Candidate 3

Changes from Release Candidate 1

Menu-Creation No Longer Instantiates Objects

In Eclipse, every entry in a (popup-)menu checks whether it should be displayed before the menu is shown. The previous solution in Faktor-IPS was to load the selected IPS object and check, for example, whether it is a product component. This information can be made available without completely loading the object, which requires noticeable time for large objects like table contents and product variants. From 21.6 on, Faktor-IPS uses e new PropertyTester, which can be used for custom plugins as well.

Old New
<visibleWhen checkEnabled="true">
  <with variable="selection">
    <iterate>
      <adapt type="org.faktorips.devtools.model.ipsobject.IIpsObject">
        <instanceof value="org.faktorips.devtools.model.productcmpt.IProductCmpt">
        </instanceof>
      </adapt>
    </iterate>
  </with>
</visibleWhen>
<visibleWhen checkEnabled="true">
  <with variable="selection">
    <iterate>
      <adapt type="org.faktorips.devtools.model.ipsobject.IIpsSrcFile">
        <test property="org.faktorips.devtools.core.ui.commands.IpsObjectTypeTester.isIpsObjectType" value="ProductCmpt">
        </test>
      </adapt>
    </iterate>
  </with>
</visibleWhen>

Fixed from RC 2:

Bugs

  • Warning in generated code (FIPS-7674)
  • GenericRelevanceValidation#validate does not call shouldValidate (FIPS-7690)
  • NullPointer when adding IPS nature (FIPS-7693)
  • Dropdowns in the Faktor-IPS Code Generator settings don’t work (FIPS-7695)
  • Path problems on Windows with Ant: ProjectImportTask (FIPS-6571)

Improvements

  • Produktinfo Tool – improve documentation of maxLength for TableNames (FIPS-7443)
  • Improve Mojo usage documentation (FIPS-7651)
  • Move Mojo execution to generate-sources (FIPS-7668)
  • ModelContentProvider#getUnfilteredChildren should not instantiate IpsObjects unnecessarily (FIPS-7685)