On this page
8.7.0 (2026-02-19) Added
Added full program context to the provided ElementTagResolver by using the factory.
Changed
Use the provided ElementTagResolver for NativeType resolution.
8.6.0 (2026-01-19) Added
Added dependencies mapping var to retrieve program and module dependencies.
Changed
Upgraded prime-core from v2025.11.0 to v2026.1.0.
8.5.0 (2025-11-18) Added
Added List<T> accessor distinct to get a new list with all unique values in mappings.
Added List<T> accessor first to get the first value of a list if it exists (otherwise an exception).
Added List<T> accessor firstOrNull to get the first value of a list if it exists (otherwise a null value).
Added List<T> accessor last to get the last value of a list if it exists (otherwise an exception).
Added List<T> accessor lastOrNull to get the last value of a list if it exists (otherwise a null value).
Added List<T> accessor reverse to create a new list in reverse order.
8.4.0 (2025-11-05) Added
Added option module.harvest.allowImported to be able to harvest imported modules.
Changed
Option harvest.skip now works for module types.
8.3.0 (2025-10-24) Added
Added support for multi-line import statements returned by ArtifactImportsDefinition. Lines delimited by \n.
Added nativeTypes helper to resolve NativeTypes and DerivedNativeTypes.
Added <uses> support for NativeType.
Added <uses> support for Collection.
Changed
Changed minimum prime-core version requirement to v2025.11.0.
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
Updated OGNL from version 3.4.3 to 3.4.7:
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.