nsx-metamodels
2026.5.0-rc2 (2026-09-16)
Added
- Added
loadAvailableModulesas a ModuleLoadingParameter. When set totrueall models available through aModuleManifestare loaded in addition to the available ProgramExpansions. - [NSX-653] Added TaskElementTypes and TaskTransactionTypes
- Added programType tag
#context.mapping.isolateto use a forked MappingContext instead when loading programs. Only supports isolation for metamodels expanded with 2026.5.0+. - Added
MappingContextinterface to support mapping isolation and parent context injection.
Changed
- Re-arranged contents of the prime-core ontologies:
expansionControlnow contains everything related to the core framework. The following elementClasses are now in ExpansionControl: ConcernType, Dependency, DependencyScope, ElementType, Metadata, MetadataKey, ModuleManifest, ModulePackaging, Option, OptionType, OptionTypeValueConstraint, Technology, TechnologyStack, LayerDependency, LayerImplementation, LayerImplementationTag, LayerSource, LayerType, Library, SourceType.valuesnow contains valueType related model elements. The following elementClasses are now in Values: ValueType, ValueTypeRestriction, NativeType, DerivedNativeType, SimpleValueType, CustomRestriction, CustomRestrictionValidator, DerivedNativeTypeTag, DerivedNativeTypeUsage, Digits, Future, NativeTypeUsage, NotNull, NumberBounds, Past, StringLength, StringPattern.elementsnow depends onexpansionControlandvalues.
- Note: The goal is to make everything less dependent on
elementsand to allow it to become fully standalone in the future. - Deprecated
ApplicationDirectoryandComponentDirectoryin expansionControl. - Update model-validations
v3.8.0 -> v3.9.0. - Update model-transmutations
v2.6.1 -> v2.8.0.
Removed
- Removed
Expansion::applicationInstance. - Removed
ApplicationExpansionSettings::applicationInstance.
2026.4.3 (2026-07-27)
Fixed
- Fixed tag resolution considering 'cycles' as a fact. Cycles are context-sensitive and could cause inconsistent results when the order of evaluation is different.
- Fixed missing
declaredDependenciesmethod on the module/program Builder classes.
2026.4.2 (2026-07-03)
Fixed
- Fixed resource resolution trace to resolve dependencies unnecessarily deep in the tree.
2026.4.1 (2026-06-15)
Fixed
- Fixed issue in resource resolution trace generation causing failure due to unresolved resources.
2026.4.0 (2026-06-09)
Added
- Added
modelVersionfield to expansionSettings and expansionResource to provide better feedback when the configuration causes a mismatch. - Added
isOptionalto expansionResource dependencies to indicate the dependency does not participate in dependency resolution. - Added resolution tree information to
ResolveResourcesResult.
Changed
- Changed
declaredDependenciesreference to a general metamodel concept, removing theelementsontology requirement. - Changed dependency formatting in xml to
<import>tags at the top of the model file. - Update ExpansionControl modelVersion
2025.14.0 > 2026.0.0to ensure compatability with new features.
Fixed
- Fixed some mismatches between reading/writing paths based on metadata.
- Fixed OOB exception when no ApplicationInstance is defined during validation.
2026.3.0 (2026-04-29)
Added
- Added
element.model.pathmetadata when exporting Programs and Modules. - Added model error when enabling program/module dependencies without a dependency on the elements ontology.
- Added missing element role
mixedto dataResources outside ontology-metamodel-expanders. - Added expansion of
modulesupport classes forprogramelements. Such that a program can be included as a module of another program. - Added profile
Standalone Metamodelwhich removes '#meta.dependencyDeclaration' due to its requirement for theelementsontology.
Changed
- Exclude
fromproperty from Dependency export.
Fixed
- Fixed local module scanning crashing when reading incompatible xml files. Ignores these files instead.
2026.2.1 (2026-02-20)
Changed
- Use ontology dependencies to enable relevant tags.
- Upgrade bootstrapped prime-core
v2026.1.1>v2026.2.0.
2026.2.0 (2026-02-19)
Added
- Added
<dependencies>support to Ontologies. - Added conversion from ontology module to dependency.
- Added program as argument to ElementTagResolver.
- Added
dependsOn()tag predicate. - Added constructor and factory without program to TagResolverFactory.
Changed
- Changed OntologyDependency xml tagName to
ontologyDependenciesto avoid conflict with DeclaredDependencies. - Upgrade bootstrapped prime-core
v2025.15.3>v2026.1.1. - Upgrade expanders-core
v8.5.0>v8.7.0.
Fixed
- Fixed ModelResourceDependencyResolver not marking imported modules as model resource.
- Fixed error message for checking
localdependencies to not include.xml.xmlas file extension.
2026.1.1 (2026-01-23)
Fixed
- Fixed default SpecBuilder.applySpecification to apply changes only when not defined.
2026.1.0 (2026-01-16)
Added
- Added TagResolverFactory, which can be used to create a new ElementTagResolver.
- Added
tagsfields to ProgramType and ModuleType. This can be used to define tags which should be applied to every element using that Program- or ModuleType. - Added
scopefield to ElementTagType, which describes where the tag can be used (can beProfile,Expander APIorInternal). - Added reason to
TagResolution, describing how a literal is resolved.
Fixed
- Fixed removal of Components if they were added during model extension in testing.
- Fixed duplicate Component dependencies when defined as module dependency.
- Fixed writing empty labels to the expansion-resource manifest.
- Fixed LinkField target validation running too early.
- Fixed module spec build context and dependency resolution.
- [Tag rules] Fixed bug in
where(property, tag)where it would resolve to valid if the property value wasnulland the tag was valid for root. - Fixed issue causing the order of components to change.
Changed
- [Tag rules]
existsIn(property, tags...)andwhere(property, tags...)now support multiple tags. - Cleaned up tag resolution to make more consistent proofs.
2026.0.0 (2026-01-13)
Added
- Added childspec conversion on Program and Module elements for uncaught childspecs. This allows easily declaring dependencies inline.
- Added bypass to disable check in PrimeDataLoader failing on duplicate expansion-resources. Provide system property
nsx.primeDataLoader.allowDuplicatesto disable the check.
Fixed
- Fixed missing ModuleDependencies when Components are loaded as classic Modules.
- Fixed missing ProgramDependencies when Modules are loaded as classic Modules.
2025.16.1 (2026-01-08)
Fixed
- Fixed module dependencies not resolving when the program does not include them as dependency.
- Fixed moduleType sorting when dependencies are defined between modules.
- Fixed symbiotic dependencies not resolving when any of its dependencies were replaced.
- Fixed issues with multiple
isLinkDriveroptions.
2025.16.0 (2025-12-23)
Added
- Added
dependenciesto Program. - Added logic to ProgramDependenciesResolver to populate program dependencies.
- Added
SpecModelDependencyResolverto resolve modules with thespecmoduleGroup. - Added support for
specmodules in the DependencySpecBuilder by nesting the module element.
Fixed
- Fixed module path resolution for ontologies.
- Fixed ProgramDependenciesResolver not running during testing.
- Fixed Module name collision when two groups use the same id.
2025.15.3 (2025-12-12)
Changed
- Merged 2025.8.9, which fixes an issue with multiple Programs.
Fixed
- Fixed issue in prime-metamodel causing it to be extracted in the wrong location.
- Added logic in OntologyModuleReader to check both
ontologyImportsandontologiesdirectories.
2025.15.2 (2025-12-11)
Changed
- Changed DependencyDeclaration Feature so that it adds a dependencies reference to the ElementClass instead of adding the functionality as templates. This fixes read/write functionality.
- Upgraded prime-metamodel to the new setup.
Fixed
- Fixed issue is TestModelBuilder that caused Modules to be assigned a moduleType with the wrong scope. The builder will now prefer the ModuleType with the highest priority scope.
- Module Dependencies are now correctly converted from Tree to Composite.
2025.15.0 (2025-12-10)
Added
-
Added
ModuleManifestdata ElementClass toelements. These elements represent modules, local or provided by expansion-resources.ModuleManifestscan be provided as a DataResource, or resolved dynamically by aModelDependencyResolver.Programs and modules can add support for dependencies. If so, users can define dependencies in the model files. Dependency resolution mechanisms are implemented as a
ModelDependencyResolver. Consult the javadoc to see how to add a new implementation.To enable support for dependencies, use the
Standard Metamodel 3profile to expand your metamodel. -
Added expanders for Program- and ModuleFactories, enabled with
Standard Metamodel 3profile. -
Added extra project modules to package the metamodels, enabled with
Standard Metamodel 3profile. -
Added project module that bundles the metamodel and core resources, enabled with
Standard Metamodel 3profile. -
Added LocalModelDependencyResolver, which can resolve dependencies to local modules.
-
Added ModelResourceDependencyResolver, which can resolve dependencies to modules from model resources.
-
Added
NativeType.orElse(AsNativeType)and theAsNativeTypeinterface to enhance defaults for NativeTypes.- Implemented
AsNativeTypeforJavaTypeandJavaClassName.
- Implemented
Fixed
- Fixed issue with TechnologyLexicons without names by providing default names when they are missing.
2025.14.0 (2025-12-09)
Changed
- Updated model-transmutations to 2.6.1. This should fix some issues with transitive dependencies causing conflicts with new prime-core versions.
2025.13.3 (2025-11-27)
Fixed
- Fixed
setParentmethod to only expand for extensions. - Fixed
getJpqlOperatorto null-check valueFieldType and supportlike_parameternativeType.
2025.13.2 (2025-11-24)
Fixed
- Fixed compile errors in metamodel
coremodule due to prime-builders dependency.
Removed
- Removed
prime-buildersdependency as it is now included in the prime metamodels themselves.
2025.13.1 (2025-11-21)
Fixed
- Fixed expansion by
pathnot working due to missing expansionSettings reference. - Fixed
getExtensionNamefor composite extension adapters which represent an inherited extension.
2025.13.0 (2025-11-14)
Added
- Added support to ProgramReader to read the model from a specific file.
- Added
pathproperty to ProgramExpansion. When defined, and the ProgramReader supports reading from file, the Program model will be read from the specified file instead of using a predefined location. The path should be relative to the model directory.
Changed
- DataRef
withFunctionalKey(String)methods no longer throw exceptions when encountering keys with an empty string, such asfoo::, or::bar. - ProgramWriters will now write to the original file if that information is available.
2025.12.1 (2025-11-05)
Fixed
- Fixed issues with ValueFieldType to ValueType mapping for
StringMailandStringPassvalueFieldTypes, which caused them to be mapped incorrectly. They now behave as ordinaryTextfields. - Fixed issue where
LinkFieldOppositeCompleterfailed when encountering LinkFields in DataCommands.
2025.12.0 (2025-11-04)
Added
- Added LinkFieldOppositeCompleter, to automatically fill the opposite Field of a LinkField when a single reverse link is found.
- Added
or(NativeType)method to NativeType class to allow resolving multiple NativeTypes by priority.
Fixed
- Fixed various validation errors in elements and expansionControl.
- Fixed XmlReader and -Writer not taking into account isDerived attribute on composition references
- Added missing export roles to ClassPathDependency and ExpansionResourceDependency.
- Fixed xml tag name for programExpansions.
2025.11.0 (2025-10-24)
Added
- Added
NativeType.resolveForapi to indicate nativeType query should be resolved for another composite.- Used for ElementClasses which do not define a type themselves, but have a reference to a composite which does.
- Added
TypeAwareimplementation forCalculatedField,ConnectorFieldandFieldOperatorPair.
Changed
- Updated
Field,ValueField,LinkFieldto delegate resolution toValueTypeorLinkFieldType.
2025.10.0 (2025-10-16)
Added
- Added
valueandusagefields to the NativeType elementClass. - Added
elements::DerivedNativeTypedata elementClass. - Added
TypeAwareinterface which can be added to an elementClass by adding themeta.nativeTypes.typeAwareoption. - Added
is(elementType[, identity])predicate for tag rules.
Changed
- Changed
where(field)predicate to evaluate to valid if only 1 parameter is provided and the field is 'truthy'. - Changed
existsIn(reference)predicate to evaluate to valid if only 1 parameter is provided and the reference is not empty.
Fixed
- Ensure that composition refs are always included in XML export for non-root elements.
- Fixed issue causing ElementInstance reference to be exported as
::. - Fixed stub functionality for single value reference in combination with non-name identifiers.
2025.9.0 (2025-10-01)
This version upgrades prime-core to the ontology-metamodel-expanders.
Changes
Maven artifact changes:
elements-composite-logic,elements-composite-logicandelements-io-xmlhave been replaced withelements-model.expansionControl-composite-logic,expansionControl-composite-logicandexpansionControl-io-xmlhave been replaced withexpansionControl-model.elements-onion-specandexpansionControl-onion-spechave been merged intoprime-test-support.- The
applicationExpansionSettingsfield in ExpansionConfigurationComposite remains, but will now always benull.
API changes:
- XmlReader and -Writer classes are only available for elements that require it. E.g. there is no FieldXmlReader, because Field is part of the DataElement XML file.
- XmlWriter classes now only have the relevant export methods:
- ComponentXmlWriter only has
exportAsDirectory(), but notexportAsFile(). - DataElementXmlWriter only has
exportAsFile().
- ComponentXmlWriter only has
- Similarly, XmlReader classes only have relevant
importmethods:importFromGroupFile()only appears fordataelementClasses.- ComponentXmlReader does not have
importAllFromDirectory(). - DataElementXmlReader does not have
importFromDirectory().
- The DataRefConverter classes are no longer available. Instead, the factory methods on the DataRef classes are used to parse String references.
- The CompositeFinder classes have been simplified by using the CompositeScanners.
XML changes:
Elements and expansionControl XML files now follow the new format.
- Names are now nested XML elements instead of attributes.
- References to other elements are represented as text-content instead of separate attributes.
- Component dependencies no longer contain Component versions.
- Old formats can still be read, but might be updated after using the micro-radiant, a transmuter or updating a version with the expander-maven-plugin.
- The new format is supported by XSD.
ExpansionResource changes:
- The
metamodel-expandersare no longer part of the new nsx-metamodel releases. metamodel-expandershas been removed from thensx-metamodel-stack.- The
GenerateMetamodelApplicationtransmuter is no longer necessary and has been removed frommetamodel-transmuters.
Changes for backwards compatibility:
- Added mechanism to filter out outdated classpath-dependencies like
elements-composite-shared,-logic... - Added backwards compatible DataRefConverters to
prime-core.
Varia:
- Changed FieldOperatorPair export so that references to implicit name fields are omitted.
- Changed ValueType to Component reference to a derived association, which avoids issues caused by interpreting Component as a parent, which is not always the case.
Removed
Removed specific option elements.
ApplicationInstanceOption,ApplicationOption,ComponentOption,DataOption,FieldOption,FinderOption,FlowOption,ServiceOption,TaskOptionandExpansionOptionhave been removed.- The getter and setters on the composites of each related element have been removed.
- The related
~OptionTypeelements van been removed. - Logic has been added so that DataResources defining specific optionTypes are instead read as OptionType instances.
- The
ElementOptionTypeToGenericConvertermodel loading listener, which converted the specific types to the common OptionType model, has been removed.
Removed obsolete elements and classes:
- The NsfInstallation element has been removed.
- The nsfInstallation field on ExpansionConfigurationComposite has been removed.
- The link to ApplicationInstance in ExpansionConfigurationComposite has been removed.
- The
ExpansionSettingsBinaryToXmlRunnerclass has been removed. - Removed the
ElementOptionConverterandOptionConverterLookupclasses. - Removed logic in enrich step running for Components with the
enableCompositesoption (only relevant for metamodel projects). - Removed
ExpansionJobManagerclass in prime-core which clashed with the interface is expanders-core. - Removed
ExpanderFeatureTest,MappingTestandTemplateTestelements.
2025.8.9 (2025-12-12)
Fixed
- Fixed issue in several ModelLoadingListeners causing problems multiple program expansions.
- Added
findAllInstances()methods toCompositeElementFinderto replacefindAll(). The latter returned a Set, which meant that it skipped over elements that occurred again in another program.
Changed
CompositeElementFinder#findAll()is now deprecated in favor offindAllInstances().
2025.8.8 (2025-09-12)
Fixed
- [metamodels] Fixed issue in TreeToCompositeExpander with aggregation references to Taxonomy elements.
2025.8.7 (2025-08-26)
Changed
- Exceptions thrown while resolving expansion-resources now give more information to help trace the issue. This includes a snapshot of the resolution chains for the expansion-resources causing the error.
2025.8.6 (2025-07-17)
Fixed
- [metamodels] Fixed Extension subtypes exported in
modelExtensions.xml. Will now only be exported if the extension reference is owned by the ElementClass. This previously caused excessive ModelExtensions for abstract extensions.
2025.8.5 (2025-06-13)
Fixed
- [prime-core] Fixed issue that caused ValueField to be removed from Field when changing a Field to ValueFieldType.
- [prime-core] Fixed issue where a new SimpleValueType would include all NativeTypes of the parent on first export.
- [prime-core] Fixed issue with Component dependency errors not being caught correctly and improved the error messages.
2025.8.4 (2025-06-02)
Fixed
- [metamodel] Fixed compile issue in SpecBuilder and -Extender classes due to derived properties.
- [metamodel] Fixed deprecation warning on
setTagName()method in TreeToXml
2025.8.3 (2025-06-02)
Re-release 2025.8.2
Fixed
- [metamodels] Made
typeattribute in XSD optional until a better fix is available.
2025.8.2 (2025-06-02)
Fixed
- [metamodels] Fixed XSD composition type to be qualified when from another ontology.
- [metamodels] Fixed Xmlns itemNamespace to be explicitly defined when item is from another ontology.
2025.8.1 (2025-05-27)
- Re-release 2025.8.0
2025.8.0 (2025-05-27)
Added
- [metamodels] Added
isDerivedflag toAttributeandReference. If set to true, they will not appear in the Tree or XML representation. Values must be provided during the enrich step. - [metamodels] Added
isRequiredflag toAttribute. - [metamodels] Added
formatassociation to DataType, and aFormatdata ElementClass to represent formats. - [metamodels] Added Validation Rule expanders:
- Required fields rules will check required attributes and references with cardinality
1..x. - Field format rules will check the formatting of attributes.
- Required fields rules will check required attributes and references with cardinality
- [metamodels] Added
metamodel-commonExpansionResource, which contains common types, such as formats and roles.
Changed
- [metamodels] Extensions no longer export parent element to XML.
- [metamodels] XSD descriptions of abstract elements no longer define any properties. Instead, the subclass will define all properties.
- [metamodels] XSD's now take into account Reference cardinalities.
- [metamodels] XSD's now contain annotations with documentation based on descriptions in the metamodel.
- Changed CompositeScanner classes so that they use specific scanner classes for nested elements. This fixes issues with children of subclasses being ignored in a scan.
2025.7.5 (2025-05-26)
Fixed
- [prime-core] Fixed error occurring in ExpansionResourceSorter due to missing dependencies, which occurred with symbiotic dependencies. The sorter now ignores missing dependencies since that is the task of the resolver.
2025.7.4 (2025-05-21)
Fixed
- [prime-core] Fixed ExpansionResourceSorter failing because of transitive dependencies.
2025.7.3 (2025-05-21)
Changed
- [prime-core] In tests, DataResources are now also loaded simultaneously similar to expansion.
2025.7.2 (2025-05-21)
Fixed
- [prime-core] Fixed issue causing DataResource merging to not work correctly when combining DataResources with and without elementTypeCanonicalName explicitly defined. (e.g. associationTypes)
2025.7.1 (2025-05-19)
Added
- [ontology-metamodel-expanders] Added anchors to
-corepom.xml for expanders-maven-plugin config.
2025.7.0 (2025-05-19)
Changed
- [prime-core] ExpansionResources are now loaded simultaneously in the ExtractResourcesStep. This fixes issues that occur when there are implicit dependencies between ExpansionResources and the loading order is not correct.
- [prime-core] Made ExpansionResource sorting more deterministic so that each time the model is loaded, the result is the same. Beside the direct dependencies, the sorter now also takes into account the overall number of dependencies and number of DataResources of each ExpansionResource. Resources with few dependencies and many DataResources will be loaded earlier to minimize issues caused by missing data.
2025.6.2 (2025-05-14)
Fixed
- [meta-metamodel] Expanded meta-metamodel with expanders 2025.6.1 to fix DataRefXmlReader for Reference.
- [ontology-metamodel-expanders] Fixed DataRefExpander expanding wrong logic for ElementClasses without any identifiers.
2025.6.1 (2025-05-13)
Fixed
- [ontology-metamodel-expanders] Fixed DataRefFromXmlReaderExpander using the wrong attribute name for inherited name attributes.
2025.6.0 (2025-05-12)
Changed
- Refactored behaviour around name attribute
- The new behaviour can be disabled with the tag
#meta.legacy.nameAttribute. This tag is present in theStandard Metamodelprofile. UseStandard Metamodel 2to get the new behaviour. - File names of elements will now use the instance name, which is the identifier without the parent.
- Onion specs now use the specification string to set the identifier properties, not just the name attribute.
Multiple properties can be defined with the
::separator.
- The new behaviour can be disabled with the tag
Fixed
- [runtime] Fixed NamedReference to use a safer fallback. DataRef::toString is now interpreted as qualified name instead of DataRef::getName.
2025.5.1 (2025-05-09)
Fixed
- [onto-metamodel-expanders] Added NativeTypes for
BigStringto fix issues in XmlToTree.- Provided a better default in XmlToTree when no nativeType is defined for a primitiveType.
2025.5.0 (2025-05-05)
Added
- Added
DoubleandBigStringprimitiveTypes.
Changed
- Refactored meta-metamodel to ontology-metamodel-expanders.
- Changed generated XSD to use
xs:allto be less restrictive.
Fixed
- Fixed duplicate method in DataRef class for elementClasses with
isGloballyUnique=true.
Removed
- Removed
metamodel-builders, since it is now obsolete. (metamodel-corecontains CompositeBuilder classes.)
2025.4.0 (2025-04-30)
Added
- Added
isIdentifierflag to Reference to include it in the owner's identity.
Changed
- Refactored ElementClass DataRef classes to implement new NamedReference interface.
2025.3.1 (2025-04-17)
Fixed
- Fixed bug in resolution algorithm that let replaced resources slip through on occasion.
2025.3.0 (2025-04-10)
Added
- Added DataElementTypes to prime-core, which were previously implicit.
- Added preprocessing mechanism when building expansion-resources. This uses the jdk ServiceLoader to find implementations of the ExpansionResourcePreprocessing interface. This can be used to extend the expansionResource manifest.
Fixed
- [prime-core] Fixed a bug where
replacesin expansion-resources could cause some of the expansion-resources to be pruned incorrectly causing other issues due to dependencies not being included.
Changed
Changed the expansion-resource resolution algorithm.
- The resolver will now be less eager to fetch outdated versions of expansion-resources.
- Symbiotic dependencies can now cascade into each other.
- Instead of cutting branches in the dependency tree, the algorithm now sorts the branches and looks for new versions. The algorithm finishes when no new version can be found. This allows us to backtrack when one of the resolved version appears to be invalid.
2025.2.0 (2025-03-31)
Added
- [meta-metamodel] Added description fields to multiple ElementClasses.
Fixed
- [onto-metamodel-expanders] Fixed issues with multi-tiered inheritance in TreeExpander.
- [onto-metamodel-expanders][VEGA-401] Add UTF-8 encoding property to root pom.xml.
- [metamodel-transmuters] Fixed DataClassShouldHaveIdentifierRuleTest for elementClasses that inherit identifier attributes.
Changed
- Added validations for aggregation cardinality and reference identity.
2025.1.0 (2025-03-27)
Added
- [onto-metamodel-expanders] Added extensions to CompositeScanner if applicable.
2025.0.0 (2025-03-24)
Added
- [prime-core] Added support for symbiotic expansion-resource dependencies. Symbiotic dependencies are only added if all transitive dependencies are already present.
Fixed
- [onto-metamodel-expanders] Fixed
io-xmlXSDs to use lax checking for theoptionslist. - [onto-metamodel-expanders] Fixed issues when expanding prime-metamodel
Changed
- [onto-metamodel-expanders] Prime-builders dependency is now added where needed.
2024.8.3 (2025-02-14)
Fixed
- [prime-core] Fixed recursion issue in tag rules with
existsIn()andwhere(). - [prime-core] Fixed optionType target elementTypes for abstract ElementTypes, so that it now also accepts subtypes.
2024.8.2 (2024-12-03)
Fixed
- [ontology-metamodel-expanders] Fixed compilation issue caused by excluding transitive dependencies.
Instead, the projects now use the new
includeTransitiveClassPathDependenciesoption on expanders-maven-plugin to exclude transitive dependencies.
2024.8.1 (2024-12-03)
Fixed
- [ontology-metamodel-expanders] Fixed issue with ambiguous reference in CompositeToTree for
0..1composition references. - [ontology-metamodel-expanders] Exclude transitive dependencies of prime-core to avoid version conflict.
2024.8.0 (2024-11-08)
Added
- ModelLoadingListeners can now define goals.
- ModelLoadingListeners can also define timing restrictions to run before or after a specific goal. When defined,
the listener will be placed before or after each listener with the target goal.
E.g. the OptionCascade listener has the
process-base-optionsandprovide-optionsgoals. So if we want another listener to run before, we can set the timing tobefore process-base-optionsorbefore provide-options, whichever is most applicable.
Changed
- The
PostReadApplicationInstanceOptionCopierlistener has been replaced withApplicationInstanceOptionCopier, which runs after the ConvertModelStep instead of the ReadModelStep. This means that ApplicationInstance options are no longer copied to the ApplicationTree. Instead, they will only appear on the ApplicationComposite.
Fixed
- Fixed a bug that caused the options of an ApplicationInstance to be copied to the Application when written.
This occurred mostly when using the
set-model-versionmojo of the expanders-maven-plugin.
2024.7.0 (2024-11-05)
Changed
- [ontology-metamodel-expanders] Renamed the
meta.element.extendableoption tometa.composite.extendableto remain consistent with previous versions.
Fixed
- [ontology-metamodel-expanders] Fixed ExtendableComposite not correctly implementing its interface.
- [ontology-metamodel-expanders] Fixed extendable XmlWriter using File api instead of Path.
- [ontology-metamodel-expanders] Fixed various issues related to the
meta.*.extendableoption. - [ontology-metamodel-expanders] Fixed compile error in CompositeTree for
0..1composition references. - [ontology-metamodel-expanders] Fixed XML containing
nullas text-content.
2024.6.0 (2024-09-25)
Added
- [ontology-metamodel-expanders] Added modelVersion field to Ontology. XSD namespaces now use modelVersion if it is defined.
Fixed
- [ontology-metamodel-expanders] Fixed DataResource type field in xsd, which was missing the ontology.
- [ontology-metamodel-expanders] Fixed issue causing non-persistent elements to not be filtered in CompositeToTree.
Changed
- [io-xml-runtime] ModelXmlWriter will now skip writing model files where the content hasn't changed to avoid introducing changes each time the version is updated.
2024.5.0 (2024-08-26)
Added
- [META-50] Reference has a dependsOn field that can list 1 or more other References. References are sorted so that References that depend on others are resolved after their dependencies.
Fixed
- Add backwards compatible logic for the
ioxml.ref.simpleoption. (requiresmeta.compatibility.xml.legacyRefs)
2024.4.5 (2024-08-07)
Changed
- DataResourceLoader can now use
origin.expansionResource.pathon the DataResource to load a file relative from a source directory, which is useful when running tests from IntelliJ.
2024.4.4 (2024-08-05)
Fixed
MigrateMetamodelApplicationtransmutation did not migrateioxml.tagname.- [NSX-505] Fixed sorting when one of the dependencies is replaced with a newer version.
2024.4.3 (2024-07-29)
Fixed
- Fixed concurrency issues with CompositeScannerFactory cache.
- Updated ontology expanders to use
meta.xml.tagNameas defined in option types rather thanmeta.xml.tagname.
2024.4.2 (2024-07-19)
Fixed
- [NSX-497] Reverted addition of functional key
nameforTechnologyLexicon. This was used without an explicit name historically, resulting in backwards compatibility issues.
2024.4.1 (2024-07-15)
Changed
- Changed
aggregatereferences within the same ontology to be parent-child relations (for backwards compatability).
Fixed
- Fixed compile-issue in SpecBuilder for multivalued associations.
2024.4.0 (2024-07-12)
Added
- Added several descriptive fields to
ExpansionResource:title: human-friendly namesortName: name used for sorting of expansion-resourceslabels: any number of descriptive labels regarding the content and use of the resource
- Added
replacesfield toExpansionResource, which will be used to prune older artifacts during resolution. - Added
isTransitivefield toExpansionResourceDependency. Transitive dependencies can be pruned if it appears they are not needed.
Changed
- Improved dependency resolution algorithm to minimize the amount of resources that need to be fetched.
- The resolution algorithm now uses the
replacesandisTransitivefields to optimize the expansion-resource set. This should make it possible to start removing dependencies that are no longer needed. However, for this to work, each related expansion-resource will need to be updated to mark transitive dependencies withisTransitive.
Fixed
- ElementClassCompositeToTree now removes several properties that were meant to be transient.
2024.3.15 (2024-07-03)
Fixed
- Fixed TreeInternal interface for abstract classes not defining 'extension' relations.
- Fixed ExtensionAdapter being expanded for abstract extensions for which no adapter should exist.
- Fixed missing getter for implicit name field on the Tree projection.
- Fixed XmlWriter compile issue when ElementClass has an implicit name.
- Fixed
getExtensionName()method on abstract extensions to bedefaultinstead ofpublic. - Fixed abstract types in XSD to allow the
typeattribute to be added. - Added missing options on meta-metamodel and extendable elements, needed by plugin expansion and other metamodels.
2024.3.14 (2024-06-17)
Added
- Added profile
Metamodel Without Transmutersfor metamodels that do not require transmuters.
Changed
Fixed an issue where some expansion steps would run, even if the expansion does not use the new expanders.
- Introduced 2 new tags:
#meta.harvest.migrateFromApplication: Activates migration of harvest code.#meta.harvest.mixedSourceFiles: Activates ext file harvesting. Without this tag, ext files will not be harvested or expanded.
These tags have been added to the profiles Standard Metamodel and Metamodel Without Transmuters.
warning If you have any custom profiles, you need to add these 2 tags to keep the behaviour the same.
Fixed
- Fixed NPE in tag functions on root.
- Added loop detection to ElementTagResolver to prevent issue with recursive definitions.
2024.3.12 (2024-06-11)
Added
- Added XSD files to exported resources.
- Added xmlns to imported xsd types.
Fixed
- Fixed Extensions not having modelWriters.
2024.3.11 (2024-06-10)
Fixed
- Fixed issue where XML of abstract elements would be exported with a redundant namespace attribute for the type attribute.
Changed
- DataRefXmlReader classes now only expand if the class has any identifiers. This fixes a compile issue for
ElementClasses without identifiers when
meta.compatibility.xml.legacyRefsis enabled. - ElementClass.parentReference is now set, even when the ElementClass has isGloballyUnique. This fixes some expansion issues for ElementClasses with isGloballyUnique.
2024.3.10 (2024-06-07)
Added
- Added some missing tasks for modules to the README expander.
Fixed
- Fixed compile-time issue in CompositeBuilders.
- Reverted default value of integers in metamodels to
nullinstead of0.
2024.3.9 (2024-06-07)
Added
- Added support for abstract non-collection fields to model builders.
- Added OptionType for
meta.xml.namespace. - Added
groupattribute to ontology, which needs to be provided if it is to be imported in other metamodels.
Fixed
- Fixed model builders not removing
ElementOptions whenremoveOption(String)is used. - Fixed XMLWriters exporting
parentReferenceanddomainName.
2024.3.8 (2024-05-30)
- Re-release 2024.3.7 due to broken jenkins build.
2024.3.7 (2024-05-30)
- Re-release 2024.3.6 due to broken jenkins build.
2024.3.6 (2024-05-30)
Fixed
- Update model-transmutations to 2.4.1 to fix an issue with maven dependencies in metamodel projects.
2024.3.5 (2024-05-30)
Fixed
- Fixed issue with reading DataRefs to prime-core element in XML files of metamodels expanded with ontology-metamodel-expanders.
2024.3.4 (2024-05-29)
Fixed
- Moved prime-(core|test-support) dependencies up in expanded pom.xml files to prevent issues with class conflicts.
2024.3.3 (2024-05-28)
Fixed
- Fixed issue with extensions in
getDataRef()method of Tree/Composite. - Fixed issue in CompositeFinder.
- Improved error message of DataRef parsing.
- Fixed dataRef specs when the specification is not a valid functional key.
- Fixed elementType of ModelExtension.
2024.3.2 (2024-05-27)
Added
- Added
exportelement role, which is data that can also be written.
Fixed
- Fixed compatibility issue with elements model
- Fixed duplicate references in CompositeToTree and TreeToComposite
- Fixed issues with DataRef for extensions
- Fixed issues with DataRef methods for some edge-cases
- Fixed issues with extensions in XmlReader and XmlWriter
- Fixed XML Readers to be namespace aware. This also fixes an issue where the readers couldn't read XML with prefixes.
2024.3.1 (2024-05-24)
Fixed
- Set minimum java version for metamodels to 17.
- Fixed an issue with meta options on DataElement.
- Fixed a missing import for ModelLoadingContext in ElementSpecBuilder classes.
2024.3.0 (2024-05-23)
Changed
Added ontology-metamodel-expanders, which serves as a new iteration of the metamodel expanders. Several changes have been made from the metamodel-expanders:
- Expanders run directly on the ontology model. This means the GenerateMetamodelApplication transmuter is no longer required.
- As a result of the previous change, the expansion directory has changed to the name of the ExpansionMetamodel.
- Ontologies can now have versions. Imported ontologies without versions are interpreted as being expanded with the previous expanders versions.
- Ext file harvesting has been changed. There are no longer separate ext and gen directories. Instead, files are harvested if they were not expanded. A list of expanded artifacts is used to see which files were added after expansion.
- The expanded project has been simplified to reduce the number of maven modules.
- MappingContext has been changed to use
Optionalinstead ofOptions.Option. - Support for ValueFieldTypes in metamodels has been dropped.
- DataRefConverter classes for ElementClasses have been dropped in favor of method on the DataRef class.
- Support for creating specific Option elements, like DataOption, has been dropped.
- Most DataResources in the expanded project now use the new notation.
2024.2.3 (2024-04-30)
Fixed
- Fixed CompositeFactories not resolving for elementClasses with 'Composite' or 'Tree' in their name.
2024.2.1 (2024-04-24)
Fixed
- Fixed CompositeMerger so options are now merged correctly for DataResources.
2024.2.0 (2024-04-19)
Added
- Added
TestModelBuilder#buildProgram(ElementSpec, ProgramTypeSpec), which allows you to define the programType for your test.
2024.1.1 (2024-03-27)
Fixed
- Fixed NullPointerException in
ExpandableElementComposite.isInstance()when ElementType is undefined.
2024.1.0 (2024-03-15)
Added
- Added ExpanderRelocation. This allows you to rename an Expander and/or change the artifactPath. Features and harvest will be remapped to the new locations.
Fixed
- Improved XSD's of Expanders, Features and ExpansionSteps by making several fields optional.
2024.0.4 (2024-01-11)
Added
- Extendable composites will now be provisioned with empty lists for ModelExtensions that were not initialized.
This prevents issues with null values when using
composite.extensions['MyExtension']. Only works for ModelExtensions that are known to the DataRegistry.
Fixed
- Moved reading of settings directories to ExtractResourcesStep, so it can be referenced in the expansionSettings.xml.
- Fixed an issue where technologies in a TechnologyStack would not be merged with technologies from DataResources.
2024.0.3 (2024-01-10)
Fixed
- Revert change in TechnologyLexicon which caused it to require a name, causing it to be ignored in some cases if it does not have a name.
2024.0.1 (2024-01-09)
Fixed
existsIn()andwhere()now resolve to false instead of throwing an exception if the property does not exist- Updated xsd's of Expander, Feature and AdditionalExpansionStep
2024.0.0 (2024-01-09)
Added
- Added ElementTag, ElementTagType and ElementTagRule to elements.
Fixed
- [NSX-403] Fixed issue with writing SimpleValueTypes, which could cause transmuters to fail.
2023.12.0 (2023-12-12)
Changed
- PrimeDataLoader will now throw an Exception if the same expansion-resource is found twice in the classPath. These cases are probably caused by accidental inclusion of an expansionResource.xml in the wrong jar.
2023.11.1 (2023-12-06)
Merge with 2023.4.0.2
2023.11.0 (2023-12-06)
Added
- Added System property
expanders.model.force. When set totrue, issues with OptionTypes will be ignored. This feature is provided to support expansion of an earlier project version, it should not be used in day-to-day use. - Added parameter manifestFile to ExpansionResourceManifestGenerator to export to a different file.
- Added constructor to TestModelBuilder which takes a ModelLoaderFactory. This provides a way for expander test libraries to control how the ModelLoader is built.
2023.10.1 (2023-11-29)
Reverted
- Returned
isSimpleValueType()andasSimpleValueType()methods to ValueFieldTypeComposite, since it was already used in some expansion-resources.
2023.10.0 (2023-11-29)
Added
- Added compatability to make abstract element types expandable.
- Added implementation for abstract types to be an extension.
- Added spec extension support for model extensions.
- Added OptionType definitions for several metamodel options.
- Added elementType reference to AdditionalExpansionStep. Resolved similarly to
Expander.elementType.
Changed
- Prime-core now targets java 17
- Option hasParentElement is now an alias for
meta.element.parent. - Expander composites now resolve both elementTypeName and elementType.
- ValueType is now no longer sealed.
- This removed the
isSimpleValueType()andasSimpleValueType()methods from the ValueFieldTypeComposite. - ValueType can now be extended by other ontologies.
- This removed the
Fixed
- ReferenceToParentRule now takes inherited attributes into account.
2023.9.6 (2023-11-22)
Fixed
- The
GenerateMetamodelApplicationtransmutation did not retain descriptions when converting attributes to fields. - Fixed an issue where options used within data-resources would not resolve correctly, causing warnings about alias and disappearing options.
2023.9.5 (2023-11-15)
Fixed
- [VEGA-358] Added linkFieldTypes to prime-core, with correct dataType and updated description.
2023.9.4 (2023-11-15)
Erroneous release
2023.9.3 (2023-11-08)
Changed
- Replaced
metamodel-runtimelibrary withincludeClassPathDependenciesfunctionality.
2023.9.2 (2023-10-23)
Fixed
- Cleaned up elements and expansionControl ontologies to use them in the new micro-radiant expansion.
2023.9.1 (2023-10-11)
Revert
- Revert removing
SchemaOptionsCompleter. This change does not work with expander versions < 5.36.0.
2023.9.0 (2023-10-11)
Added
- Added
getAllAttributes()to ElementClass, which includes inherited attributes. - References and OppositeReferences of an ElementClass now include inherited properties.
Removed
- Removed uses of deprecated methods in expander templates:
net.palver.util.StringUtil.join()net.palver.util.StringUtil.split()
Fixed
- Added option
meta.component.importsto define which metamodel components are imported. These are then not expanded.
2023.8.0 (2023-09-22)
Removed
- Removed SchemaOptionsCompleter, database option consolidation is handled in a ModelLoadingListener instead.
2023.7.1 (2023-09-22)
Fixed
- Explicitly added JAVA_EE and JAKARTA_EE technologies, so Applications can be loaded even without the latest nsx-default-stack.
Added
- Added ontologies to meta-metamodel expansion-resource.
2023.7.0 (2023-09-21)
Added
- Added logic to provide JAKARTA_EE or JAVA_EE logic depending on the jeeVersion (resp.
>=9or<9) in TechnicalInfrastructure.
2023.6.1 (2023-09-09)
- Re-release of
2023.6.0.
2023.6.0 (2023-09-07)
Added
- Added ArtifactImportStrategy. This strategy can be referenced in expander mapping files to decide how imports are resolved.
- Added TechnologyLexicon element, which contains a number of CoordinateRedirections. These are used to redirect imports in artifacts towards a new coordinate. E.g. when a library changes the packages of classes, this can be used to map them correctly.
- Added attributes
redundant,documentationLinkandhiddento OptionType.
Changed
- Cascading options are now resolved recursively. Before only options defined on Program and Module elements would cascade.
2023.5.0 (2023-06-28)
Added
- Added missing optionTypes for valueType migration.
Added metadata to Composites of Module elements:
module.model.path: the location of the root file.module.model.modelDirectory: the modelDirectory of the modules.module.model.modelResource: present if they were loaded from a modelResource.
Changed
- Replaced elements-metamodel with prime-metamodel, which now includes the elements and expansionControl ontologies. Before this version, elements-metamodel contained ontologies designed solely to model against. But prime-metamodel is now stable enough to use instead and is actually related to the content of prime-core.
2023.4.1 (2023-06-19)
Fixed
- [metamodel-expanders] Removed rootDirectory configuration in expansionResource builds.
- [metamodel-expanders] Added exclusion for prime-core in test-support jars.
Changed
- Renamed DataClassShouldHaveIdentifier to DataClassShouldHaveIdentifierRule
- Updated nsx-runtime from
2023.1.1to2023.3.0
2023.4.0.2 (2023-12-06)
[VEGA-354] Backport fix from 2023.11.0:
- Added System property
expanders.model.force. When set totrue, issues with OptionTypes will be ignored. This feature is provided to support expansion of an earlier project version, it should not be used in day-to-day use.
2023.4.0.1 (2023-12-05)
nothing changed
2023.4.0 (2023-05-31)
Fixed
- [important] Fixed a bug that causes options with
alwaysEnabledandvalidUntilto be added, but also be checked for expiration. This combination can cause projects to not be able to expand after the deadline, regardless of setting.
Changed
- Applied the flatten plugin to primeMetamodel and metaMetamodel projects to provide cleaner pom.xml files.
Removed
- Removed logic that automatically added the option
isStatusFieldto fields with the namestatusand typejava.lang.String. The option now needs to be explicitly added.
Added
- Added SCM information to deployed pom.xml artifacts.
2023.3.4 (2023-05-25)
Added
- Added several validation rules for ontologies
Fixed
- Fixed test model builder for ontologies (couldn't find ontology in expansionMetaModel)
- Fixed ExtractClasspathResourcesStep for multiple DataResources with the same Classpath location (used in tests)
2023.3.3 (2023-05-23)
Changed
- Changed PrimeDataLoader so that it loads DataResources directly from their source jar instead of the classpath. This prevents issues with DataResources that overlap in the classpath.
2023.3.2 (2023-05-17)
Changed
- Moved ValueType prototype resolution to convertModel step. This should fix some warnings during expansion.
2023.3.1 (2023-05-11)
Added
- Added warning for expanders when retrieving nativeTypes or restrictions when inheritance has not been resolved.
Fixed
- Fixed an issue in SimpleValueTypeCompositeToTree when inheritance was not resolved (e.g. in Micro-Radiant)
2023.3.0 (2023-05-10)
Added
- Added DataResource registration that does not require a
_data.xmlfile, instead it looks for files with dataResource as root tag. - Added DataResourceValidator to validate data-resources.
Fixed
- Fixed NullPointerException in
TestModelBuilder#extendModel()ifbuildModel()was not used.
2023.2.3 (2023-04-20)
Removed
- Removed options that expired on 2023-04-07:
legacy.valueFieldType.hashCodeMethod.disable
2023.2.2 (2023-04-20)
Fixed
- Fixed issue in DelegatingDataResourceLoader that caused data to start leaking in tests./
2023.2.0 (2023-04-12)
Added
- Added ArtifactListener element. ArtifactListeners can be registered to add logic before/after writing each Artifact.
- DataResources can now skip the elementTypeCanonicalName and instead define a type attribute on the root XML.
The type should be the elementType reference (e.g.
elements::Technology).
Fixed
- Removed Time ValueType
- Added Text ValueType for creating String types that have no limit
2023.1.2 (2023-03-31)
Added
- Added CustomRestriction for ValueTypes
- Added find logic in TestModelBuilder that uses CompositeScanners. This means
buildModelAndFind()now supports elements that do not reference their composition parent in their functional key (globallyUnique)
Fixed
ValueTypes
- Fixed SimpleValueType CompositeToTree so that inherited properties aren't exported.
- Fixed an issue causing String SimpleValueType to be missing nativeTypes.
Metamodels
- Fixed issues with elements that have a composition Reference to themselves.
- Fixed import from directory causing elements from within the file to be overwritten
2023.1.1 (2023-03-20)
Fixed
- Fix export of ValueField so that it only exports type if that was the original representation in the file
- Fix NullPointerException in FieldCompositeEnricher
2023.1.0 (2023-03-20)
Added
Added ValueType to replace ValueFieldType
- ValueType currently has a single subclass SimpleValueType
- SimpleValueTypes have NativeTypes to represent specific types native to a technology
- SimpleValueTypes also have Restrictions to represent constraints, such as string length etc.
ModelLoadingListeners ValueTypeToValueFieldTypeConverter and ValueFieldTypeToValueTypeConverter keep ValueFieldTypes and ValueTypes synchronized. This should keep both expanders based on ValueFieldTypes and on ValueTypes running.
2023.0.2 (2023-02-01)
- Re-release 2023.0.1
2023.0.0 (2023-01-31)
- merged prime-core 2022.11.x changes
2022.12.0-alpha-2 (2022-12-07)
Added
- Added ElementType methods on TreeProjection
- Added superType and isAbstract to ElementType Data Resources
- Added
oppositeFieldto LinkField
Fixed
- Added missing implementation for
newCompositeEnricher()on CompositeFactories - Implemented multi-level inheritance of attributes and references
2022.12.0-alpha-1 (2022-11-30)
Changed
- merged prime-core, metamodel-stack and meta-metamodel into nsx-metamodels repository
- merged several metamodel-stack expansion-resources into metamodel-expanders
Added
- Added support for inheritance in metamodels. You can assign a superClass for each ElementClass. That superClass needs to have isAbstract enabled
- Added isSealed. Sealed ElementClasses can be inherited from, but only from within the same Ontology.
Removed
- Removed id field from Composites and Trees
- Removed element-stubs expansion-resource
2022.10.6 (2022-11-07)
Fixed
- Fixed options not being filtered on origin metadata in CompositeToTree
2022.10.5 (2022-11-03)
Fixed
- Fixed problem with unmodifiable lists in
setOption()by updating metamodel-stack version - Fixed sorting of features in expansionResource.xml
2022.10.4 (2022-10-27)
Fixed
- Fixed aliases for option types not being taken into account into
getOption() - Fixed PrimeDataLoader keeping cache between different classLoaders
Updated
- Updated metamodel-stack to 4.12.1
- Updated nsx-runtime to 2022.4.0
2022.10.3 (2022-10-19)
Fixed
TestModelBuilder:
- Fixed
buildModel(ApplicationInstance)not building correctly with nested specs - Significantly improved performance
- Added some missing methods
2022.10.2 (2022-10-17)
Fixed
- Added missing TestModelBuilder class by updating metamodel-stack v4.11.3 -> v4.11.4
2022.10.1 (2022-10-10)
Fixed
- Fixed NullPointerException in AlwaysEnabledOptionPlacer wrt CompositeScanners
- Fixed issue where XmlWriters would export old option representation when the last option was removed
Deprecated
- Deprecated DataOptions, TaskOptions... in favour of unified Option
2022.10.0 (2022-10-06)
Added
Added TestModelBuilder. This class builds model similar to ModelSpecBuilder, but actually uses the ModelLoader to load the model. This makes it so ModelLoadingListeners are included when building the models.
To get this to work in new metamodels, implement the modelSpec() method on the SpecFactory class.
2022.9.0 (2022-09-29)
Added
Added features to OptionType:
alwaysEnabled: Always adds the option to each valid target if not defined. Can be used in combination withdefaultvalue.cascading: Option is copied to each descendant of a Module or Program that is a valid target for the option.
Fixed
- Fixed transmutations exporting generated extensions, like QuerySearch
2022.8.1 (2022-09-21)
Fixed
prime-metamodel:
- removed expansion-resource dependencies that got picked up accidentally from a test
2022.8.0 (2022-09-21)
Added
Added several field to OptionType:
defaultValue: If no value is defined, this value will be set insteadalias: Comma-separated list of alternative option type names, which will be mapped to this option type. This should be used to migrate to new option type names. The ModelLoader will print warnings if one of the alias names is used.deprecatedWarning: If set, a warning will be printed if this option is used. Provide a reason why the option type is deprecated.validUntil: Expects a date in ISO 8601 format (yyyy-MM-dd). This will trigger the modelLoading to fail when the date has expired. This can be used to give a limited time window to replace the option.
Added technology field to AdditionalExpansionStep and Feature, which will be used to filter out expansionSteps and
features if the technology is not present.
2022.7.0 (2022-09-20)
Added
- Added classes from expansion-resource-development to generate ExpansionResource manifests
Fixed
- Fixed nullPtrException in ExpansionResource manifest generator
2022.6.5 (2022-09-12)
Added
- Improved error messages on issues in PrimeDataLoader. (i.e. expansion-resource issues when running tests)
2022.6.4 (2022-09-07)
Fixed
- Fixed issue where
expansionSettingswould appear in XML as a child of SettingsDirectory
2022.6.3 (2022-09-01)
Added
- Add metadata to data-resources
origin.dataResource.pathdefines the path of the dataResource that was used to load this dataorigin.expansionResourcedefines the expansion-resource that this data was part of
- Add metadata to programs and modules
program.typedefines the ProgramType used to load the programmodule.typedefines the ModuleType used to load the module
2022.6.2 (2022-08-30)
Fixed
- Fix issue in DefaultFindersBuilder when using Components outside Application
2022.6.1 (2022-08-10)
Fixed
- Release to remove dependency on snapshot version of
metamodel-expanders.
2022.6.0 (2022-08-10)
Added
Field.javaObjectTypewhich returns the type forjava.util.ArrayList, orjava.util.Vectorif the optionlegacy.vectorCollectionType.reenableis found on the application.ConnectorField.javaObjectTypewhich returns the type forjava.util.ArrayList, orjava.util.Vectorif the optionlegacy.vectorCollectionType.reenableis found on the application.
Changed
Field.javaTypenow returns the type forjava.util.Listinstead ofjava.util.Vector, unless the optionlegacy.vectorCollectionType.reenableis found on the application.ConnectorField.javaTypenow returns the type forjava.util.Listinstead ofjava.util.Vector, unless the optionlegacy.vectorCollectionType.reenableis found on the application.
2022.5.8 (2022-06-09)
Fixed
- Added legacy option
legacy.finders.keepOrderto keep the order of finders
2022.5.7 (2022-06-09)
Fixed
- Fixed options being duplicated as regular options and specific options (e.g. DataOption) on XML export
2022.5.5 (2022-05-20)
Fixed
- Fixed error where OptionType::elementTypes where being matched on name instead component+name
- Fixed optionType regex being checked even if value was empty
- Fixed finder-spec ignoring
isCustomFinderwhen provided by genericoption()spec
2022.5.4 (2022-05-19)
removed
- Removed error when using nameNotWanted and findByNameEq together, since it can easily break tests (should be moved to model-validations)
2022.5.2 (2022-05-16)
Fixed
- Fixed exporting duplicate options
- Fixed component exporting without options
Removed
- Added cleanup in TreeToXml that cleans up empty and undefined elements, to reduce the clutter in XML files
- Removed
Application::releasePeriod
2022.5.1 (2022-05-13)
Fixed
- [VEGA-223] Fixed CalculatedField spec parser for custom ValueFieldTypes
- Fixed functionalKey option failing if provided by OptionElement
Changed
- Throw error when using nameNotWanted and findByNameEq together
2022.5.0 (2022-05-12)
Added
Option Element
- Added an Option element to represent options on any Composite (with a few exceptions)
- Options are now represented as
<option.name>value</option.name> - OptionType replaces the various separate option elements
- OptionType can have a valueConstraint to define whether a values is supported, required and/or should match a pattern
DataRegistryComposite:
- Added method to retrieve a single Composite
- Added methods for retrieving Composites and Tree based on the class name, without postfix.
Fixed
- Added cache bust if DataResourceLoader encounters new classloader. This prevents issues if the ModelLoader is called twice within the same JVM (e.g. Micro Radiant). This was the cause of a classloading issue regarding model-validations.
2022.4.1 (2022-04-27)
Added
ReadExpansionSettingsResult#setExpansionSettings()is now public, so it is easier to provide ExpansionSettings in other ways.- Added
classPathResourcesto ResolveResourcesResult, containing the ResourceTargets for ClassPathDependencies
2022.4.0 (2022-04-25)
Added
- [NSX-300][VEGA-130] Added support for resolving library dependencies of expansion-resources:
- Added ClassPathDependency element, to describe class-path dependencies for expansion-resources
- If an expansion-resource contains one of these class-path dependencies, those dependencies will be resolved and added to the expansion class-loader.
- Added methods to ResourceFinder/ResourceFetcher interfaces to process multiple resourceTargets at once
Removed
Removed several elements and fields that are no longer used.
- Removed
disabledfields on the metamodel - Removed
modelRepositoryandcustomRepositoryonApplicationandComponent - Removed
customBase,expandBase,expanderVersionanddeployBasefromApplicationInstance - Removed a number of commands on the metamodel, which were remnants from Prime-Radiant
- Removed the following elements:
- ApplicationDeployment
- ApplicationTrack
- Connector
- ConnectorTechnology
- ConnectorType
- DataElementConnector
- DataElementConnectorOperation
- DeployBase
- DeployBaseType
- ExpandBase
- ExpanderModel
- ExpanderVersion
- ExternalResource
- Infrastructure
- NsfBase
- Operation
- PrimeBase
- SourceBase
- Subspace
2022.3.0 (2022-04-08)
Added
- Improved traceability of error messages by keeping track of a model execution context. When an exception is thrown,
the model execution context will be added to the exception message:
net.democritus.elements.ElementNotFoundException: Cannot find Field(registration::Person::Status)
at FlowElementTreeToComposite.getStatusField (statusField=Status, targetElement=<DataElement registration::Person>)
at FlowElementTreeToComposite.mapTree (tree=<FlowElement registration::PersonFlow>)
at ComponentTreeToComposite.mapFlowElement (flowElement=<FlowElement registration::PersonFlow>)
at ComponentTreeToComposite.mapTree (tree=<Component registration>)
at ModuleCompositeModelLoader.loadModules (moduleType=<ModuleType elements::JeeComponent>)
at ExpansionCompositeModelConverter.convert (program=<Application demo::1.0.0>, programType=<ProgramType elements::JeeApplication>)
at ModelLoader.performStep (step=ConvertModelStep)
at ModelLoader.loadModel (expansionSettings=F:\NSF\workspace\demo\conf\expansionSettings.xml)
2022.2.1 (2022-04-06)
Fixed
- [CompositeScanner] Expanded fix that prevents issues with model-extensions if those model-extensions were not expanded with CompositeScannerExpander yet
2022.2.0 (2022-04-04)
Added
- Expanded
<element>CompositeScannerclasses, which allow you to traverse the composite structure
2022.1.3 (2022-02-11)
Changed
- Cleaned up the XML export for DataCommand, ReferenceField and CalculatedField
Fixed
- Added
meta.prime-core.disableoption to disable automatically provided self-dependency
2022.1.2 (2022-02-10)
2022.1.0 (2022-01-12)
Added
-
[TaskElement] If the targetClass of a taskElement is not the details projection of the target element, one of the following options will be added to the taskElement to make expansion easier:
target.element.projection: If the targetClass matches one of the other projections of the target element, with the name of the projection as valuetarget.class.custom: If the targetClass cannot be matched, with the className as value
-
It will possible to use these options instead of the
targetClassfield when all of the relevant expanders have been updated. -
TaskElementComposite now also has a method
getTargetParameterClass()to decide the target class instead of the free-for-all that istargetClass. -
[ValueFieldType] Added several utility methods to ValueFieldTypeComposite to reduce complexity in mapping files
-
[Field][ConnectorField] Added
getJavaType()to get the type used in pojo's -
[FieldOperatorPair] Added
getJpqlOperator()to map the operator to the correct JQPL operator -
[FlowElement] Added a number of additional fields:
- Added
targetElement, containing a reference to the target DataElementComposite - Added
batchFinder, containing a reference to the finder used to retrieve a batch - Added
targetField, containing a reference to the status field
- Added
-
[Several elements] Added
getQualifiedName() -
Added support for
aggregation: compositeon fields that have no reverse field -
[ModelSpecBuilder] Added
buildAndFindRawComposite()for building composites without enrichment
Fixed
- Fixed
fieldandfinderdataRefs being exported withoutcomponentanddataElementattributes for external metamodels
2021.10.1 (2022-01-03)
Fixed
- Fixed issues if
ConnectorField::fieldTypewas not provided - Prevent FieldTreeToXml from omitting
fieldType
2021.10.0 (2021-12-13)
Added
- Added PrepareModelStep, which resolves all modelDirectories and settingsDirectories and loads model extensions (instead of this being part of ReadModelStep)
Changed
- Cleaned up ApplicationInstance XML export
Fixed
- Fixed order of components in Application
2021.9.0 (2021-12-06)
Removed
- Removed
CLIENT_LAYERfromJeeComponentmoduleType; the client layer will no longer be expanded- To expand client layer, a custom ModuleType stack must be used
2021.7.0 (2021-11-24)
Added
- Switched to a new transitive expansionResource dependency resolver
- prime-core and metamodel-runtime dependencies are now resolved from expansionResources dependencies
Fixed
- Cleaned up export of ExpansionSettings and Technology
- Fixed export of
aggregation: sharedfields - Fixed double-loading of prime-core data
2021.6.3 (2021-11-19)
Fixed
- Fixed some issues in CompositeToTree with model extensions not built with latest metamodel-stack
- Clean model extensions on ModelExtensionLoader::clean
2021.6.1 (2021-11-17)
Added
- Added newCompositeToTree to CompositeFactory
- Added support for writing extensions (for this to work, the metamodel of the extensions should also be expanded with metamodel-stack:4.1.8+)
- Added ProgramWriter interface and implemented it with ApplicationProgramWriter
- Added stubbing functionality to several elements in elements
Changed
- LinkField export now exports
targetElementinstead oftargetClassandtargetPackage
2021.6.0 (2021-10-20)
Changed
- 'Field::type' and 'Field::listValues' are now ignored in xml and no longer exported
2021.5.12 (2021-10-01)
- re-release 2021.5.11
2021.5.11 (2021-10-01)
Fixed
- Fixed mapping of technologies like
STRUTS2 ANGULARin conversion of presentationSettings
2021.5.10 (2021-09-29)
Fixed
- Changed module loading so that modules are loading in order of appearance of their moduleTypes. (Fixes issues elements dependency in metamodel-projects)
2021.5.9 (2021-09-27)
Added
- ApplicationProgramReader will now also look for application xml's without a version number
Fixed
- Added case for expandable metamodels when converting from ApplicationExpansionSettings to ExpansionSettings
- Made sure that only moduleTypes linked to the programType are used
2021.5.8 (2021-09-23)
Fixed
- Fixed backwards compatibility with classes using default constructor of DataWaterfallTableCompleter
2021.5.7 (2021-09-23)
Fixed
- Fixed tests not loading ModelLoadingSteps, thus breaking tests trying to test ModelLoadingListeners
2021.5.6 (2021-09-22)
Fixed
- Added a few missing technologies to be excluded from being automatically provisioned
2021.5.5 (2021-09-22)
Fixed
- When not using technologyStacks, technologies added by other expansion-resources will be enabled by default
2021.5.2 (2021-09-10)
Fixed
- Fix technologyDataRefXmlWriter not accepting regular DataRefs
- Added
setApplication(Vector<DataRef> application)method to ComponentTree for backwards compatibility
Re-release 2021.5.1
2021.5.0 (2021-09-10)
Added
- Implemented ModelLoadingListeners. Listeners can be defined in data-resources, they describe a model loading step to which to subscribe and an implementation that point to a java class. After the step in the model loading process has been performed, all listeners subscribed to that step will be executed.
<modelLoadingListener name="ExtractResourcesListener">
<modelLoadingStep name="ExtractResourcesStep"/>
<implementation>net.democritus.model.ModelLoaderTestListener</implementation>
</modelLoadingListener>
Fixed
- Fixed issue with data-children pointing to data-elements of a component contrary to the component dependency.
- Fixed issue with duplicate DataWaterFallTable elements
2021.4.0 (2021-08-19)
Added
New Model Loading infrastructure:
- Introduced the
ModelLoaderclass, which handles all model loading, from reading the expansionSettings file up to configuring expansion. - Added Programs and Module. You can register new ProgramTypes and ModuleTypes in dataResources. You can then reference them in the expansionSettings file, so that models are loaded with the information from the types. This allows you to define new meta-models, detached from Application and Component
- Technologies are now properties on the Program- and ModuleComposites, which are set during model loading. They are based on TechnologyStack settings, or, in case none are defined, GlobalOptionSettings, BusinessLogicSettings etc.
- LayerTypes are properties of Program- and ModuleTypes. Only layers included in the program- or moduleType will be expanded. (This is combined with no*Layer options)
Interface changes
- The
convertOptions()methods on the TreeToComposite classes have been moved to separateCompositeEnricherclasses. - The
transformTree()methods on the TreeToComposite have been deprecated in favour of theconvertTree()methods, which do not use the CompositeEnricher.
2021.3.1 (2021-07-15)
Changed
- [finders] FunctionalKey no longer requires
findBy<fkFields>finder (also requires expanders 4.19.2+)
2021.3.0 (2021-07-05)
Changed
- [onion-spec] FieldOperatorPairs now support long (>2 characters) operator names (
finder("findByCountryNotnull"), etc.) - [onion-spec] Default applicationInstanceSpec now uses
technicalInfrastructure.javaVersion: 1.8instead of null - [xml]
<field>element no longer requires<fieldType>child, unless it is<fieldType>CALCULATED_FIELD</fieldType> - [finders]
findAll<DataElement>sandfindByNameEq(except with dataOptionnameNotWanted) are now auto-created if not defined in the model [NSX-169]- to ensure consistent output even if the finders are defined by a user, findAll is now always moved to be the first finder, and findByNameEq (if present) the second
- this change applies to test specs as well
2021.2.2 (2021-06-18)
Fixed
- Fixed an issue that caused unorthodox expansion-resource versions to throw exceptions, which lead to PrimeDataLoader failing to load dataResources in tests.
2021.2.1 (2021-06-15)
Fixed
- Fixed the loading of prime-data and other DataResources during tests, so that it only loads the DataResources from the most recent expansion-resources versions in the classpath. This fixes some weird issues of tests failing with a newer version of prime-data etc.
2021.2.0 (2021-06-15)
Added
- Added
valueListTagfield to ConnectorField to define tagValuePair tag for listFields in commands.
2021.1.3 (2021-05-31)
Fixed
- Fixed PrimeDataLoader so that it uses the correct ClassLoader, to fix issues with tests failing because the correct dataResources weren't loaded. This should fix issues like tests randomly failing because of a missing LayerType or missing ModelExtension.
2021.1.2 (2021-04-15)
Added
- Added options for database id generation strategies + cascading through the model
- Added support for Application extensions. You can now target
elements::Applicationwith themeta.composite.extensionoption
2021.0.1 (2021-04-09)
Added
- Added sources jar assembly for prime-core including its dependencies
Fixed
- Removed DirectedRelationship requiring findByNameEq finder, as it is no longer needed
2021.0.0 (2021-02-24)
Changed
- XSDs changed namespaces
to
https://schemas.normalizedsystems.org/xsd/prime-core/<major>/<minor>/<patch>/<elementName>- these URI are also URL (available online)
Fixed
- [onion-spec] Fix GlobalOptionSettings being null in some test cases
Added
- Merged 2020.12.1
2020.14.0 (2020-12-02)
Added
- DirectedRelationships are now enabled for all Applications
- Added description fields to ExpansionResource, Expander and AdditionalExpansionStep
Updated
- Updated metamodel-stack 3.2.0 -> 3.2.1
2020.13.2 (2020-10-29)
- internal fixes
2020.13.1 (2020-10-29)
- internal fixes
2020.13.0 (2020-10-29)
Added
- Component is now an extendable element. This means that you can create an element with
option
meta.composite.extensionand parentelements::Component. The instances of that element will then be read and expanded as a part of a component. - Introduce
prime-test-supportto replace direct dependencies toelements-onion-specandexpansionControl-onion-spec
2020.12.1 (2020-10-28)
Fixed
- Added runtime backwards compatible constructors and methods using TreeToCompositeMappingContext instead of interface CompositeMappingContext
- Fix issue with types not being provisioned in dataRegistry when using register(Collection) methods
2020.12.0 (2020-10-20)
Added
- prime metamodel is now distributed as
net.democritus.metamodel:prime-metamodel- replaces older
net.democritus:prime-metamodel
- replaces older
- updated metamodel-stack 2.1.0 -> 3.0.0
2020.10.3 (2020-10-12)
Added
- Use metamodel-expanders 2.1.0 to expand composite-registrars
Changed
- Elements and expansionControl artifacts now follow version of prime-core
Fixed
- Fixed issue in DataProjectionBuilder where
setMappingContext()method was not backwards compatible
2020.10.2 (2020-09-09)
no changes
2020.10.1 (2020-09-08)
- Set correct SourceBase for import into PR
2020.10.0 (2020-09-08)
- Created prime-core managing all things prime-metamodel
- for older history see elements-ioxml CHANGELOG