Skip to main content

expanders-core


8.2.6 (2025-08-06)

Changed

  • Clarified exception for nested hooks.
  • Downgrade OGNL to 3.4.4 to fix breaking change in exists(:[ ... ])

8.2.5 (2025-07-16)

Changed

  • Updated dependencies:
    • org.apache.commons:commons-lang3: 3.17.0 > 3.18.0 (CVE-2025-48924)

8.2.4 (2025-06-05)

Fixed

  • [mapping] Fixed expansionResource variable binding not pointing to the correct resource for Features due to expander variables incorrectly taking precedence over feature variables.

8.2.3 (2025-05-27)

Fixed

  • Fixed remaining issue by using ExpansionConfigurationContext instead of ModelLoadingContext.

8.2.2 (2025-05-26)

Fixed

  • Fixed expanders no longer recognising elements with superType under the abstract type name.

8.2.1 (2025-05-20)

Fixed

  • [mapping/debug] Fixed matchLineNumber causing a NPE when evaluating IndexProperty.

8.2.0 (2025-05-14)

Added

  • [mapping] Added direction attribute to <sorted> which can be ascending or descending. Default is ascending

Changed

  • Changed sorting behaviour when using <item> or <items> to be more intuitive. Sorting will now occur within <items> instead of on the entire list. If a list mapping contains multiple items mappings, the items will appear in order of appearance in the mapping.

8.1.4 (2025-05-05)

Fixed

  • Fixed issue in tests using classic expander test api causing error with ExpansionSource variable.
  • [mapping] Changed name attribute in foreach to required.
  • Fixed PropertyMappingException not showing cause error message as intended.

Changed


8.1.3 (2025-04-29)


8.1.2 (2025-04-28)

Fixed

  • [mapping] Fixed DebugMappingContext not provided by 'preprocessing' properties (e.g. let).
  • [mapping] Fixed DebugMappingContext not correctly provided in list scope.

8.1.1 (2025-04-25)

Fixed

  • [mapping] Fixed order of items in a list mapping when no sorting is defined.
  • [mapping] Fixed order of items when using multiple <item> or <items>.

8.1.0 (2025-04-24)

Added

  • Added support for providing Variable bindings. Variables can be provided by implementing net.democritus.expander.variables.ExpanderVariable and registering it as a Service. Add VariableScope annotation to define where the variable is applicable.
  • [mapping] Added new syntax for list
    • foreach adds a new iteration. List mappings can now include multiple iterations.
    • item adds a single item.
    • items adds a number of items based on its internal mapping.
  • [mapping] Added strict attribute to mapping header. If set to true, the mapping will fail when encountering references to unbound variables.
  • [mapping] Added format() function. Can be used to build strings in a compact way. (e.g. format('${component.name}/${dataElement.name.firstToLower}'))

Removed

  • Removed artifactName variable binding in mapping files.

Fixed

  • Fix ElementChildRetriever not using interface method for abstract parents. (ported over from expanders-core:7.8.3).

Changed

  • Improved legibility of Expander stack-traces.
  • Refactored existing variable bindings to ExpanderVariables, including descriptions to make stack-traces more informative.
  • [mapping] Name attributes are now optional in <filter, <distinct>, <foreach>, <sorted>, <item> and <items>.

8.0.0 (2024-11-25)

Changed

  • Moved expanders-core and expanders-test-utils to expanders-core repository.
  • expander-core is no longer a fat jar. Transitive dependencies will now have to be included separately.