Skip to main content

meta-model-stack


4.12.4 (2023-01-04)

Fixed

  • Fixed model extensions ignoring clean parameter
  • Fixed bug causing aliased options to start duplicating on export

4.12.3 (2022-11-07)

Fixed

  • Fixed options not being filtered on origin metadata in CompositeToTree

4.12.2 (2022-11-03)

Fixed

  • Fixed issue with setOption() with unmodifiable lists by wrapping setElementOptions() in a new ArrayList

4.12.1 (2022-10-27)

Fixed

  • Fixed nsx-runtime version being passed to expanded projects

4.12.0 (2022-10-26)

Added

  • Added addAlternativeNames() and matches() methods to ElementOption to support aliases in said class
  • Modified Composites to use ElementOption::matches to check for options

Moved

The following classes have been moved to metamodel-runtime:

  • net.democritus.projection.ElementOption
  • net.democritus.projection.CompositeProjection
  • net.democritus.projection.TreeProjection

Updated

  • Updated nsx-runtime in expanded projects to 2022.4.0

4.11.7 (2022-10-19)

Fix possible NullPointerException in equals() methods of CompositeProjections


4.11.6 (2022-10-18)

Re-release 4.11.5


4.11.5 (2022-10-18)

Added

  • Added Model execution stack statements to XmlReaders

4.11.4 (2022-10-17)

Fixed

  • Fixed ext and gen sources files not being packaged in test-support jars

Updated

Updated dependencies:

  • nsx-runtime v2021.3.1 -> v2022.3.0
  • expanders v5.9.2 -> v5.14.1
  • prime-core v2022.7.0 -> v2022.10.1

4.11.3 (2022-10-10)

Added

  • Added support for deprecating Fields and Elements by adding the option deprecated. Deprecated fields will not be exported to XML.

4.11.2 (2022-10-06)

Fixed

  • Made clean export more precise to better support model extensions. These extensions will now not be deleted on export.
  • Fixed CompositeScanners running into null-pointers

4.11.1 (2022-10-05)

Fixed

  • Fixed issue with ambiguous references to MetadataPredicates#isPersistent()

4.11.0 (2022-10-05)

Added

  • Added support for better ModelBuilder in tests

Fixed

  • Added backwards compatible method in MetadataPredicates

4.10.0 (2022-09-29)

Added

  • Added CompositeWithOptionComposites interface to manage OptionComposite fields

Fixed

  • Fixed a possible NullPointerException in ElementNotFoundException
  • Added filter to extensions in CompositeToTree to filter out generated elements

4.9.5 (2022-09-26)

Added

  • Added toString() method to LookupRef classes to make it easier to debug MappingContexts
  • Added custom anchor to CompositeFactory::addToMapping() to support aliased optionTypes

4.9.4 (2022-09-23)

Added

  • Implemented merge for aggregation: shared fields

4.9.3 (2022-09-22)

Fixed

  • Prevent technologies on ProgramComposite from being overwritten if they were set before enrichment.

4.9.2 (2022-09-22)

Updated

Updated versions provided to metamodel projects

  • Updated expanders to 5.14.0
  • Updated expanders-maven-plugin to 2022.3.0
  • Updated prime-data to 2022.3.0
  • Updated nsx-runtime to 2022.3.0

4.9.1 (2022-09-21)

Fixed

Fixed some issues for standalone metamodel projects:

  • Added prime-core as root dependency to provide MetaData and Option elements
  • Added prime-test-support as dependency for onion-spec layer
  • Add COMMON by default to each program to support basic expanders

Miscellaneous:

  • Fix typo in optionTypes.xml

4.9.0 (2022-09-02)

Added

  • Added write support for metamodel Components/Application
  • Set MetamodelDependency module type as readonly

Fixed

  • Fixed ElementStubInserter breaking on metamodels not using the stubs

4.8.0 (2022-08-10)

Fixed

  • Fixed meta.element.programType without enableIoXml expanding reader and writer classes which depended on XML classes.

Added

  • Added MetaData element to attach metadata to model elements.
  • Added expander to expand XSD definitions for model elements.

Changed

  • Elements where the metadata origin field has the value generated are now filtered when converting composites to trees.

4.7.3 (2022-05-16)

Fixed

  • Export options as kernel (e.g. in component xml)
  • Avoid duplication of options in CompositeToTree

Added

  • Added cleanup of empty and undefined elements to TreeToXml

4.7.2 (2022-05-13)

Fixed

  • Add import for specBuilders where the option element has a different package than the dataElement

4.7.1 (2022-05-13)

Fixed

  • Added some conversion between specific options and generic options for backwards compatibility with options converters etc.

4.7.0 (2022-05-12)

Added

  • Added options to all composites
  • Options can be defined in the xml with an <options> tag, which contains elements where the tag-name matches the option type name and the content matches the value for an option.
    <options>
    <my.option.type>My Option Value</my.option.type>
    </options>

Changed

  • Changed representation of numbers and booleans to use text-content e.g. <isInfoField>true</isInfoField>

4.6.0 (2022-04-27)

Added

  • Added applicationInstance option meta.packaging.useClassPathDependencies. This option drops the assembly configuration using fat jars and replaces it with ClassPathDependencies in the expansionResource.xml
  • note: this option requires expanders-maven-plugin version 2022.1.2 or up. If the option meta.expanders-maven-plugin.version is set, it will need to be updated.

Changed

  • Changed imports for AttributeSpec with qualified references in the code to avoid naming conflicts. This may impact custom code in the SpecBuilders.

4.5.0 (2022-04-08)

Added

  • Added ModelExecutionStack, which is used to keep the macro-state during model loading. Exceptions thrown during the model loading will be appended with information from the ModelExecutionStack.

4.4.1 (2022-04-06)

Fixed

  • [CompositeScanner] Prevent failure on model-extensions that are not expanded with metamodel-stack 4.4.x

4.4.0 (2022-04-04)

Added

  • Added CompositeScanner to traverse the Composite structure
  • Added try-catch to enrichers to add more information

4.3.2 (2022-02-10)

Fixed

  • [NSX-227] Order elements loaded from directories by name to have consistent ordering across all operating systems.

4.3.1 (2022-02-09)

Fixed

  • [MR-16] Fixed model loading not closing file handles

4.3.0 (2022-01-12)

Added

  • Allow fields with aggregation: composite without having the reverse field defined

Fixed

  • XmlToTree.importX, TreeToXml.exportX, CompositeToTree.registerX, CompositeRegistrar.registerX, SpecBuilder.add/setX and SpecExtender.add/setX methods renamed to field name instead of target element to avoid collisions.
  • Fixed naming collisions when several composite fields refer to the same child element.
  • Fixed 1-to-1 composite fields not using the field name to export to XML

4.2.0 (2021-12-16)

Changed

Prime-core dependency:

  • Prime-core dependency version of metamodel projects is now based on the version of prime-metamodel or prime-core in the expansion-resources
  • This version can still be overwritten with the option meta.prime-core.version
  • To remove prime-core dependencies, the option meta.prime-core.dependency needs to be added

Other dependencies:

  • Prime-data and expanders dependencies will similarly be based on the versions during meta-expansion
  • Nsx-runtime will be based on the version of the nsx-common library defined by prime-data

metamodel-data expansion-resource contains all data-resources:

  • Io-layers has been merged in metamodel-data
  • It also declares option-types for metamodel-stack

4.1.9 (2021-11-18)

Fixed

  • Fixed aggregation: shared fields in CompositeToTree

Added

  • Fix issues with modelExtensions in CompositeToTree for older versions of the modelExtensions

4.1.8 (2021-11-17)

Added

  • Added model extensions for XmlWriters and CompositeToTree

Fixed

  • Exclude fields with option meta.element.parent from TreeToXml

Fixed


4.1.7 (2021-11-03)

Added

  • Added expander for ProgramWriters

4.1.6 (2021-10-20)

Fixed

  • The XmlReaders now shut up about unexpected elements

4.1.5 (2021-10-05)

Fixed

  • Fixed ExpandableMetaModel expansion for prime-core specifically

4.1.4 (2021-09-29)

Fixed

  • Fixed some issues with the metamodel-expansion if elements/expansionControl is not stubbed

4.1.3 (2021-09-28)

Fixed

  • Fixed TreeProjection being expanded with DelegatingComposite interface instead of DelegatingTree

4.1.2 (2021-09-27)

Added

  • Allow -model postfix for metamodel Applications

Fixed

  • Fixed expansionContext creation in tests for metamodel projects without custom expansionContext classes

4.1.1 (2021-09-24)

Added

  • Added programType for builtin data-resource expansions (like web-styles)

4.1.0 (2021-09-23)

Added

  • Added ModuleWriterExpander, implementing exports for modules

Fixed

  • Updated prime-core to 2021.5.6 and fixed any compilation issues
  • Converted ElementsStubInserter to ModelLoadingListener, which should reduce issues with the stubbed components

4.0.1 (2021-09-10)

Fixed

  • Fixed DataRefToXmlWriterExpander so that the writer can still use the name of a regular DataRef in case of an element with a functional key

4.0.0 (2021-08-19)

Added

  • Introduced ProgramTypes and ModuleTypes, which describe expandable models to drive expansion. This enables expansion to be decoupled from Application and Component as centerpieces.
  • aggregation: shared fields are now expanded in XmlToTree and TreeToXml, check custom code for any duplication!
  • Added Interface for Composites with options

New Options:

  • Added the data-option meta.element.programType, which will generate support classes to use the element as a programType.
    • In addition, the field option meta.element.variants can be used on a multivalued linkField. This will declare the instances in that field to be 'variants'. In expansionSettings, uses can define a variant so all other instances in the field will be filtered out. (The classic example of this is applicationInstances on Application)
  • Added the data-option meta.element.moduleType, which will generate support classes to use the element as a moduleType.
  • Added the data-option meta.element.configurationType. This will generate classes to load instances of the element from any of the settings directories before expansion.
  • Added CompositeDataResourceLoaders, which are used to load elements from DataResources, allowing for features like merging. Add the data-option meta.composite.merge to your DataElement to expand a mechanism that merges instances based on the functional key. Only works when loaded from DataResources or settings directories.
  • Added the data-option meta.composite.stub. If defined on a DataElement, links to that element will be stubbed if no instance can be found during TreeToComposite transformation

New Anchors:

  • Added profiles custom anchor to MetaProjectRootPomExpander

Removed

  • Removed several expanders from expansionControl-expanders, for which the artifact are replaced by normalized implementations in expanders-common.

Fixed

  • Harvest paths for expandableElements.xml and _data.xml no longer contain gen

3.7.0 (2021-04-15)

Changed

  • Replace ioxmlConfig settings with direct options:

    • ioxml.tagname: On dataElement or field to set the name of the tag for that field/element in xml files
    • ioxml.ignore: On field to ignore the field during import/export
    • Ordering of fields should be done in the dataElement itself
    • Elements with nameNotWanted or an implicit name field will not export the name field to the xml

Fixed

  • Fixed some linkage issues with classes expanded with older metamodel expanders

Added

  • Allow meta.element.parent to target elements::Application

3.6.0 (2021-03-08)

Changed

  • Changed parameter name in dataRefWriters from fieldName to dataRefXmlTag to avoid name collisions

Added

  • Added setOption() and addExtension(String, CompositeProjection) to composites to allow for easier extension
  • Added option maven.deployment.exclude to elements and expansionControl stubs

Fixed

  • Made some methods in composites thread-safe to allow for better modification in expansionSteps

3.5.0 (2021-02-25)

Added

  • Added data option meta.radiant.dataResource. This expands a synchronization service which checks registered expansion resources for DataResources of the correct type and imports them. This can be used to automatically synchronize options or other preconfigured data.
  • Added configuration files settings.xml and expansionResources.xml, which are automatically imported when starting up a secondary radiant application. Imported settings will not overwrite existing data to prevent the import from overwriting custom settings.

3.4.1 (2021-02-22)

Fixed

  • Import now completely removes children of elements without functional keys before reimporting them, since comparing the Trees with the database requires some form of identity.

3.4.0 (2021-02-22)

Added

  • Added UserNotification element to keep track of issues during synchronization

Fixed

  • Children are now pruned in reverse order to import to avoid issues with foreign key constraints

3.3.2 (2021-02-19)

Added

  • Added field option meta.import.order to allow developers to set the order of import to prevent issues with references

Fixed

  • Fixed prune children in cruds for Ln05 links.
  • Fixed xml export exporting generated (implicit) name fields

3.3.1 (2021-02-19)

Fixed

  • Fixed ModelFile getting duplicated when renaming an element.
  • Prevent failing delete/modify because synchronization failed at some point (should reduce annoying errors).

3.3.0 (2021-02-18)

Added

  • Added a better synchronization mechanism that takes into account the changes from multiple sources as well as the deletion of files.
  • Added pruning mechanism to prune children in the database when importing a Tree instead of merging the branches.

3.2.6 (2021-01-26)

Fixed

  • Fixed issue where directory names in XmlReaders could be empty for some meta elements

3.2.5 (2021-01-26)

/


3.2.4 (2021-01-15)

Added

  • Add dataOption ioxml.ref.simple to simplify reference to the target dataElement in xml. Instances will be referenced as <myElement ref="{functionalKey}"/>.

Fixed

  • Fixed export of linkFields
  • Fixed duplicate variable names in DataRefToXml

3.2.3 (2021-01-06)

Added

  • If the application shortName of the metamodel project has postfix -modelling or Modelling, this will be stripped from the final artifact names. It is encouraged to use this postfix to be able to separate metamodel applications from other applications.

Fixed

  • Fixed issues with duplicate components in secondary radiant

3.2.2 (2020-11-27)

Fixed

  • Added component option meta.element.independent to allow metamodels to be expanded separate from the elements model. (Fixes issues with expansionContexts)

3.2.1 (2020-11-13)

Fixed

  • Fixed DataRefXmlReader not setting meta information

3.2.0 (2020-10-29)

Changed

  • Distribution module has been replaced with a -core module and a -test-support module.

Added

  • Adding option meta.prime-core.version to the applicationInstance instead of only the component will insert dependencies on prime-core and prime-test-support in your distribution module poms

3.1.0 (2020-10-28)

Added

  • Added the DataOption meta.composite.extension. If added to a dataElement, logic will be generated to read and transform the Tree and Composites projections of that dataElement as part of its parent element.
  • Added the DataOption meta.composite.extendable. This allows this element to be extended.

3.0.0 (2020-10-20)

Added

  • Added the DataOption meta.composite.delegate. If added to a dataElement, a model field will be generated for the composite. You can provide a custom model object to that field. If you then access a property or method of the composite in the mapping file, the mapping resolver will delegate to the custom model if the property or method was not found on the composite.

Changed

  • Changed groupId to net.democritus.metamodel

2.1.2 (2020-10-13)

Updated

  • updated nsx-parent 2019.5 -> 2020.9.1

2.1.1 (2020-10-13)

Fixed

  • [metamodel-expansion] Updated default expanders-mvn-plugin version to a version that correctly sets the elements version in the expansion-resource manifests
  • [metamodel-application] Fixed issue where entire synchronization would fail because 1 import failed

2.1.0 (2020-10-09)

Added

  • CompositeRegistrar classes can be used to provision a mappingContext with a composite and its descendants
  • [elements-stubs] explicit dependencies to elements and expansionControl can now be replaced with a component option meta.prime-core.version
  • [elements-stubs] adding the option meta.element.parent to a dataElement will generate the link to a parent element from elements (for now, only DataElement and Component are possible)
  • [versions] adding the applicationInstance option meta.version.useApplicationVersion will make sure that the artifacts for your metamodel components follow the version of the application
  • [metamodel-expansion] registrationStep registers metamodels as an option of the parent

2.0.1 (2020-09-10)

Fixed

  • Updated nsx-runtime version to 2020.8.0

2.0.0 (2020-09-08)

Added

  • new composite-logic-expanders: contains classes to transform trees to composite and vice versa
  • option meta.groupId can be used to define an alternative groupId on application or component level
  • metamodel-expansion-stack: groups several metamodel expansion-resources, but not io-rmi-expanders

Removed

  • removed composite-logic-expanders (which expanded logic for the Prime Radiant)

Changed

  • renamed meta-model-project-expanders => metamodel-project-expanders

1.1 (2020-06-12)

Added

Added custom anchors and feature anchors to OptionConverterExpander


1.0 (2020-06-12)

Added

Created several expansion resources for the support of meta-models:

  • composite-shared-expanders: Expands Composite and Tree projections
  • composite-logic-expanders: Expands logic to import and export Tree projections from/to the Prime Radiant
    • The goal is to make this available for all applications in the future
  • io-xml-expanders: Expands classes for reading/writing meta-model to/from xml
  • io-rmi-expanders: Expands classes to import/export xml files into/from the Prime Radiant
  • meta-model-project-expanders: Expands maven pom.xml files to build artifacts from the above expanders