prime-core
2022.11.1 (2023-01-25)
Fixed
- Skipping FlowBatchFinderCompleter if targetElement is not defined toi avoid nullpointerexceptions
Added
- [VEGA-235] Added uppercase and lowercase format options to
db.tableName.format
2022.11.0 (2023-01-04)
Added
- Added UniqueConstraints to DataElement, this can be used to define a set of Fields that together should be unique for each instance.
Fixed
- Fixed model extensions ignoring clean parameter
- Fixed bug causing aliased options to start duplicating on export
2022.10.9 (2022-11-25)
Fixed
- Fixed warnings appearing for auto-enabled options
- Fixed options not having
origin: file
metadata
2022.10.8 (2022-11-25)
Fixed
- Options did not cascade correctly from
ApplicationInstance
, because they were only copied to Application after the cascading process.
2022.10.7 (2022-11-24)
Changed
- Moved cascading for
includeCsvImport
andincludeCsvExport
options to option types. - Moved cascading for
experimental.persistence.*
options to option types.
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
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 dataorigin.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 programmodule.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.0 (2022-08-10)
Added
Field.javaObjectType
which returns the type forjava.util.ArrayList
, orjava.util.Vector
if the optionlegacy.vectorCollectionType.reenable
is found on the application.ConnectorField.javaObjectType
which returns the type forjava.util.ArrayList
, orjava.util.Vector
if the optionlegacy.vectorCollectionType.reenable
is found on the application.
Changed
Field.javaType
now returns the type forjava.util.List
instead ofjava.util.Vector
, unless the optionlegacy.vectorCollectionType.reenable
is found on the application.ConnectorField.javaType
now returns the type forjava.util.List
instead ofjava.util.Vector
, unless the optionlegacy.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.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 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
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
andcustomRepository
onApplication
andComponent
- Removed
customBase
,expandBase
,expanderVersion
anddeployBase
fromApplicationInstance
- 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)
Fixed (N/A)
- Maven plugin outdated
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
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 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: composite
on fields that have no reverse field[ModelSpecBuilder] Added
buildAndFindRawComposite()
for building composites without enrichment
Fixed
- Fixed
field
andfinder
dataRefs being exported withoutcomponent
anddataElement
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
fromJeeComponent
moduleType; 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: shared
fields - 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
targetElement
instead oftargetClass
andtargetPackage
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 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.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
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 separateCompositeEnricher
classes. - 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.8
instead of null - [xml]
<field>
element no longer requires<fieldType>
child, unless it is<fieldType>CALCULATED_FIELD</fieldType>
- [finders]
findAll<DataElement>s
andfindByNameEq
(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
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 themeta.composite.extension
option
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.extension
and parentelements::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 toelements-onion-spec
andexpansionControl-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 meta-model-stack 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