Changelog prime-core

Filter x

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 meta-model-stack.

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)


Fixed (N/A)

  • Maven plugin outdated

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 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