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::matchesto check for options
Moved
The following classes have been moved to metamodel-runtime:
- net.democritus.projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..ElementOption
- net.democritus.projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..CompositeProjection
- net.democritus.projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..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 CompositeProjectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.
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
- expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 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 FieldsFieldA property of a DataElement expanded to a database column and user interface input element. and Elements by adding the option
deprecated. Deprecated fieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element.
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 anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to
CompositeFactory::addToMapping()to support aliased optionTypes
4.9.4 (2022-09-23)
Added
- Implemented merge for
aggregation: sharedfieldsFieldA property of a DataElement expanded to a database column and user interface input element.
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 expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to 5.14.0
- Updated expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-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 layerLayerLogical separation of functionality within a single system/application, focused on code organization.
- Add COMMON by default to each program to support basic expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
Miscellaneous:
- Fix typo in optionTypes.xml
4.9.0 (2022-09-02)
Added
- Added write support for metamodel Components/ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
- 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.programTypewithoutenableIoXmlexpanding reader and writer classes which depended on XML classes.
Added
- Added
MetaDataelement to attach metadata to model elements. - Added expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to expand XSD definitions for model elements.
Changed
- Elements where the metadata
originfieldFieldA property of a DataElement expanded to a database column and user interface input element. has the valuegeneratedare 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 expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-maven-plugin version 2022.1.2 or up. If the option
meta.expanders-maven-plugin.versionis 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 systemsSystemA set of interconnected components that work together to achieve a specific purpose or function..
4.3.0 (2022-01-12)
Added
- Allow fieldsFieldA property of a DataElement expanded to a database column and user interface input element. with
aggregation: compositewithout having the reverse fieldFieldA property of a DataElement expanded to a database column and user interface input element. defined
Fixed
XmlToTree.importX,TreeToXml.exportX,CompositeToTree.registerX,CompositeRegistrar.registerX,SpecBuilder.add/setXandSpecExtender.add/setXmethods renamed to fieldFieldA property of a DataElement expanded to a database column and user interface input element. name instead of target element to avoid collisions.- Fixed naming collisions when several composite fieldsFieldA property of a DataElement expanded to a database column and user interface input element. refer to the same child element.
- Fixed 1-to-1 composite fieldsFieldA property of a DataElement expanded to a database column and user interface input element. not using the fieldFieldA property of a DataElement expanded to a database column and user interface input element. 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.dependencyneeds to be added
Other dependencies:
- Prime-data and expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 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-layersLayerLogical separation of functionality within a single system/application, focused on code organization. has been merged in
metamodel-data - It also declares option-types for metamodel-stack
4.1.9 (2021-11-18)
Fixed
- Fixed
aggregation: sharedfieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element. with option
meta.element.parentfrom TreeToXml
Fixed
4.1.7 (2021-11-03)
Added
- Added expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for ProgramWriters
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
DelegatingCompositeinterface instead ofDelegatingTree
4.1.2 (2021-09-27)
Added
- Allow
-modelpostfix for metamodel ApplicationsApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
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 ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and Component as centerpieces.
aggregation: sharedfieldsFieldA property of a DataElement expanded to a database column and user interface input element. 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 fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
meta.element.variantscan be used on a multivalued linkField. This will declare the instances in that fieldFieldA property of a DataElement expanded to a database column and user interface input element. to be 'variants'. In expansionSettings, uses can define a variant so all other instances in the fieldFieldA property of a DataElement expanded to a database column and user interface input element. will be filtered out. (The classic example of this isapplicationInstancesonApplication)
- In addition, the fieldFieldA property of a DataElement expanded to a database column and user interface input element. 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.mergeto 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 AnchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
- Added profiles custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to MetaProjectRootPomExpander
Removed
- Removed several expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. from expansionControl-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact., for which the artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. are replaced by normalized implementations in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-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 fieldFieldA property of a DataElement expanded to a database column and user interface input element. to set the name of the tag for that fieldFieldA property of a DataElement expanded to a database column and user interface input element./element in xml filesioxml.ignore: On fieldFieldA property of a DataElement expanded to a database column and user interface input element. to ignore the fieldFieldA property of a DataElement expanded to a database column and user interface input element. during import/export- Ordering of fieldsFieldA property of a DataElement expanded to a database column and user interface input element. should be done in the dataElement itself
- Elements with
nameNotWantedor an implicit name fieldFieldA property of a DataElement expanded to a database column and user interface input element. will not export the name fieldFieldA property of a DataElement expanded to a database column and user interface input element. to the xml
Fixed
- Fixed some linkage issues with classes expanded with older metamodel expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
Added
- Allow
meta.element.parentto targetelements::Application
3.6.0 (2021-03-08)
Changed
- Changed parameter name in dataRefWriters from
fieldNametodataRefXmlTagto avoid name collisions
Added
- Added
setOption()andaddExtension(String, CompositeProjection)to composites to allow for easier extension - Added option
maven.deployment.excludeto 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 resourcesExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion. 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.xmlandexpansionResources.xml, which are automatically imported when starting up a secondary radiant applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.. 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 fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
meta.import.orderto 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 fieldsFieldA property of a DataElement expanded to a database column and user interface input element.
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.simpleto simplify reference to the target dataElement in xml. Instances will be referenced as<myElement ref="{functionalKey}"/>.
Fixed
- Fixed export of linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element.
- Fixed duplicate variable names in DataRefToXml
3.2.3 (2021-01-06)
Added
- If the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. shortName of the metamodel project has postfix
-modellingorModelling, this will be stripped from the final artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. names. It is encouraged to use this postfix to be able to separatemetamodelapplicationsApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. from other applicationsApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
Fixed
- Fixed issues with duplicate components in secondary radiant
3.2.2 (2020-11-27)
Fixed
- Added component option
meta.element.independentto 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
-coremodule and a-test-supportmodule.
Added
- Adding option
meta.prime-core.versionto the applicationInstance instead of only the component will insert dependencies onprime-coreandprime-test-supportin 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 projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. 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, amodelfieldFieldA property of a DataElement expanded to a database column and user interface input element. will be generated for the composite. You can provide a custom model object to that fieldFieldA property of a DataElement expanded to a database column and user interface input element.. 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 expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-mvn-plugin version to a version that correctly sets the elements version in the expansion-resource manifests
- [metamodel-applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.] 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.parentto 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.useApplicationVersionwill make sure that the artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. for your metamodel components follow the version of the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. - [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.groupIdcan be used to define an alternative groupId on applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. 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.1 (2020-06-12)
Added
Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. and feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to OptionConverterExpander
1.0 (2020-06-12)
Added
Created several expansion resourcesExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion. for the support of meta-models:
composite-shared-expanders: Expands Composite and Tree projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.composite-logic-expanders: Expands logic to import and export Tree projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. from/to the Prime Radiant- The goal is to make this available for all applicationsApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. 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 artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. from the above expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.