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.2 (2022-11-03)
Fixed
- Fixed issue with
setOption()
with unmodifiable lists by wrapping setElementOptions() in a new ArrayList
4.12.0 (2022-10-26)
Added
- Added
addAlternativeNames()
andmatches()
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.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.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
withoutenableIoXml
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 valuegenerated
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.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
andSpecExtender.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.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 ofDelegatingTree
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.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 isapplicationInstances
onApplication
)
- In addition, the field option
- 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 filesioxml.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 targetelements::Application
3.6.0 (2021-03-08)
Changed
- Changed parameter name in dataRefWriters from
fieldName
todataRefXmlTag
to avoid name collisions
Added
- Added
setOption()
andaddExtension(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
andexpansionResources.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
orModelling
, this will be stripped from the final artifact names. It is encouraged to use this postfix to be able to separatemetamodel
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.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 onprime-core
andprime-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, amodel
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.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.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 notio-rmi-expanders
Removed
- removed
composite-logic-expanders
(which expanded logic for the Prime Radiant)
Changed
- renamed
meta-model-project-expanders
=>metamodel-project-expanders
1.0 (2020-06-12)
Added
Created several expansion resources for the support of meta-models:
composite-shared-expanders
: Expands Composite and Tree projectionscomposite-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 xmlio-rmi-expanders
: Expands classes to import/export xml files into/from the Prime Radiantmeta-model-project-expanders
: Expands maven pom.xml files to build artifacts from the above expanders