Skip to main content

nsx-metamodels


2026.5.0-rc2 (2026-09-16)​

Added​

  • Added loadAvailableModules as a ModuleLoadingParameter. When set to true all models available through a ModuleManifest are loaded in addition to the available ProgramExpansions.
  • [NSX-653] Added TaskElementTypes and TaskTransactionTypes
  • Added programType tag #context.mapping.isolate to use a forked MappingContext instead when loading programs. Only supports isolation for metamodels expanded with 2026.5.0+.
  • Added MappingContext interface to support mapping isolation and parent context injection.

Changed​

  • Re-arranged contents of the prime-core ontologies:
    • expansionControl now 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.
    • values now 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.
    • elements now depends on expansionControl and values.
  • Note: The goal is to make everything less dependent on elements and to allow it to become fully standalone in the future.
  • Deprecated ApplicationDirectory and ComponentDirectory in 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 declaredDependencies method 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 modelVersion field to expansionSettings and expansionResource to provide better feedback when the configuration causes a mismatch.
  • Added isOptional to expansionResource dependencies to indicate the dependency does not participate in dependency resolution.
  • Added resolution tree information to ResolveResourcesResult.

Changed​

  • Changed declaredDependencies reference to a general metamodel concept, removing the elements ontology requirement.
  • Changed dependency formatting in xml to <import> tags at the top of the model file.
  • Update ExpansionControl modelVersion 2025.14.0 > 2026.0.0 to 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.path metadata when exporting Programs and Modules.
  • Added model error when enabling program/module dependencies without a dependency on the elements ontology.
  • Added missing element role mixed to dataResources outside ontology-metamodel-expanders.
  • Added expansion of module support classes for program elements. Such that a program can be included as a module of another program.
  • Added profile Standalone Metamodel which removes '#meta.dependencyDeclaration' due to its requirement for the elements ontology.

Changed​

  • Exclude from property 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 ontologyDependencies to 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 local dependencies to not include .xml.xml as 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 tags fields to ProgramType and ModuleType. This can be used to define tags which should be applied to every element using that Program- or ModuleType.
  • Added scope field to ElementTagType, which describes where the tag can be used (can be Profile, Expander API or Internal).
  • 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 was null and the tag was valid for root.
  • Fixed issue causing the order of components to change.

Changed​

  • [Tag rules] existsIn(property, tags...) and where(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.allowDuplicates to 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 isLinkDriver options.

2025.16.0 (2025-12-23)​

Added​

  • Added dependencies to Program.
  • Added logic to ProgramDependenciesResolver to populate program dependencies.
  • Added SpecModelDependencyResolver to resolve modules with the spec moduleGroup.
  • Added support for spec modules 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 ontologyImports and ontologies directories.

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.1 (2025-12-10)​

Fixed​

  • Fixed compile issue in ModuleFactoryExpander.

2025.15.0 (2025-12-10)​

Added​

  • Added ModuleManifest data ElementClass to elements. These elements represent modules, local or provided by expansion-resources. ModuleManifests can be provided as a DataResource, or resolved dynamically by a ModelDependencyResolver.

    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 3 profile to expand your metamodel.

  • Added expanders for Program- and ModuleFactories, enabled with Standard Metamodel 3 profile.

  • Added extra project modules to package the metamodels, enabled with Standard Metamodel 3 profile.

  • Added project module that bundles the metamodel and core resources, enabled with Standard Metamodel 3 profile.

  • 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 the AsNativeType interface to enhance defaults for NativeTypes.

    • Implemented AsNativeType for JavaType and JavaClassName.

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 setParent method to only expand for extensions.
  • Fixed getJpqlOperator to null-check valueFieldType and support like_parameter nativeType.

2025.13.2 (2025-11-24)​

Fixed​

  • Fixed compile errors in metamodel core module due to prime-builders dependency.

Removed​

  • Removed prime-builders dependency as it is now included in the prime metamodels themselves.

2025.13.1 (2025-11-21)​

Fixed​

  • Fixed expansion by path not working due to missing expansionSettings reference.
  • Fixed getExtensionName for 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 path property 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 as foo::, 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 StringMail and StringPass valueFieldTypes, which caused them to be mapped incorrectly. They now behave as ordinary Text fields.
  • Fixed issue where LinkFieldOppositeCompleter failed 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.resolveFor api 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 TypeAware implementation for CalculatedField, ConnectorField and FieldOperatorPair.

Changed​

  • Updated Field, ValueField, LinkField to delegate resolution to ValueType or LinkFieldType.

2025.10.1 (2025-10-16)​

Fixed​

  • Fixed XSD files with placeholder in xmlns attribute.

2025.10.0 (2025-10-16)​

Added​

  • Added value and usage fields to the NativeType elementClass.
  • Added elements::DerivedNativeType data elementClass.
  • Added TypeAware interface which can be added to an elementClass by adding the meta.nativeTypes.typeAware option.
  • 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-logic and elements-io-xml have been replaced with elements-model.
  • expansionControl-composite-logic, expansionControl-composite-logic and expansionControl-io-xml have been replaced with expansionControl-model.
  • elements-onion-spec and expansionControl-onion-spec have been merged into prime-test-support.
  • The applicationExpansionSettings field in ExpansionConfigurationComposite remains, but will now always be null.

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 not exportAsFile().
    • DataElementXmlWriter only has exportAsFile().
  • Similarly, XmlReader classes only have relevant import methods:
    • importFromGroupFile() only appears for data elementClasses.
    • 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-expanders are no longer part of the new nsx-metamodel releases.
  • metamodel-expanders has been removed from the nsx-metamodel-stack.
  • The GenerateMetamodelApplication transmuter is no longer necessary and has been removed from metamodel-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, TaskOption and ExpansionOption have been removed.
  • The getter and setters on the composites of each related element have been removed.
  • The related ~OptionType elements van been removed.
  • Logic has been added so that DataResources defining specific optionTypes are instead read as OptionType instances.
  • The ElementOptionTypeToGenericConverter model 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 ExpansionSettingsBinaryToXmlRunner class has been removed.
  • Removed the ElementOptionConverter and OptionConverterLookup classes.
  • Removed logic in enrich step running for Components with the enableComposites option (only relevant for metamodel projects).
  • Removed ExpansionJobManager class in prime-core which clashed with the interface is expanders-core.
  • Removed ExpanderFeatureTest, MappingTest and TemplateTest elements.

2025.8.9 (2025-12-12)​

Fixed​

  • Fixed issue in several ModelLoadingListeners causing problems multiple program expansions.
  • Added findAllInstances() methods to CompositeElementFinder to replace findAll(). 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 of findAllInstances().

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 type attribute 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 isDerived flag to Attribute and Reference. If set to true, they will not appear in the Tree or XML representation. Values must be provided during the enrich step.
  • [metamodels] Added isRequired flag to Attribute.
  • [metamodels] Added format association to DataType, and a Format data 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.
  • [metamodels] Added metamodel-common ExpansionResource, 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 -core pom.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 the Standard Metamodel profile. Use Standard Metamodel 2 to 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.

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 BigString to 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 Double and BigString primitiveTypes.

Changed​

  • Refactored meta-metamodel to ontology-metamodel-expanders.
  • Changed generated XSD to use xs:all to 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-core contains CompositeBuilder classes.)

2025.4.0 (2025-04-30)​

Added​

  • Added isIdentifier flag 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 replaces in 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-xml XSDs to use lax checking for the options list.
  • [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() and where().
  • [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 includeTransitiveClassPathDependencies option 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..1 composition 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-options and provide-options goals. So if we want another listener to run before, we can set the timing to before process-base-options or before provide-options, whichever is most applicable.

Changed​

  • The PostReadApplicationInstanceOptionCopier listener has been replaced with ApplicationInstanceOptionCopier, 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-version mojo of the expanders-maven-plugin.

2024.7.0 (2024-11-05)​

Changed​

  • [ontology-metamodel-expanders] Renamed the meta.element.extendable option to meta.composite.extendable to 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.*.extendable option.
  • [ontology-metamodel-expanders] Fixed compile error in CompositeTree for 0..1 composition references.
  • [ontology-metamodel-expanders] Fixed XML containing null as 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.simple option. (requires meta.compatibility.xml.legacyRefs)

2024.4.5 (2024-08-07)​

Changed​

  • DataResourceLoader can now use origin.expansionResource.path on 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​

  • MigrateMetamodelApplication transmutation did not migrate ioxml.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.tagName as defined in option types rather than meta.xml.tagname.

2024.4.2 (2024-07-19)​

Fixed​

  • [NSX-497] Reverted addition of functional key name for TechnologyLexicon. This was used without an explicit name historically, resulting in backwards compatibility issues.

2024.4.1 (2024-07-15)​

Changed​

  • Changed aggregate references 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 name
    • sortName: name used for sorting of expansion-resources
    • labels: any number of descriptive labels regarding the content and use of the resource
  • Added replaces field to ExpansionResource, which will be used to prune older artifacts during resolution.
  • Added isTransitive field to ExpansionResourceDependency. 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 replaces and isTransitive fields 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 with isTransitive.

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 be default instead of public.
  • Fixed abstract types in XSD to allow the type attribute 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 Transmuters for 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.13 (2024-06-12)​

Fixed​

  • Fixed modelWriter incorrectly writing null fields.

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.legacyRefs is 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 null instead of 0.

2024.3.9 (2024-06-07)​

Added​

  • Added support for abstract non-collection fields to model builders.
  • Added OptionType for meta.xml.namespace.
  • Added group attribute to ontology, which needs to be provided if it is to be imported in other metamodels.

Fixed​

  • Fixed model builders not removing ElementOptions when removeOption(String) is used.
  • Fixed XMLWriters exporting parentReference and domainName.

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 export element 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 Optional instead of Options.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.2 (2024-04-24)​

Fixed​

  • Fixed option merging not working in some circumstances.

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.2 (2024-01-09)​

Fixed​

  • Fixed issue with model-extensions due to changes in the metamodel

2024.0.1 (2024-01-09)​

Fixed​

  • existsIn() and where() 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 to true, 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() and asSimpleValueType() 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() and asSimpleValueType() methods from the ValueFieldTypeComposite.
    • ValueType can now be extended by other ontologies.

Fixed​

  • ReferenceToParentRule now takes inherited attributes into account.

2023.9.6 (2023-11-22)​

Fixed​

  • The GenerateMetamodelApplication transmutation 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-runtime library with includeClassPathDependencies functionality.

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.imports to 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. >=9 or <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, documentationLink and hidden to OptionType.

Changed​

  • Cascading options are now resolved recursively. Before only options defined on Program and Module elements would cascade.

2023.5.4 (2023-08-11)​

Added​

  • Added config elementRole to meta-metamodel.

2023.5.3 (2023-07-13)​

Changed​

  • Updated nsx-runtime from 2023.4.0 to 2023.5.0

2023.5.2 (2023-06-29)​

Added​

  • Added TaskOutcome to prime-metamodel.

2023.5.1 (2023-06-29)​

Fixed​

  • Added missing meta-core dependency to prime-metamodel.

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.1 to 2023.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 to true, 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 alwaysEnabled and validUntil to 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 isStatusField to fields with the name status and type java.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.xml file, instead it looks for files with dataResource as root tag.
  • Added DataResourceValidator to validate data-resources.

Fixed​

  • Fixed NullPointerException in TestModelBuilder#extendModel() if buildModel() 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.1 (2023-04-12)​

Added​

  • Fixed issue with implicit name finder

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.3 (2023-02-08)​

Fixed​

  • Updated model-transmutations v1.2.4-SNAPSHOT -> v1.4.0

2023.0.2 (2023-02-01)​

  • Re-release 2023.0.1

2023.0.1 (2023-02-01)​

Fixed​

  • Recovered logic defining UniqueConstraint::name

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 oppositeField to 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 with defaultvalue.
  • 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.3 (2022-09-26)​

Fixed​

  • Fixed PrimeDataLoader forgetting about aliases of OptionTypes

2022.8.2 (2022-09-23)​

Updated​

  • Updated metamodel-stack version to 4.9.4

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 instead
  • alias: 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 expansionSettings would appear in XML as a child of SettingsDirectory

2022.6.3 (2022-09-01)​

Added​

  • Add metadata to data-resources
    • origin.dataResource.path defines the path of the dataResource that was used to load this data
    • origin.expansionResource defines the expansion-resource that this data was part of
  • Add metadata to programs and modules
    • program.type defines the ProgramType used to load the program
    • module.type defines 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.javaObjectType which returns the type for java.util.ArrayList, or java.util.Vector if the option legacy.vectorCollectionType.reenable is found on the application.
  • ConnectorField.javaObjectType which returns the type for java.util.ArrayList, or java.util.Vector if the option legacy.vectorCollectionType.reenable is found on the application.

Changed​

  • Field.javaType now returns the type for java.util.List instead of java.util.Vector, unless the option legacy.vectorCollectionType.reenable is found on the application.
  • ConnectorField.javaType now returns the type for java.util.List instead of java.util.Vector, unless the option legacy.vectorCollectionType.reenable is found on the application.

2022.5.8 (2022-06-09)​

Fixed​

  • Added legacy option legacy.finders.keepOrder to 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.6 (2022-05-20)​

Fixed​

  • Fixed ElementOptionTypeToGenericConverter failing on optionTypes file

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 isCustomFinder when provided by generic option() 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.3 (2022-05-17)​

Fixed​

  • Updated metamodel-stack 4.7.3-SNAPSHOT -> 4.7.3

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 classPathResources to 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 disabled fields on the metamodel
  • Removed modelRepository and customRepository on Application and Component
  • Removed customBase, expandBase, expanderVersion and deployBase from ApplicationInstance
  • 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>CompositeScanner classes, 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.disable option to disable automatically provided self-dependency

2022.1.2 (2022-02-10)​


2022.1.1 (2022-02-10)​

Updated​

  • Updated metamodel-stack to 4.3.2

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 value
    • target.class.custom: If the targetClass cannot be matched, with the className as value
  • It will possible to use these options instead of the targetClass field 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 is targetClass.

  • [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
  • [Several elements] Added getQualifiedName()

  • Added support for aggregation: composite on fields that have no reverse field

  • [ModelSpecBuilder] Added buildAndFindRawComposite() for building composites without enrichment

Fixed​

  • Fixed field and finder dataRefs being exported without component and dataElement attributes for external metamodels

2021.10.1 (2022-01-03)​

Fixed​

  • Fixed issues if ConnectorField::fieldType was 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_LAYER from JeeComponent moduleType; the client layer will no longer be expanded
    • To expand client layer, a custom ModuleType stack must be used

2021.8.1 (2021-11-01)​

Fixed​

  • Add backwards compatible imports for changes in expansionSettings xml

2021.8.0 (2021-11-30)​

Added​

  • Added modelDirectories field to expansionSettings

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: shared fields
  • Fixed double-loading of prime-core data

2021.6.4 (2021-11-22)​

Fixed​

  • Added missing ProgramWriter implementation

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.2 (2021-11-17)​

Updated​

  • Updated metamodel-stack to 4.1.8

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 targetElement instead of targetClass and targetPackage

2021.6.0 (2021-10-20)​

Changed​

  • 'Field::type' and 'Field::listValues' are now ignored in xml and no longer exported

2021.6.0 (2021-10-20)​

Added​

  • Added better support to write modules

2021.5.13 (2021-10-20)​

Removed​

  • Removed all warnings about unexpected elements in the XML's

2021.5.12 (2021-10-01)​

  • re-release 2021.5.11

2021.5.11 (2021-10-01)​

Fixed​

  • Fixed mapping of technologies like STRUTS2 ANGULAR in 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.4 (2021-09-20)​

Changed​

  • Always call ResourceFetcher whether the resource exists or not

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.2 (2021-08-31)​

Fixed​

  • Fixed View Implementation Technologies not being mapped correctly

2021.4.1 (2021-08-23)​

Fixed​

  • Fixed program variant not being filtered during ReadModel step

2021.4.0 (2021-08-19)​

Added​

New Model Loading infrastructure:

  • Introduced the ModelLoader class, 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 separate CompositeEnricher classes.
  • The transformTree() methods on the TreeToComposite have been deprecated in favour of the convertTree() 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.8 instead of null
  • [xml] <field> element no longer requires <fieldType> child, unless it is <fieldType>CALCULATED_FIELD</fieldType>
  • [finders] findAll<DataElement>s and findByNameEq (except with dataOption nameNotWanted) 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 valueListTag field 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::Application with the meta.composite.extension option

2021.0.3 (date n/a)​

Fixed​

  • Redeployment of 2021.0.2

2021.0.2 (2021-04-09)​

Reverted​

  • Reverted sources assembly for now due to deployment conflicts

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.1 (2020-12-02)​

Fixed​

  • fixed redeployment of 2020.14.0

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.extension and parent elements::Component. The instances of that element will then be read and expanded as a part of a component.
  • Introduce prime-test-support to replace direct dependencies to elements-onion-spec and expansionControl-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
  • updated metamodel-stack 2.1.0 -> 3.0.0

2020.11.0 (2020-10-15)​

Added​

  • prime metamodel is now part of prime-core-project

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