expanders
9.5.0 (2026-06-11)
Added
- Add optional
StaticFileServletfor environments that cannot rely on the default servlet
Changed
- Added ResourceVersionConstraints to avoid conflicts with older versions of
Expanders - Removed dummy module
field-type-expanders - Removed dummy module
functional-key-expanders - Removed
Expandersmodule (all expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. have been moved to smaller modules in9.4.0) - Enable
#control.web.defaultServletby default is standard-api is available instead of by option
9.4.0 (2026-03-31)
Changed
- Moved all code from
Expandersinto dedicated modules:jee-knockout-menu-expandersjee-translation-expandersjee-proxy-logic-expandersjee-ear-packaging-expandersExpanderswill depend on all of them for backwards compatibility
9.3.0 (2026-03-03)
Added
- Several expansion steps can now be disabled by providing the relevant tags:
#harvest.ext.disabledisables ext directory harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories..#harvest.test.disabledisables test directory harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories..#harvest.clean.disableddisables deletion of the harvest directory.#overlay.disableddisables the copying of the overlay directories.
- Added error handling in commands when fetching target details fails.
Changed
- Updated Maven plugins in expanded code:
org.apache.maven.plugins:maven-compiler-plugin:3.14.0 -> 3.14.1
- Updated prime-core from
2024.6.0to2025.11.0 - Moved subset of
Expanderstojee-ear-packaging-expanders
9.2.0 (2025-10-20)
Added
- Added
maven.classifieroption forelements::Libraryelements. This allows you to specify the classifier for a Maven dependency in such a data resource.
Changed
- Updated Struts2 from
6.7.4to6.8.0: - Updated Struts2 from
7.0.3to7.1.1:
9.1.0 (2025-10-02)
Fixed
- Updated
groupIdin ejb-ear POM file to be consistent with the other POM files.
Added
- Added support for Java 25.
9.0.0 (2025-08-05)
Due to the critical nature of
CVE-2024-53677at a9.5on the CVSS 4 scale, we've decided to no longer support the interceptorfileUploadin Struts2. Version 8.3.0 of ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. previously migrated all code using this interceptor to its replacement, theactionFileUploadinterceptor and theUploadedFilesAwareinterface. All custom upload actions must be migrated when upgrading to ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 9.x.
Added
- Introduced new
application-shared-struts2-jakartalibrary to target Jakarta EE. Currently intended only for testing with Struts27.0.3.
Changed
- The
application-shared-struts2library is now built against JEE 6 instead of JEE 5, since we already dropped support for JEE 5.
Removed
- Removed deprecated
fileUploadinterceptor. (CVE-2024-53677) (See WW-5386)
8.5.1 (2025-07-29)
Fixed
- Replaced dependency on
commons-lang3in Struts2 with version3.18.0. (CVE-2025-48924)
8.5.0 (2025-07-10)
Changed
- Updated dependencies in expanded code:
org.apache.maven.plugins:maven-ear-plugin:3.0.2 > 3.4.0org.codehaus.mojo:build-helper-maven-plugin:3.4.0 > 3.6.1
- Updated
nsx-runtime:2024.3.0 -> 2025.0.0
8.4.0 (2025-05-12)
Added
- Added custom and feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to
struts-conversion.propertiesandstruts-validators.xml.
8.3.1 (2025-04-23)
Fixed
- Added missing coordinate redirection for
jakarta.ejb.NoSuchObjectLocalException.
8.3.0 (2025-04-22)
Added
- Added the
actionFileUploadStruts interceptor to thejsonEntererStackandjsonCommandStackinterceptor stacks. - Added
interfacesfeature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to theEntererActionclass. - Added the option
experimental.struts.security.enforceAnnotatedParametersto enable strict use of fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in Struts actions that are annotated with@StrutsParameter.
Changed
- Updated
ImporterActionto use theactionFileUploadinterceptor, as thefileUploadinterceptor was deprecated in Struts 6.4.0. - Marked fieldsFieldA property of a DataElement expanded to a database column and user interface input element. that take input for requests with
@StrutsParameterinterface in preparation to allow the use of input filtering for additional security:CommandPerformerActionEntererActionFindActionFullProfileAccessRightsActionGetApplicationPropertiesActionGetComponentMetaDataActionGetDataElementMetaDataActionGetFindersForDataElementActionGetMenuActionImporterActionProjectorActionTranslateTextAction
- Updated dependencies:
org.apache.maven.plugins:maven-assembly-plugin:3.6.0 > 3.7.1org.apache.maven.plugins:maven-ear-plugin:2.9.1 > 2.10.1org.apache.maven.plugins:maven-ejb-plugin:3.0.1 > 3.2.1org.apache.maven.plugins:maven-surefire-plugin:3.1.2 > 3.5.3org.apache.maven.plugins:maven-war-plugin:3.3.2 > 3.4.0
Removed
- Removed unused fieldsFieldA property of a DataElement expanded to a database column and user interface input element. from
ImporterAction:uploadDataContentTypeuploadDataFileNamedownloadDirectory
- Removed file upload interceptor from
jsonFinderStackinterceptor stack instruts-header.xml.
8.2.0 (2025-04-14)
Changed
- Replaced deprecated interfaces in Struts2 runtime and expanded code:
com.opensymphony.xwork2.Action>org.apache.struts2.action.Actioncom.opensymphony.xwork2.ActionSupport>org.apache.struts2.ActionSupportcom.opensymphony.xwork2.ActionContext>org.apache.struts2.ActionContextcom.opensymphony.xwork2.ActionInvocation>org.apache.struts2.ActionInvocationcom.opensymphony.xwork2.Preparable>org.apache.struts2.Preparablecom.opensymphony.xwork2.interceptor.AbstractInterceptor>org.apache.struts2.interceptor.AbstractInterceptorcom.opensymphony.xwork2.util.ValueStack>org.apache.struts2.util.ValueStack
8.1.0 (2025-03-07)
Fixed
- Added a temporary dependency on the latest version of Freemarker in
application-shared-struts2, becausestruts2-coredepends on a version that is picked up by the maven-enforcer-plugin as a false positive for J8 bytecode incompatibility.
Changed
- Updated Struts2 from
6.6.1to6.7.4:
8.0.5 (2025-02-20)
Changed
- Merged v7.7.4 into v8.0.1.
- Fixed
noXLayeroptionType descriptions to be more consistent.
Fixed
- Updated SNAPSHOT dependency to data-layerLayerLogical separation of functionality within a single system/application, focused on code organization.-jpa-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to released version (1.1.0).
8.0.3 (2025-02-06)
Fixed
- Added dummy expansion resourcesExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion. for
field-type-expandersandfunctional-key-expanderswhich were removed in 8.0.0, so they override older versions in the dependency tree that still contain expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. that were moved to other bundles.
8.0.2 (2024-12-05)
- Merged v7.7.4 into v8.0.1.
Changed
- Updated applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.-data-protocol to v1.1.0 to port changes to ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. from v7.7.4.
8.0.1 (2024-11-25)
- Re-release 8.0.0 due to error in maven setup.
8.0.0 (2024-11-25)
Changed
- Changed pom expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. so that dependencies from LayerImplementations are only added once (Does not work if 2 layerImplementations with different technologies include the same library.)
- Moved
expanders-coreandexpanders-test-utilsto expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-core repository. - Moved several knockout expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to
web-styles. - Moved data and io features to
application-data-addons. - Moved projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. and other pojo class expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to
application-data-protocol. Expandersis no longer a fat jar.
7.8.3 (2025-02-13)
Fixed
- Fix ElementChildRetriever not using interface method for abstract parents.
7.8.2 (2024-11-07)
Fixed
- Added option
maven.layer.moduleon LayerType to indicate that the layerLayerLogical separation of functionality within a single system/application, focused on code organization. type must be included as a Maven module for a component in the JEE applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. project.
7.8.1 (2024-11-06)
Added
- [NSX-285][NSX-550] Added option
legacy.view.knockout.forceStruts2to force the use of Struts2 for the Knockout UI when the JAX-RS standard APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models. is enabled.
7.8.0 (2024-11-05)
Changed
- Updated Struts2 from
6.4.0to6.6.1. - The applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. root POM and component root POM now add dependencies on layerLayerLogical separation of functionality within a single system/application, focused on code organization. modules based on the model instead of a hardcoded template.
Removed
- Removed experimental option
experimental.maven.noViewPom.
7.7.4 (2024-12-05)
Changed
- [VEGA-393] Reverted change to Validator and Converter interfaces from 7.7.3.
- [VEGA-394] Reverted deprecations on DataElement artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. from 7.7.3.
7.7.3 (2024-10-08)
Changed
- [VEGA-392] Unique Constraints are now implemented in separate
{DataElement}Uniquenessclasses. - [VEGA-392] Unique Constraints will now ignore instances deleted with a soft delete (disabled fieldFieldA property of a DataElement expanded to a database column and user interface input element.).
- [VEGA-390] Fixed an issue with the
hasBridgeClassoption where the wrong method name would be used on a Local Agent. - [VEGA-383] Added
@DeprecatedtogetDetails()andgetDataRef()methods in several locations. - Added
@Deprecatedto remainingdelete(Long),getInfo(),getName()andgetId()methods. - Usage of deprecated interfaces, such as
IFieldValidatorand several specific converter interfaces has been removed. - Changed Struts validator classes to make use of the api provided by Struts instead of a handmade solution relying on reflection.
- Refactored logic in several places that still relied on deprecated methods.
7.7.2 (2024-08-12)
Fixed
- [NSX-454][VEGA-382] Fixed issues with
nullvalues in UniqueConstraint query.
Merged
- Merged 6.2.8 into master.
7.7.1 (2024-08-09)
Added
- Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to calculate methods
- Added option type for
feature.mapping.doNotInheritExpanderMappingandelementTypeon Feature. - Added option type for
isFindAllon FinderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. - Added option type for
parentLayeron LayerType.
7.7.0 (2024-08-03)
Changed
- The option
projection.detailsWithoutRefsis now cascading and available onComponentandApplicationas well. - Moved JAX-RS standard APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models. modules to separate project.
- Updated
nsx-runtime:2024.0.0 -> 2024.1.0 - Updated
hamcrest:2.2 > 3.0 - Updated
prime-core:2024.4.2 > 2024.4.3
7.6.0 (2024-07-24)
Fixed
- Added distinctive translation for
NefinderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. operator.
Added
- [NSX-285][NSX-411] Added openapi documentation for upload and download endpoints.
- [NSX-285][NSX-411] Description for
includedproperty of resource documents. - Added
SnefinderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. operation as negated variant ofSe.
Changed
- [NSX-285] Changed response code for successful file uploads to
200 OK. - [NSX-285] Retain file extension of uploads to improve file type identification with tika.
- [NSX-285][NSX-411] The JSON:API
typeparameter is now also specified with a single-value enum in the OpenAPI spec. - [NSX-285][NSX-411] Now expanding representation of reference and relationship schemas for specific DataElements instead of using a common schema in order to provide sufficient documentation depending on the context of where it is used.
- Updated
prime-coreto version2024.4.2.
7.5.0 (2024-07-10)
Added
- Added syntax for custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. In the ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact./Feature template, you can use
@custom:my-anchor-name, which will be translated to// anchor:custom-my-anchor-name:startand// anchor:custom-my-anchor-name:start, or whatever comment syntax is used in the generated artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.. (This uses the same logic for creating line comments as Features.) - [NSX-285][NSX-411] Added openapi documentation for applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.-level endpoints.
Fixed
- [NSX-480] ArtifactExpander now avoids resolving expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. model when retrieving artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. definition to prevent issues while testing Features.
- Updated parsing of
separatoroption for feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. so newlines are always translated correctly into the template. - [NSX-285][NSX-411] Updated openapi specification with correct response for filter endpoints.
7.4.10 (2024-06-27)
Added
- [NSX-285][NSX-411] Added error responses to openapi specification.
- [NSX-285][NSX-411] Added security documentation anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to openapi specification.
Changed
- [NSX-285][NSX-411] Split off common identifier parameter from resource endpoints in openapi specification.
7.4.9 (2024-06-26)
Fixed
- Knockout bindings to link the css stylesheets were not applied on the data page for csv import/export.
- [NSX-285][NSX-411] Added missing
relationshipselements where needed to the documentation of theGETendpoints.
Added
- [NSX-285][NSX-411] Initial documentation for
POST,PATCHandDELETEendpoints.
Changed
- [NSX-285][NSX-411] Moved the OpenAPI specification for the new standard APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models. into the
control/openapifolder under the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. expansion root. - [NSX-285][NSX-411] Split up the OpenAPI specification into multiple files per DataElement to make it more readable.
7.4.8 (2024-06-20)
Changed
- [NSX-285][NSX-464] Added support for
In/NotInfind operation. - [NSX-285] Added support for
Null/NotNullfind operation.
Fixed
- [Knockout] Fixed menu in io pages by replacing menu import with
app-menu.
7.4.7 (2024-06-19)
Fixed
- [NSX-285] ByteArray was incorrectly translated to OpenAPI specification.
- [NSX-285] Support for legacy custom ValueFieldTypes in OpenAPI specification.
7.4.5 (2024-06-17)
Fixed
- [NSX-285] Fixed uploading to correctly overwrite temporary file.
- [NSX-285] Content type was not correct in upload, now inferred with Apache Tika.
7.4.3 (2024-06-14)
Fixed
- Fixed incorrect refactor of variable in claims functionality for exposed fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
- [NSX-285] Corrected access right for download endpoints.
- Fixed an issue with
next()andprev()functions in Struts2 javascript agent, which did not take into account the 0-based pagination.
Added
- Added
perform(command)method to Struts2 agent in javascript - [NSX-285] Added aggregation access right for all upload or all download endpoints on a DataElement.
- [NSX-285][NSX-486] Added support for sorting on valuefieldsFieldA property of a DataElement expanded to a database column and user interface input element. in the standard APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models..
7.4.2 (2024-06-11)
Re-release with fix for merge conflict.
7.4.1 (2024-06-11)
Fixed
- [NSX-285] File up- and download endpoints now also marked as producing
application/vnd.api+jsonto return errors. - [NSX-285] Added the type of a resource to the resource not found error message.
Changed
- [NSX-285] Added
Content-Lengthheader for file downloads. - Replaced use of deprecated
net.democritus.mapping.Base64class in shared mapper class withjava.util.Base64. - Replaced usage of
applicationInstance.nameis several new ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. withapplication.shortName - [NSX-285][NSX-485] When a search fails due to a technical error, there's now a dedicated exception for that.
- [NSX-285][NSX-485]
IllegalStateExceptionexceptions are now caught and returned as an internal server error.
Removed
- Removed import for deprecated
net.democritus.io.ByteArrayConverterclass fromImporterAction. - [NSX-285][NSX-485] Removed placeholder
OopsSomethingWentWrongException.
7.4.0 (2024-06-10)
Added
- [NSX-285] Implemented
StandardApiRootFeatureto register JAX-RS providers at applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. level. - [NSX-285][NSX-423] Implemented file IO connector with up- and download endpoints for file uploads in the context of a specific fieldFieldA property of a DataElement expanded to a database column and user interface input element..
7.3.1 (2024-05-21)
Fixed
- Added missing
control.cruds.jaxrstag to the expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for DataCommands.
7.3.0 (2024-05-17)
Added
- [NSX-285][NSX-420] Implemented connectors to call commands through the JAX-RS standard APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models..
- Added options
projection.projector.providedandprojection.projection.providedfor DataProjectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.. When added, they disable the standard expansion for the Projector and ProjectionPojo respectively. - [NSX-397] Added option 'view.details.excludeId' for DataElement, which hides the id fieldFieldA property of a DataElement expanded to a database column and user interface input element. in the view template.
- [NSX-397] Added option 'view.details.exclude' for FieldFieldA property of a DataElement expanded to a database column and user interface input element., which hides a fieldFieldA property of a DataElement expanded to a database column and user interface input element. in the view template.
Changed
- [NSX-285] Moved registration of API connectors in JAX-RS standard APIStandard API (stdAPI). A fully generated JAX-RS REST API expanding JSON:API compliant endpoints directly from JEE element models. for DataElements/Connectors to feature classes
instead of
web.xml
Merged
- Merged 6.2.6 into master
7.2.0 (2024-05-13)
Changed
- Moved
KnockoutToJaxrsClient,JaxRsApplicationActionsJsExpanderandJaxRsAgentJsExpanderto newknockout-jaxrs-stdapi-expandersresource inweb-styles. - Split off all expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. related to the standard JAX-RS API into a new
jaxrs-standard-api-expandersresource. - Moved standalone knockout features to new
knockout-ui-addons-expandersresource:BulkDeleteMultiselectDefaultValueFormLayoutConfigSearchBarTablePageSizeCommandButtonsWaterfall
7.1.3 (2024-05-06)
Merged
- Merged 6.2.4 into master
- Reverted removal of Example2Expander
Changed
- Updated dependencies:
net.democritus:nsx-jackson-support:1.0.0 > 1.1.0net.democritus:nsx-jaxrs-jersey-support:1.1.0 > 1.2.0
7.1.2 (2024-05-03)
Merged
- Merged 6.2.3 into master
Changed
- Struts app-actions now maps canAll for DataAccess.
7.1.0 (2024-04-29)
Fixed
- Fixed missing imports in Cruds for Ln06 relations.
Changed
- [NSX-285] Moved Jersey dependencies into
nsx-jaxrs-jersey-supportlibrary. - [NSX-285][QSEARCH-29] Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to route connector.
- Updated Struts2 from
6.3.0.2to6.4.0. - Updated
ognl:ognl:3.4.2 -> 3.4.3
7.0.8 (2024-04-19)
Added
- Added
session-propertiescustom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to app-menu
7.0.7 (2024-04-17)
Changed
- Moved Jackson dependencies into
nsx-jackson-supportlibrary. - Tag resolution logging is now optional. Add option
expansion.tags.logResolutionto expansionSettings to generate log files.
Added
7.0.6 (2024-04-09)
Fixed
- [NSX-285][NSX-459] Deny all anonymous access to JAX-RS API unless explicitly allowed.
- [NSX-285] Handle endpoint not found errors.
- [NSX-285] Handle unauthorized errors.
- [NSX-285] Handle method not allowed errors.
- [NSX-285] Handle method unauthorized errors.
7.0.5 (2024-04-03)
Added
- Added Endpoint for public properties at
/api/app/publicProperty. This can be used to retrieve OIDC configuration. - Added option
experimental.control.web.defaultServlet, which replaces the Struts2 for static files and pages.
Changed
- Access-rights now uses
app-actions#getDataAccessRights(). JAX-RS implementation is stubbed to show all buttons.
Fixed
- [NSX-457] Fixed logout link.
- Added missing native type for Short type when used with OpenAPI 3.
7.0.3 (2024-03-21)
Added
- [NSX-285] Added annotation feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to the endpoints for the JAX-RS API.
7.0.2 (2024-03-19)
Fixed
- [NSX-285] Moved all JAX-RS related runtime classes from
net.democritus.jaxrstonet.democritus.control.jaxrsto avoid conflicts.
7.0.1 (2024-03-18)
Fixed
- [NSX-453] Added a fix to the Struts2AgentJsExpander so that it can provide 1-based pagination where needed (e.g. with the new pagination in web-styles).
7.0.0 (2024-03-15)
Added
- [NSX-285] New experimental (and unfinished) JAX-RS API to replace Struts2 as the underlying generated API, which can
be enabled with the option
experimental.control.cruds.jaxrs. - [NSX-285] Added expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for view agent in knockout. This agent can communicate with either Knockout or JAX-RS. In several javascript files, the agent is now instantiated.
Changed
net.palver.navigation.GetMenuAction.findMenu()is now marked private.net.palver.navigation.ApplicationMenuParser.parseComponents2()is now marked private.net.palver.navigation.ApplicationMenuParser.parseComponents2()was renamed tonet.palver.navigation.ApplicationMenuParser.parseComponents().
Several ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. have been moved to common:
- ComponentDefaultTranslationExpander
- ComponentDutchTranslationExpander
- ComponentEnglishTranslationExpander
- ApplicationMenuExpander
- ComponentMenuExpander
Removed
net.palver.navigation.MenuPartEnum
6.6.1 (2024-03-27)
Fixed
- Fix an issue with #view.list.multiselect tag not being present on DataProjectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.
6.6.0 (2024-03-15)
Added
- Added support for static import in java. Define a static import
as
<uses type="static" eval="'my.class.myStaticProperty'"/>. - Import anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in templates can now pass parameters to the
ImportResolver (
@imports(param1, param2=value, param3=otherValue)) - Usage statements can now have a type, as seen with the static imports above.
- ExpanderRelocation DataResources can now be used to describe an ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. that moved to a new location. Features will be redirected to the new location. Harvest files will also be remapped if they still use the old artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. path.
Removed
- Removed implementation for expired option
legacy.maven.logicLayer.includeDataTestSources. - Removed implementation for expired option
legacy.noTaskPerform.reenable. - Removed implementation for expired option
showLinkDetails. - Removed implementation for expired option
vega.transient.taskBean.mImplementation.
6.5.0 (2024-02-02)
Fixed
- [NSX-424] Fix change in war pom.xml causing the
view/ext/commondirectory to be ignored - [NSX-412] The id of a details object is now always set to 0L at the start of the create method in the Cruds class
to fix issues with the value being null. There is a legacy option
legacy.cruds.disableId0OnCreatein case this somehow breaks custom code.
Changed
- The option
maven.groupIdis now automatically added if it is not defined, with the expected default value, so it is always present.
Removed
- Removed implementation for expired option
legacy.dynamicTaskDelegation.reenable.
6.4.4 (2024-01-25)
Fixed
- In tests for non-applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. programs, technologies are now all provided to the programComposite. This should fix some issues with layerImplementations in tests
6.4.3 (2024-01-25)
Fixed
- When using the default groupId that contains the name of the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution., dashes are now removed if they are part of the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. name..
6.4.2 (2024-01-22)
Fixed
- Fixed condition of ExporterAction, which didn't work correctly after introducing tags.
6.4.1 (2024-01-16)
Added
- ProgramExpansionContext and ModuleExpansionContext now have a list of LayerImplementations that are applicable.
- Added tags for bean interfaces.
Removed
- Removed LayerImplementationHelper.
Changed
- If a condition of a LayerImplementation returns
null, this is now interpreted asfalseinstead of throwing an exception.
6.4.0 (2024-01-09)
Added
- Added
.kebabCase(in addition to.kebab) as an ognl String attribute for consistency with other casings. - Added
kebabCaseformat and.asKebabCasestring attribute support to stringtemplates. - Added support for tags. Tags can be supplied by tag-rules. ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact., features and expansionSteps will only be enabled if all defined tags are present.
Changed
- Updated a number of expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. and features to use tags
6.3.0 (2024-01-03)
Merged 5.38.1 into main branch.
Removed
- Removed option
uniqueKey. Unique Constraints can instead be implemented with the UniqueConstraint Element. (See https://foundation.stars-end.net/docs/development/application-model/components/data-elements/uniqueConstraints/)
6.2.8 (2024-08-12)
Added
- [VEGA-373] Added custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for maven surefire plugin configuration. (cherry-picked from 7.7.2)
Fixed
- [NSX-454][VEGA-382] Fixed issues with
nullvalues in UniqueConstraint query. (cherry-picked from 7.7.2)
6.2.7 (2024-06-17)
Fixed
- [VEGA-379] Fixed issue in UniqueConstraint database query where ValueFieldType wrapper classes were not unwrapped.
6.2.6 (2024-05-16)
Fixed
- [VEGA-377] Fix class names for StrutsValidator/Converter classes of ValueFieldTypes where the name differs from the ValueClass
- [VEGA-375] Add userContext constructors to agents classes
6.2.5 (2024-05-06)
Changed
agentRepository.enableis no longer cascading, since cascading from applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. to component doesn't work yet in this prime-core version.
6.2.4 (2024-05-06)
Reverted
- [VEGA-375] Reverted change which removes ComponentProxyAgentsExpander. It is now available with the
option
agentRepository.enable.
Changed
- [VEGA-370][VEGA-367][VEGA-368] Created alias
common.name.alwaysPresentfor optionlegacy.nameNotWanted.pojoName. This option ensures the name fieldFieldA property of a DataElement expanded to a database column and user interface input element. is always present, even with thenameNotWantedoption. This ensures the behavior is the same as before version5.9.2. - [VEGA-375] The option
agentRepository.enablenow also adds the AgentIf interface to the Agent class in the Proxy layerLayerLogical separation of functionality within a single system/application, focused on code organization. to prevent compile errors.
[VEGA-370][VEGA-375][VEGA-376] Removed the deadline for following options:
agentRepository.enable/legacy.agentRepository.enablecommon.name.alwaysPresent/legacy.nameNotWanted.pojoNamelegacy.proxyAgentInterface.reenablelegacy.dynamicTaskDelegation.reenable
Though they will still generate deprecation warnings.
In addition, these options, except for agentRepository.enable, are now cascading, hence it is possible to only add
the option where the problem occurs.
6.2.3 (2024-05-03)
Changed
- [VEGA-376] TaskBean delegation is now part of the TaskElement BeanExpander and includes an
@anchor:implementationfeature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. - [VEGA-375] Created alias
agentRepository.enablefor optionlegacy.agentRepository.enable.
Reverted
- [VEGA-375] Reverted change which removes ComponentLocalAgentsExpander. It is now possible to enable the expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
by adding the option
agentRepository.enableto a Component or ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
6.2.2 (2023-12-15)
Fixed
- Added fallback in ArtifactExpander for ExpanderComposites without ElementType. This should fix some issues with backwards compatibility.
- Fixed issue that caused the ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. Mapping to still be resolved for Features with option
feature.mapping.doNotInheritExpanderMapping, sometimes causing assert errors.
6.2.0 (2023-12-14)
Fixed
- Fixed issue in AdditionalExpansionStep tests not resolving ExpandableElement correctly.
Changed
- [NSX-398] Introduced options and cleaned implementation/features for existing auditing functionality with fieldsFieldA property of a DataElement expanded to a database column and user interface input element. such
as
enteredAt. These are still implicitly added based on the name, but can also be explicitly defined on other fieldsFieldA property of a DataElement expanded to a database column and user interface input element. instead. The new options introduced match the following fieldsFieldA property of a DataElement expanded to a database column and user interface input element.:enteredAt: optionaudit.create.timestampenteredBy: optionaudit.create.authorlastModifiedAt: optionaudit.modify.timestamplastModifiedBy: optionaudit.modify.author
6.1.0 (2023-12-12)
Changed
- Change ArtifactExpander to use ExpandableElement when validating expansionSource.
- Change ModelBuilderFactory to use ExpandableElement when resolving element hierarchy.
- Updated Struts2 from
6.3.0.1to6.3.0.2. (AddressesCVE-2023-50164)
Fixed
- [VEGA-360] Fix struts-conversion properties file for ValueFieldTypes with name that differ from the valueClass fieldFieldA property of a DataElement expanded to a database column and user interface input element..
Removed
- Removed support for expired legacy option
legacy.dataDetailedConstructor.reenable.
6.0.2 (2023-11-16)
Reverted
- Returned linkFieldTypes data-resource, since the micro-radiant can still have issues loading the model because of this change. Will be removed again once the micro-radiant is updated.
6.0.1 (2023-11-15)
Changed
- Deprecated option
legacy.nameNotWanted.pojoName.
Removed
- [VEGA-358] Removed linkFieldTypes data-resource, since it is now defined in prime-core
6.0.0 (2023-11-09)
Fixed
- Fixed implementation of file comparison for copying files from expansion resourcesExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion.. The update to
commons-ioversion2.15.0changed its file comparison implementation, which broke it for virtual file systemsSystemA set of interconnected components that work together to achieve a specific purpose or function..
Added
- Added deprecation warnings in Maven build by default. Can be disabled with
maven.hideDeprecationWarnings.
Changed
- The expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. framework now targets Java 17. (Expanded code for the JEE applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. stack is still Java 8 compatible.)
- Refactored up various deprecated calls to reduce deprecation warnings.
5.39.0 (2023-11-08)
Added
- Added
interfacesfeature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to the Agent- and LocalAgentExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. - Added
execute-beforefeature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to several struts actions
Fixed
- [VEGA-351] Moved
<finalName>in ear pom.xml to<build>tag (see https://issues.apache.org/jira/browse/MEAR-260) - [VEGA-349] StrutsConverter and StrutsValidator classes are now correctly expanded even if a custom converter and/or validator have been defined on the ValueFieldType.
Changed
- Replaced use of AgentIf interfaces in FinderResolvers
Moved the expiration times of some options which were set to expire too far in the future for some reason:
- disableStrictLinkMode: 2024-09-01 to 2024-05-01
- disableFixNullableLn02: 2024-09-01 to 2024-05-01
- logging.cruds.degradeErrorToInfo: 2024-12-01 to 2024-05-01
- legacy.struts.unprotectedEndpoints: 2024-12-01 to 2024-05-01
Removed
- [VEGA-356] Removed the AgentIf interface from the Agent class. This can be reverted with the
option
legacy.proxyAgentInterface.reenable.
5.38.0 (2023-10-26)
Fixed
- [NSX-381]
FinderResolverdid not process IN fieldFieldA property of a DataElement expanded to a database column and user interface input element. operator pairs for collection linkfieldsFieldA property of a DataElement expanded to a database column and user interface input element. correctly whennullwas passed for that pair.
Added
- Added a debugger entrypoint to the
ConfigObjectMapper, allowing debuggers to attach to the mapping context. - Added option for Features,
feature.mapping.doNotInheritExpanderMapping. This disables the inheriting of mapping values from the ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. mapping file. It makes it easier to decouple the Feature. It also prevents issues in the tests caused by changes in the ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. mapping file. - Feature Composites in Tests are now enriched, so that options on Features can be used. Note that the use of these options are reserved for logic provided by expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-core.
Removed
- Removed TechnologyMapping class.
- Removed LayerConditionIsApplicable class.
5.37.5 (2023-10-20)
Changed
- Migrated all imports for BeanExpander to the new imports systemSystemA set of interconnected components that work together to achieve a specific purpose or function..
5.37.4 (2023-10-18)
Merged 5.30.8 into main branch.
Fixed
- Modules imported from model-resources are no longer harvested, even without the isBaseComponent option.
5.37.3 (2023-10-15)
Fixed
- Null/Notnull fieldFieldA property of a DataElement expanded to a database column and user interface input element. operator pairs were not filtered correctly from FinderResolvers in cases where they were paired up with fieldFieldA property of a DataElement expanded to a database column and user interface input element. operator pairs that did need to be resolved.
5.37.2 (2023-10-13)
Fixed
- Added import that is needed for required feature after refactoring of imports for Cruds.
5.37.0 (2023-10-12)
Changed
- Migrated many large expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to the new import systemSystemA set of interconnected components that work together to achieve a specific purpose or function. for expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact., to allow expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. features to make use of it.
Removed
- Removed support for deprecated option
experimental.valueFieldType.storageType. - Removed support for deprecated option
legacy.logic.entityManager.
5.36.6 (2023-10-06)
Fixed
- With changes to the way imports are added, the option
useLogicSecurityexpanded code that was missing an import in scenarios where a DataElement had no DataCommands.
5.36.5 (2023-10-04)
Fixed
HSTSFilterwas not registered correctly in some cases due to a mismatch in the package name generated for the class and its registration inweb.xml.
Changed
- Replaced uses of deprecated methods in expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. templates:
net.palver.util.StringUtil.join()net.palver.util.StringUtil.split()
Merged
- Merged
5.30.6into main.
5.36.4 (2023-09-27)
Fixed
- [NSX-373] Fixed duplicate custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
anchor:custom-delete-instance-button, replacing it withanchor:custom-delete-list-buttonfor the bulk-delete button.
5.36.3 (2023-09-26)
Fixed
- Fixed an issue when loading Components in a non-ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. program.
5.36.2 (2023-09-26)
Fixed
- Fixed an issue where
cruds.bulk.deletewould only work if the optionview.list.multiselectis added. The option should have been provided automatically. - Revert imports in knockout artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. to use
letinstead ofconst, because this was breaking too much custom code.
5.36.1 (2023-09-23)
Fixed
- Fixed
db.schemaanddb.tableNameto correctly apply alias for old naming.
5.36.0 (2023-09-22)
Added
- Added model loading listener to consolidate database schema and table name options, replacing behavior from prime-core.
- Added documentation link to all optionTypes documented on foundation.
Changed
- Renamed options, old name is available as an alias:
db.schema, previouslydatabaseSchemaNamedb.tableName, previouslydatabaseTableName
- In addition, made
db.schemacascading. It can now also be applied to components. - Deprecated options which had very similar behavior to other options:
hasDataSchemaNamehasDataBaseSchemahasDataTableName
- Updated
prime-coreto2023.8.0
5.35.1 (2023-09-22)
Fixed
- Updated expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for options, so they correctly works on ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and not just
ApplicationInstance:security.hstsHeaderexperimental.maven.speedOverSizecruds.bulk.deleteview.list.multiselectcruds.softDeleteOnModifystruts.disableStrutsErrorsToCommandResultstruts.unauthorized
- Fixed dependency on snapshot build.
Added
- Added
pascalCaseformat andtoPascalCasestring property to ST4 templating engine. - Added
pascalCaseformat to OGNL expression engine.
Changed
- Updated options to use cascading functionality of OptionType:
cruds.table.pageSizecruds.table.csvExportButton
5.35.0 (2023-09-21)
Fixed
- Changed
groupIdof every Maven module toorg.normalizedsystems.<Application.shortName>by default to avoid collisions between projects.
Added
- Added option
maven.groupIdto set thegroupIdfor all Maven modules in the project.
5.34.1 (2023-09-21)
Fixed
- Fixed issue in InstanceModelJsExpander that caused ln03 fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to be initialized incorrectly.
- Reverted change in CreateDialogJsExpander and EditDialogJsExpander that changed the form variable to a const. This was incompatible with custom code in some places, e.g. the assets component.
5.34.0 (2023-09-19)
Added
- Added ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. option
ejb.logic.dataSourcesFix. This changes the logic layerLayerLogical separation of functionality within a single system/application, focused on code organization. build to use the maven-assembly-plugin to include class files from the data layerLayerLogical separation of functionality within a single system/application, focused on code organization. instead including the source directories directly. This prevents the same source files from being compiled twice. It also fixes issues IntelliJ has with the multi-module project.
Fixed
- Fixed mapping that still using the
DataRef(String)constructor.
Changed
- Updated Struts2 from
6.3.0to6.3.0.1. - Marked option
finders.enableTypedFindersas redundant.
5.33.2 (2023-09-18)
Fixed
- [NSX-372] Fixed imports for Ln03 ConnectorFieldsFieldA property of a DataElement expanded to a database column and user interface input element. in CommandPojoExpander
5.33.1 (2023-09-12)
Fixed
- Replaced a left-over use in the
Crudsclass ofnew DataRef(Long)when using Ln05 fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
5.33.0 (2023-09-11)
Added
Added new syntax to mapping files (use xmlns="https://schemas.normalizedsystems.org/xsd/expanders/2023/1/0/mapping")
- A new syntax has been added to simplify imports
First, add an artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. definition. It defines the current artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. location and import resolution strategy.
Next, add uses statements to start adding imports. These statements can be interleaved with list and group statements.
<artifact this="dataElement.qualifiedName + 'Bean'" importStrategy="java"/>In the template, add<uses eval="'jakarta.ejb.Stateless'"/>@importsto insert the imports. groupstatements will now insert anullvalue in the model if their condition returns false and no other value with that name exists. The previous behaviour was to skip this value entirely. The result is that you can now use<if(group)>in the templates, even at root level.
Added 2 ArtifactImportStrategies, which can be selected in the artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. definition in the mapping file:
java: resolves imports for java files. Includes filters for duplicates, java.lang classes and same package.AMD: resolves imports for AMD styles js modules. The@importsline will be replaced withdefine([...], function(...) {.
Changed
- Marked methods for deprecation:
Bean.getDataRef(Long)Bean.getDetails(Long)Bean.getDetails(DataRef)
- Refactored various uses of deprecated methods of
ParameterContext. - In many places, the imports of files have been streamlined to reduce the number of redundant imports. This can mean that will need to add an import with custom code if the code made use of the import.
- All struts endpoints in the
nsx-json-applicationnow require authentication. - Updated Struts2 from
6.2.0to6.3.0. - All expansion runners were refactored to implemented
Consumable<T>instead ofIExecutor<T>:AdditionalExpansionStepRunnerArtifactExpanderRunnerArtifactHarvester
- Marked
net.democritus.acl.struts2.UserContextRetrieveras final.
Removed
- Removed all uses of
ParameterContextFactory. The optionlegacy.parameterContextFactory.enablecan temporarily be added on the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. to re-enable it. (Expires 2024-03-01) - Removed
Bean.getInfo(Long). (Deprecated since 2019-03-11) - Removed
{Component}Agentsclasses. The optionlegacy.agentRepository.enablecan temporarily be added on the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. to re-enable it. (Expires 2024-03-01) - Removed option
expanders.mappingReader.useSingleEqualsComparator, which was part of the original experimental mapping setup and not used anywhere. - Removed options
disableStrictLinkModeanddisableFixNullableLn02. These options had been added in version 4.0.1 to remain backwards compatible, but have now been officially removed. - Removed expired option
experimental.openjpa.CharacterColumnSize. - Removed expired option
legacy.cruds.getProjection.emptyOnError. - Removed expired option
legacy.projectionDetailedConstructor.reenable. - Removed deprecated method
ExpansionJobManager.runForAll(). (Deprecated since 2022-02-21)
5.32.1 (2023-08-29)
Changed
- Pushed back the expiration date of the option
showLinkDetailsby 3 months to 2024-01-01.
5.32.0 (2023-08-28)
Added
- Added
FinderResolverclass, which is called from the logic beanfind()method to resolve the DataRefs for fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in FieldOperatorPairs, so it is not required for the database identifier to be in the DataRef ahead of callingfind().
Changed
- Updated
ognl:ognl:3.3.4 -> 3.4.2 - Typed findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. are now enabled by default. The option
legacy.typedFinders.disablecan temporarily be added on the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. to disable this behavior. (Expires 2024-03-01) - Moved
maven-surefire-pluginto plugin management in root POM, as it is included by default by Maven. - Marked methods as deprecated for removal:
Agent.getDataRef(Long)Agent.getInfo(Long)Agent.getDetails_old(Long)Agent.getDetails(Long)
- [NSX-215]
Agent.getDetails(DataRef)now callsgetProjection()so it is consistent with the implementation inLocalAgent, which works with an unresolvedDataRef. - Moved
IParamTargetValueProviderfromnsx-runtimetoapplication-shared-struts2. - Updated
nsx-runtime:2023.5.0 -> 2023.6.1
Removed
- The option
finders.enableTypedFinderswas removed as it is now the default behavior. - [NSX-323] Removed deprecated constructors
LocalAgent(Local, UserContext)andLocalAgent(Local, UserContext, Context). - [NSX-323] Removed deprecated method
LocalAgent.getDataElementAgent(UserContext). (Deprecated since 2019-03-20) - [NSX-323] Removed deprecated fieldFieldA property of a DataElement expanded to a database column and user interface input element.
LocalAgent.userContext. - [NSX-323] Removed deprecated constructor
Agent(Local, UserContext). - [NSX-323] Removed deprecated method
Agent.getDataElementAgent(UserContext). (Deprecated since 2019-03-20) - [NSX-323] Removed deprecated method
Agent.getDataElementAgent(). (Deprecated since 2019-01-18) - [NSX-323] Removed deprecated method
Agent.getUserContext(). - [NSX-323] Removed deprecated fieldFieldA property of a DataElement expanded to a database column and user interface input element.
Agent.mUserContext. - [NSX-323] Removed deprecated constructor
Agents(UserContext). - [NSX-323] Removed deprecated method
Agents.getDataElementLocalAgents(UserContext). (Deprecated since 2019-04-02) - [NSX-323] Removed deprecated constructor
ProxyAgents(UserContext). - [NSX-323] Removed deprecated method
ProxyAgents.getDataElementAgents(UserContext). (Deprecated since 2019-04-02) - [NSX-323] Removed deprecated method
CommandPerformer.getUserContext(). (Deprecated since 2022-03-16) - [NSX-323] Removed deprecated method
CommandPreparer.getUserContext(). (Deprecated since 2022-03-16) - [NSX-323] Removed deprecated method
DetailsPreparer.getUserContext(). (Deprecated since 2022-03-16) - [NSX-323] Removed deprecated method
FindAction.getUserContext(). (Deprecated since 2022-03-16) - [NSX-323] Removed deprecated method
ModifyAction.getUserContext(). (Deprecated since 2022-03-16) - [NSX-323] Removed deprecated method
ProjectorAction.getUserContext(). (Deprecated since 2022-03-16) - [NSX-323] Removed imports for
net.democritus.sys.UserContext. Should be added by custom code if needed:AgentclassAgentsinterfaceCommandPerformerclassCommandPreparerclassDetailsPreparerclassFindActionclassLocalAgentclassLocalAgentsclassModifyActionclassProjectorActionclassProxyAgentsclass
- [NSX-323] Removed imports for
net.democritus.acl.struts2.UserContextRetrieverwhere relevant.ContextRetrievershould be used instead.
5.31.0 (2023-08-08)
Added
- Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
*-<field>-afterto command forms, tables and detail views.
5.30.8 (2023-10-17)
Merged 5.24.0.4 into 5.30.x branch.
5.30.7 (2023-10-09)
- [VEGA-345] Extend
legacy.dynamicTaskDelegation.reenableto 2024-04-01.
5.30.6 (2023-10-04)
Merged 5.24.0.3 into 5.30.x branch.
Merged
- [VEGA-334] Added options
jpa.column.disableInsertandjpa.column.disableUpdateto addinsertable = falseand/orupdatable = falseto the @Column annotation of a fieldFieldA property of a DataElement expanded to a database column and user interface input element. in the Data class. - [VEGA-332] Removed regex validation for option
isLinkDriver.
5.30.5 (2023-08-01)
Merged
Merged 5.24.0.2 into main.
Temporary fix for struts validators. The name of the validator is defined by the ValueFieldType fullType. There was an attempt to change this to the name of the type instead, but this causes a conflict between
validation::Emailand the struts email type.
5.30.4 (2023-07-26)
Fixed
- Option
vega.transient.taskBean.mImplementationdid not get through the model loading process as it was not marked as applicable to ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
Changed
- The test sources and resources for the data layerLayerLogical separation of functionality within a single system/application, focused on code organization. are no longer included in the build of the logic layerLayerLogical separation of functionality within a single system/application, focused on code organization.. This
behavior can temporarily be re-enabled using the legacy option
legacy.maven.logicLayer.includeDataTestSources, which will expire on 2024-01-01.
Removed
- Marked option
experimental.maven.logicLayer.noDataTestSourcesas expired legacy option.
5.30.3 (2023-07-19)
Fixed
- Changed names of CSP interceptors in Struts following a breaking change in Struts
6.2.0. Listed in bugfix issue WW-5263.
5.30.2 (2023-07-18)
Fixed
- Removed remaining imports for
net.palver.Options.Optionin:CommandPreparerDetailsPreparer
Changed
- Refactored some code in the expansion framework to use
Optionalinstead ofOption. - ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. menu files for applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. are now read as UTF-8 encoded files.
Removed
- Removed deprecated method
ApplicationMenuResolver.getApplicationNavigation(). (Has been deprecated for two years.)
5.30.1 (2023-07-13)
Changed
- Legacy option
legacy.dynamicTaskDelegation.reenablenow includes the new switch-case to allow for a better migration path.
5.30.0 (2023-07-12)
Added
- Added temporary deprecated method
Optional<String> some(String)to theCrudsclass, for backwards compatibility of thegetCustomDisplayName()method. This method will be removed in the future, but this will allow some time to transition the implementation of that method to useOptional.of()instead ofsome().
Changed
- Replaced the
Options.Optionreturn type of private methods withOptionalin several expanded Struts actions:<dataElement>ExporterAction<dataElement>FindAction<dataElement>ModifyAction
- Changed the return type of
<component>ApplicationSettings.getProperty(String)fromOptions.OptiontoOptional.
Removed
- Removed imports for
Options.OptioninCrudsandBeanclasses. (If they are still in use by custom code, either immediately refactor tojava.util.Optional, or add the imports in custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..)
5.29.0 (2023-07-11)
Fixed
- Fixed link to struts dtd file in all struts XML files, as it was still targeting http instead of https.
Changed
- Updated Struts2 from
6.1.2.1to6.2.0.
Removed
- Removed all supporting code and expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for Struts2 versions
2.3and2.5, given that the optionstruts.versionhas expired on July 1st. - The
net.democritus.utils.action.StrutsParameterRetrieverclass was removed, as it was only used inbase-components.
5.28.1 (2023-06-30)
Fixed
- Fixed StrutsValidatorXmlExpander for ValueFieldTypes where the fullType starts with uppercase. The validators will now be registered with the first letter in lowercase.
5.28.0 (2023-06-30)
Added
- Added support for TaskOutcomes, expands an enum as return type.
- Added
noDelegationTaskElement option to opt-out of Task delegation. - Added Legacy options to revert to old Task behavior:
legacy.dynamicTaskDelegation.reenableto keep dynamic task implementation lookup and Impl2 class.legacy.noTaskPerform.reenableto disable the default perform method on tasks.
- Added
snake_caseformatting attributes for expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. mapping and templates.
Changed
- Task implementation lookup is no longer dynamic (
Class.forName) and instead uses a switch with all known implementation classes. - Deprecated the following options, these are now default behavior:
includePerformTaskElement option (expires 01-01-2024)includeDelegationTaskElement option (expires 01-01-2024)
Removed
- Removed
Example2Expanderfor the<TaskElement>Impl2class (unless legacy option is used).
Fixed
- Fixed typo in optionType
restriction.translation.en.
5.27.0 (2023-06-26)
Changed
- Updated
nsx-runtime:2023.3.1 > 2023.4.0 - Replaced
SearchResult.getFirst()withSearchResult.getFirstResult()in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
5.26.1 (2023-06-22)
Added
- Added
js-to-model,model-to-js,beforefeature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to FinderMapperExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
5.26.0 (2023-06-19)
Fixed
- Fixed packageName for HstsFilter in struts-header if applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. shortname starts with uppercase (not recommended).
Added
- Added
form-field-<field.name>-afterfeature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to InstanceFormHtmlExpander - Improved mapping scope trace for helper classes
- Defined
restriction.translation.(nl|en)optionTypes
Changed
- Replaced the use of
net.democritus.sys.Context.getContext()withnet.democritus.sys.Context.find()in much of the expansion framework. - Replaced the use of
net.democritus.sys.Options.Optionwithjava.util.Optionalin much of the expansion framework. - Refactoring to
java.util.Optionalin some expanded code where it cannot impact any custom code. - Added
UTF-8sourceEncoding for expanded maven projects.
Removed
- Removed undocumented legacy mindmap functionality from the stack. This includes all code under
net.palver.mindmapand the struts actionGetMindmapAction.
5.25.1 (2023-06-14)
Changed
- Updated Struts2 from
6.1.2to6.1.2.1. (Addresses CVE-2023-34149 and CVE-2023-34396)
5.25.0 (2023-06-13)
Fixed
- Fixed issue with nullable fieldFieldA property of a DataElement expanded to a database column and user interface input element. operators not handling the
0L(invalid dataRef) case for Ln02 - Fixed
FileNotFoundExceptionfor ehcache configuration file onTOMEEapplicationServer - Fixed ExpanderTester so that the ExpansionContext contains the MappingContext and DataRegistry of the TestModelBuilder.
Changed
- Updated
nsx-runtime:2023.1.1 > 2023.2.1 - Deprecated option
experimental.openjpa.CharacterColumnSize. Will be removed on 2023-09-01.
5.24.1 (2023-06-06)
- Erroneous release
5.24.0.4 (2023-10-17)
Changed
- [VEGA-348] (Backport
5.32.0) Pushed back the expiration date of the optionshowLinkDetailsby 3 months to 2024-01-01.
5.24.0.3 (2023-09-11)
Added
- [VEGA-334] Added options
jpa.column.disableInsertandjpa.column.disableUpdateto addinsertable = falseand/orupdatable = falseto the @Column annotation of a fieldFieldA property of a DataElement expanded to a database column and user interface input element. in the Data class. - [VEGA-332] Removed regex validation for option
isLinkDriver.
5.24.0.2 (2023-07-31)
Fixed
- Temporary fix for struts validators. The name of the validator is defined by the ValueFieldType fullType.
There was an attempt to change this to the name of the type instead, but this causes a conflict
between
validation::Emailand the struts email type.
5.24.0.1 (2023-07-20)
Fixed
- (Backport
5.25.1) Updated Struts2 from 6.1.2 to 6.1.2.1. (Addresses CVE-2023-34149 and CVE-2023-34396) - (Backport
5.28.1) Fixed StrutsValidatorXmlExpander for ValueFieldTypes where the fullType starts with uppercase. The validators will now be registered with the first letter in lowercase.
Changed
- Updated
prime-coreto version2023.4.0to be in line withnsx-default-stackversion2023.9.0and resolve issue withstruts.versionoption expiration.
5.24.0 (2023-05-31)
Changed
- Marked options as deprecated:
- Valid until
2023-12-01:ejb3.useEjbInControl
- Valid until
Removed
- Removed secondary constructor in data pojo. (Re-enable with option
legacy.dataDetailedConstructor.reenableuntil2023-12-01)
Added
- Added SCM information to deployed pom.xml artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.
5.23.1 (2023-05-24)
Fixed
- Removed
jetty-schemasdependency from pom file for war module, as it is no longer being provided byprime-data.
5.23.0 (2023-05-23)
Fixed
- Expand correct XML header depending on JEE version set in technical infrastructure.
Changed
- Use version
8.0.1ofjavaee-apiwhen targeting JEE 8 (instead of8.0).
Removed
- All remaining legacy code targeting EJB2 has been removed following the same update of
prime-data.
5.22.8 (2023-05-23)
Added
- Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. around default implementation of id-accessors in DataExpander
Changed
- Added
@Deprecatedannotation to removed secondary constructor in data pojo.
5.22.7 (2023-05-17)
Changed
- Removed restrictions from fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. forms.
- Reverted ComponentMetadata to use the name of the ValueFieldType of FieldsFieldA property of a DataElement expanded to a database column and user interface input element., since generic code in projects is making use of this.
5.22.6 (2023-05-11)
Changed
- Updated
org.hibernate:hibernate-core:5.4.32.Final > 5.6.15.Final(applies only to l2 caching) - Updated
net.democritus.metamodels:prime-core:2023.2.1 > 2023.2.3
Added
- Added
before-findandafter-findfeature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to BeanExpander
Fixed
- Fixed package of HstsFilter for ApplicationsApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. where shortName is not camelcase.
- Fixed default sorting always being
name - Fixed casing of the bean variable in LogicValidator
5.22.5 (2023-04-27)
Fixed
- Fixed JPA constraints failing on empty Strings for nullable ValueTypes
- Fixed some mismatched translation keys for validations
5.22.3 (2023-04-27)
Fixed
- Fixed NumberBounds validations in shared validator to correctly implement includeMin/Max
5.22.2 (2023-04-21)
Fixed
- Changed Hyperlink form fieldFieldA property of a DataElement expanded to a database column and user interface input element. to text input
5.22.1 (2023-04-20)
Fixed
- Added missing Password ValueType
- Added missing java.util.Date imports for validations of future/past restrictions
5.22.0 (2023-04-20)
As part of our initiative to modernise existing APIs, we have started replacing net.palver.util.Options.Option with
java.util.Optional in this release. As a result, there are some breaking changes. We are rolling out these changes
in stages to minimize the impact.
Changed
- Updated
nsx-runtime:2023.0.0 > 2023.1.0 - Changes for compatibility with breaking changes in
nsx-runtime.
Removed
- Removed options that expired on 2023-04-07:
legacy.editorconfig.disabledlegacy.valueFieldType.hashCodeMethod.disable
Fixed
5.21.0 (2023-04-13)
Added
- Added support for ArtifactListeners. Register an ArtifactListener data-resource and provide an implementation that implements the ArtifactListener interface.
Fixed
- Fixed logger name in logic validator bean
- Fixed custom-restriction validations not being inserted into the ValidatorBean
5.20.4 (2023-04-12)
Added
- Added option
jpa.columnDefinitionfor SimpleValueTypes. You can add this to provide a columnDefinition to all fieldsFieldA property of a DataElement expanded to a database column and user interface input element. of that type. - Added
TextValueType, which can be used for unlimited Strings
5.20.3 (2023-04-11)
Fixed
- Added support for
ShortValueType
Removed
Removed expired legacy options:
legacy.vectorCollectionType.reenablelegacy.multilingual.enablelegacy.ui.rootPages.reenablejpa.optimization.skipDataQuery.disable
5.20.2 (2023-04-06)
Fixed
- Fix
getStatusAsEnum()appearing in projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. not including the status fieldFieldA property of a DataElement expanded to a database column and user interface input element.
5.20.1 (2023-04-03)
Fixed
- Fixed html form template for textarea fieldsFieldA property of a DataElement expanded to a database column and user interface input element.
5.20.0 (2023-04-03)
Changed
- Reimplemented ValueFieldTypes. Types of ValueFieldsFieldA property of a DataElement expanded to a database column and user interface input element. are now defined by ValueField::type.
Fixed
- Removed model-transmutations dependency, which was causing dependency issues in tests of projects depending on ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
Removed
- Removed special case for DB2 that set the maximum length of big strings to 4000.
- Projects should now use a specialized ValueType or add a StringLength restriction to BigString with a separate expansion-resource.
- Removed several unused imports in BeanExpander.
- Moved Upgrade transmutation to prime-transmutations.
- Removed deprecated
net.democritus.expander.CustomAnchorConstantsclass that was left over from old expansion framework. - Removed deprecated instantiation of
SearchResult.SearchError.
5.19.6 (2023-03-23)
Fixed
- Fixed UniqueConstraint query for Ln01 fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
5.19.5 (2023-03-21)
Changed
- Updated Struts2 from
6.1.1to6.1.2. (Addresses CVE-2023-24998 incommons-fileupload)
5.19.4 (2023-03-16)
Added
- Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to replace the default implementation of a FinderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. in the FinderBean.
Feature AnchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
- Feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. can now be placed within the default content of another Feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. (in the same ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.). Note that this does not support feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. within a feature.
Fixed
- Fixed typing of
fetchData(ParameterContext, QueryBuilder)method in FinderBean. The method can now be called without requiring type conversion. This also removes the need for many of the SuppressWarning annotations in the class. - Fixed
createOrModify()not working with UniqueConstraint/uniqueKey
Fixed a mistake in the deadlines for legacy options.
- Deadline of
experimental.cruds.failOnProjectionNotFoundis set to 2023-06-15 - Deadline of
legacy.projectionDetailedConstructor.reenableis set to 2023-09-01
Changed
application-shared-struts2:- Rewrote
net.democritus.security.action.NonceBuilder.getRandomString()to useSecureRandomand not depend oncommons-lang3. - Now logging exceptions for methods in
net.democritus.json.NullHandlingJsonPopulatoras error instead of just printing stack traces. - Now logging exceptions for methods in
net.palver.struts2.action.DownloadActionas error instead of just printing stack traces.
- Rewrote
- Added
@Deprecatedannotation to removed secondary constructor in projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. pojo. entityManagerin FinderBean is now final.- Option
showLinkDetailsis now marked as legacy. (expiry on 2023-09-01)
5.19.3 (2023-03-09)
Added
- [VEGA-290] Upgrade transmutation now removes values from DataOptions and FinderOptions that should not have any value defined.
- [VEGA-289] Extended deadline for removing option
legacy.projectionDetailedConstructor.reenabletill 2023-06-15
5.19.2 (2023-03-01)
Fixed
- [VEGA-296] The option
legacy.vectorCollectionType.reenableresulted in code that did not compile correctly after changes to the projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. pojo expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for collection link fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
5.19.1 (2023-02-22)
Fixed
- Fixed the enable-condition for the Remote interface expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to only be expanded when
option
ejb.interfaces.localOnlyis not present on the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
Added
- Added
resourcesfeature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. toComponentMetaData.buildResources().
5.19.0 (2023-02-20)
Added
- Added legacy option
legacy.projectionDetailedConstructor.reenableon ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. to re-enable expansion of the legacy "detailed constructor" in the projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. POJO classes. (Expires 2023-09-01) - Added UTF-8 default encoding property to expanded
.editorconfigfile.
Changed
- Updated
nsx-runtime:2022.5.2 > 2023.0.0 - Updated
prime-core:2023.0.2 > 2023.0.3
Removed
- Removed legacy "detailed constructor" from projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. POJO classes. The use of this constructor violates the Action Version Transparency theorem of the NS theory. There is no longer any technical reason for this constructor to exist.
- Removed last remaining imports
of
net.democritus.sys.SearchDataRef,net.democritus.support.ejb3.SearchDataRefToSearchDetailsMapperandnet.democritus.support.Paging, as all functionality related to it has been removed in a previous release. - Removed imports of
net.democritus.io.SimpleUriFormatandnet.democritus.io.NioFileCopierfromFileUploadFeature.EntererExpanderas they are no longer used and both classes are deprecated.
5.18.0 (2023-02-15)
Added
- Added legacy option
legacy.cruds.getProjection.emptyOnErroron ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. to revert to the old behaviour of returning null when the requested element was not found bygetProjection. (Expires 2023-08-01) - FieldFieldA property of a DataElement expanded to a database column and user interface input element. operator
Nullnow displays as a checkbox in the UI findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
Changed
- Changed
getProjectionin cruds to report an error when the requested element is not found.
Removed
- Option
experimental.cruds.failOnProjectionNotFoundhas been removed, as this is now default behaviour.
5.17.1 (2023-02-07)
Added
- Added option
cruds.table.hidefor FieldFieldA property of a DataElement expanded to a database column and user interface input element., ReferenceField and CalculatedField to remove a fieldFieldA property of a DataElement expanded to a database column and user interface input element. from the table view in*-ko-list.html. This option applies to both the old and new UI. - Added CSS files that are automatically appended to the page-model for the new UI on Component and DataElement level, to add both custom and expanded css.
5.17.0 (2023-02-01)
Added
- It is now possible to add a default implementation in a feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. If any feature insert something in the anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion., the default implementation will be replaced. But if no feature adds anything, the default content will be used.
Fixed
- Fixed UniqueConstraint for null-values in Ln02 LinkFieldsFieldA property of a DataElement expanded to a database column and user interface input element.
5.16.4 (2023-01-27)
Fixed
- Pruned dependencies to fix issues for projects depending on ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
5.16.3 (2023-01-25)
Fixed
- [VEGA-268] Added prime-data dependency to expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-test-utils to prevent issues with missing technologies.
Added
- [VEGA-252][VEGA-250][VEGA-259] Added option
csv.disableto remove all CSV import and export options - [VEGA-235] Added uppercase and lowercase as options for
db.tableName.format
Changed
- Renamed
includeCsvImportandincludeCsvExportoptions tocsv.importandcsv.export.
5.16.2 (2023-01-21)
Added
- Added several data resources defined in
prime-data, which relate specifically to the JEE stack, intoExpanders.
Changed
- Updated
nsx-runtime:2022.4.0 > 2022.5.1
5.16.1 (2023-01-20)
Added
filterattribute in<list>mapping can now also be a Predicatefiltersvariable is now available in mapping scope
Fixed
- Added missing modify implementation for UniqueConstraints
- [VEGA-232] Now filtering out componentDependencies on Components that have a
no_Layeroption
5.16.0 (2023-01-04)
Fixed
- Fixed FileSystemNotFoundException causing stacktrace printer to fail, giving vague errors
- Fixed description of
jndi.appNameoption, which does not receive a value
Changed
- [VEGA-240] Changed behavior of ArtifactHarvester so that it does not fail on missing ArtifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project..
It is possible to reenable this behavior with the ExpansionSettings option
harvest.failOnMissingArtifact.
Removed
- Removed options that expired on 2023-01-01:
legacy.logicDataMethods.reenablelegacy.oldCollectionMethods.reenablelegacy.oldSearchMethods.reenablelegacy.relationRetrievalMethods.reenablelegacy.searchDataRefMethods.reenablelegacy.struts.defaultStyle
5.15.2 (2022-12-01)
Changed
- Added support to enable schema validation with the selected persistence framework (Hibernate or OpenJPA only), instead of migration or doing nothing.
5.15.1 (2022-11-29)
Changed
- Updated Struts2 from
6.0.3to6.1.1. (Addresses CVE-2022-42889 incommons-text)
5.15.0 (2022-11-25)
Added
- Added support for struts 6.0.
Removed
- Removed GlobalCounter feature (activated by setting counterDefault to GLOBAL)
Changed
- Renamed options:
experimental.persistence.identifierandexperimental.persistence.defaultIdentifiertopersistence.identifier.experimental.persistence.sequence.nameandexperimental.persistence.sequence.defaultNametopersistence.sequence.name.experimental.persistence.sequence.schemaandexperimental.persistence.sequence.defaultSchematopersistence.sequence.schema.
- Updated
prime-core:2022.10.5 > 2022.10.9. - Struts
6.0is now the default version, both2.3and2.5are still supported through thestruts.versionoption. - Moved all struts libraries from nsx-runtime and struts-stack to a new library in the expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. project for struts 6.0 and up.
- Moved all data resource related to struts into the ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
- The option
struts.versionis now marked as deprecated and will be removed (along with support for struts 2.3 and 2.5) on 2023-07-01. - GlobalOptionSettings:
- beanInterfacePolicy=
LOCAL: represented with optionejb.interfaces.localOnlyinstead. beanInterfacePolicy=REMOTEis no longer supported. - enforceHttpMethod: replaced by option
struts.security.enforceHttpMethod - useCsrfProtection: replaced by option
struts.security.csrfProtection - generateArtifactLabel: replaced by option
mvn.version.appendUniqueLabel, appends applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. name instead of settings names - useJavaEESecurity: replaced by option
struts.security.custom, or simply removeaccountComponent from the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. - baseCompsMode=
GENERATE: replaced by optionlegacy.struts.defaultStyle
- beanInterfacePolicy=
Use the transmutation Upgrade to migrate the GlobalOptionSettings to the replacement options.
This transmutation should be available after updating to this ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. version.
mvn expanders:transmute-model -Dtransmutation=Upgrade
Fixed
- Fixed classloading for isApplicable and artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. path resolution so that they use the Thread's context classLoader.
- [NSX-316] Fixed CSRF protection to support parallel calls.
- Added missing option
persistence.schemaUpdatingto data resources. Now only allows valuesupdateornoneas originally intended.
5.14.4 (2022-11-02)
Fixed
- Added option 'view.updateFormFix' to fix fieldsFieldA property of a DataElement expanded to a database column and user interface input element. not updating in edit forms by reworking triggers.
5.14.2 (2022-10-14)
Changed
- Renamed options (with alias to maintain backwards compatibility):
editorconfig.disabled > legacy.editorconfig.disabledisMultilingual > legacy.multilingual.enableuseGlobalCounter > legacy.globalCounter.enabletransient.ui.expandRootPages > legacy.ui.rootPages.reenablevalueFieldType.disableHashCodeMethod > legacy.valueFieldType.hashCodeMethod.disable
- Marked options as deprecated:
- Valid until
2023-04-07:legacy.editorconfig.disabledlegacy.globalCounter.enablelegacy.multilingual.enablelegacy.ui.rootPages.reenablelegacy.valueFieldType.hashCodeMethod.disablelegacy.vectorCollectionType.reenable
- Valid until
2023-01-01(these have been legacy for a very long time):legacy.logicDataMethods.reenablelegacy.oldCollectionMethods.reenablelegacy.oldSearchMethods.reenablelegacy.relationRetrievalMethods.reenablelegacy.searchDataRefMethods.reenable
- Valid until
5.14.1 (2022-09-29)
Added
- Added
custom-annotationsanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to DataExpander.
5.14.0 (2022-09-21)
Added
- Added
technologyfieldFieldA property of a DataElement expanded to a database column and user interface input element. to AdditionalExpansionStep and Feature. This will deactivate these steps and features if the technology is not present.
Changed
- Hibernate now defaults to version 5 is not otherwise specified as support for Hibernate 4 is being phased out everywhere.
Removed
- Removed some remaining support for Jonas applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. server.
- Removed old code from the ExpansionContextCreator class
5.13.2 (2022-09-07)
Fixed
- Added missing option value
customto validation expression for option typeexperimental.persistence.identifier.
5.13.1 (2022-09-06)
Changed
- Updated 3rd party dependencies in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. project (not in expanded code):
- Libraries:
org.yaml:snakeyaml:1.30 -> 1.31(CVE-2022-25857)org.antlr:ST4:4.3.3 -> 4.3.4ognl:ognl:3.3.3 -> 3.3.4
- Maven plugins:
org.apache.maven.plugins:maven-assembly-plugin:3.3.0 -> 3.4.2
- Libraries:
5.13.0 (2022-08-30)
Fixed
- Added missing
@Overrideannotation to theexecute()method in several subclasses ofActionSupport. - Added missing
@Overrideannotation to theprepare()method in several implementations ofPreparable.
Changed
The following ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. and Features have been moved to base-components:
- Engine(Bean|Local|Remote)ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. (flowElement and serviceElement)
- ClaimCleanerExpander
- InterruptRecovererExpander
- StateTransitionerExpander
- StateViewerExpander
- Claimable feature
- ClaimElement feature
- WorkflowTaskStatus feature
- Service feature
- EngineShutdown feature
- TaskTimers feature
These ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. have been modified to move the findByClaimed options to a separate feature in the base-components:
- FinderBeanExpander
- FinderDetailsExpander
Other changes:
- Cleaned up more generic type specifications where they were not required.
- Cleaned up some minor code style inconsistencies. (
){->) {) - Replaced deprecated
new Long(String)call withLong.parseLong(String). - Replaced implementation of
<DataElement>Cruds.getDetailsListFromData()with Java stream. - Replaced implementation of
<DataElement><Projection>.get<TargetElement>Ids()and<DataElement><Projection>.set<TargetElement>Ids(String[])with Java streams. - Replaced implementation of
<DataElement>State.get<DataElement>State()with Java stream. - Updated
nsx-runtime:2022.2.0 > 2022.3.0 - Updated
hamcrest:1.3 > 2.2 - Updated
<dataElement>CommandValidator.getValidator()to useOptions.Option.notNull(). - Updated routing of commands in logic bean to use a map with method references analogous to the implementation of the findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. in the finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. bean.
Removed
- Removed deprecated support for Java 7 in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact., as Java 8 is now enforced as the minimum.
- Removed deprecated
elementProjectorMapfieldFieldA property of a DataElement expanded to a database column and user interface input element. in the logicBeanclasses, as well as thecustom-projection-mappinganchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. - Removed redundant unboxing call to
in<DataElement>Cruds.getData() - Removed redundant warning suppressions for
<DataElement>Cruds.getElementProjector().
5.12.1 (2022-08-11)
Fixed
- Updated
prime-core:2022.6.0 > 2022.6.1. (2022.6.0still depended on aSNAPSHOTversion)
5.12.0 (2022-08-10)
Fixed
- Fixed
Cruds.getElementDetails, which used the wrong details class.
Changed
- Replaced
new Long(0)in projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. pojo classes with0L. - Qualified generics in collection types where
showLinkDetailsis used. - Cleaned up generic type specifications where not needed.
- Replaced all uses of
java.util.Vectorwithjava.util.(Array)List. The old behavior can be re-enabled with the transient optionlegacy.vectorCollectionType.reenable. - Qualified generic of
resultvariable definition inDataRefConverter.fromString()andDataRefConverter.toString(). - Replaced all uses of deprecated
new DataRef()constructor with functional equivalentDataRef.withId(0L). - Refactored private method
Cruds.project(Context,List,IDataElementProjector)to use the Java streams API. - Updated
prime-core:2022.5.4 > 2022.6.0.
5.11.0 (2022-08-08)
Changed
- Updated OGNL (for use in expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. mappings) to version
3.3.3. - Updated ST4 StringTemplate library (for use in expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. templates) to version
4.3.3.
5.10.0 (2022-08-03)
Added
- Explicit definition of
org.apache.maven.plugins:maven-surefire-pluginin expanded root POM file to decouple it from the Maven version used to compile the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.. - Added assert to ensure no versions of Java older than 8 are targeted to expand a JEE applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
Changed
- Updated
nsx-parentto2022.1.0. - Updated Maven plugins in expanded code:
org.apache.maven.plugins:maven-compiler-plugin:3.8.1 -> 3.10.1org.codehaus.mojo:build-helper-maven-plugin:3.0.0 -> 3.3.0
- All templates, artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. and harvest files are now read and written in UTF-8 encoding.
5.9.9 (2022-07-26)
Fixed
- [VEGA-234] Fix implicit name fieldFieldA property of a DataElement expanded to a database column and user interface input element. not being initialized correctly
5.9.8 (2022-06-22)
Fixed
- Added missing expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. comment to ContextRetriever
- Use UserContextRetriever to fetch UserContext in ContextRetriever
5.9.7 (2022-06-20)
Fixed
Fixed some issues with the ContextRetriever:
- Fixed context resulting in a
nullif no context is set in session - If no UserContext is defined, a UserContext will be retrieved from the session, if available (this is required to keep things backwards compatible)
5.9.6 (2022-06-14)
Fixed
- Adding property
tomee.jpa.factory.lazy=truetopersistence.xmlwhen expanding for TomEE with Hibernate 5, to avoid CDI loading issues. This is advised by Apache in the TomEE documentation.
5.9.5 (2022-06-09)
Added
- Added FinderOperatorMapping.xml for expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. still using this file
Note: including mapping xml files from other expansion-resources is considered dirty and is prone to break
5.9.4 (2022-06-09)
Changed
- Updated
nsx-parentto2022.0.0.
Added
- Added context to user session next to userContext
- [NSX-220] Add support for OIDC logout
- [FLOW-43] Add custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to claiming methods
- Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to FindAction
Fixed
- Provided better error message if the harvester fails to read the artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. file
5.9.3 (2022-05-25)
Changed
- Updated 3rd party dependencies in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. project (not in expanded code):
- Libraries:
ognl:ognl:3.1.28 -> 3.1.29org.apache.commons:commons-lang3:3.5 -> 3.12.0commons-io:commons-io:2.7 -> 2.11.0org.slf4j:commons-io:1.7.30 -> 1.7.36(test only)
- Maven plugins:
org.apache.maven.plugins:maven-assembly-plugin:3.2.0 -> 3.3.0org.apache.maven.plugins:maven-compiler-plugin:3.8.1 -> 3.10.1org.codehaus.mojo:flatten-maven-plugin:1.1.0 -> 1.2.7org.jacoco:jacoco-maven-plugin:0.8.2 -> 0.8.8org.sonarsource.scanner.maven:jacoco-maven-plugin:3.7.0.1746 -> 3.9.1.2184
- Libraries:
- Updated NSX Maven plugin in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. project (not in expanded code):
net.democritus.maven.plugins:expansion-validation-maven-plugin:2021.1.0 -> 2022.0.0
5.9.2 (2022-05-23)
Fixed
- [VEGA-219] Removed name fieldFieldA property of a DataElement expanded to a database column and user interface input element. from ProjectionPojoExpander with option
nameNotWanted. To revert this behaviour, uselegacy.nameNotWanted.pojoName. - Added missing import for workflowRemote
5.9.1 (2022-05-19)
Reverted
- Reinsert workflowRemote in EngineBean
Updated
- Removed direct dependency in metamodel-runtime to prevent issues with classloading conflicts in tests
- Updated dependency:
- prime-core: 2022.1.0 => 2022.5.4
5.9.0 (2022-05-16)
Added
- [FLOW-19] Added option
projection.detailsWithoutRefs, this adds a projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.detailsWithoutRefswhich contains the same fieldsFieldA property of a DataElement expanded to a database column and user interface input element. as thedetailsprojectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view., but where the linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element. are represented as ids. This projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. is more performant than thedetailsprojectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. as no extra database queries are needed to resolve the DataRefs for the link fieldsFieldA property of a DataElement expanded to a database column and user interface input element.. - Update recovery claim timeout to 5mins
- Added InterruptRecoverer error handling
Changed
- [FLOW-16] Use cached workflow runtime configuration to reduce the number of database queries
- [FLOW-16] Use
detailsWithoutRefsprojectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. in workflow orchestration to reduce the number of database queries - [FLOW-22] Add support for stateTask timeout
Fixed
- Fixed workflow claiming not working with
SefindersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. - [FLOW-38] Fix status capitalization in FlowStateTransitioner
5.8.1 (2022-04-14)
Fixed
- [useClaims] Fixed recovery failing because recovered instances were not claimed
5.8.0 (2022-03-16)
Added
- Added ContextRetriever, which is expanded for each Component in the control layerLayerLogical separation of functionality within a single system/application, focused on code organization. and allows features and customizations to add additional context groups to the Context object.
5.7.4 (2022-02-25)
Added
- Added expansion option
expansion.failFastto fail at the first error - [CommandFormJsExpander] Expose messages from CommandResult
Changed
- BlockingJobManager now executes all tasks by default and only fails fast if the option
expansion.failFastis provided
Removed
- Removed IExecutor interface from ArtifactExpanderRunner
- Removed ExpansionResourceXmlGenerator. Instead, use the expansionResource goal of the expanders-maven-plugin
- Removed ComponentDirectoryFinder (the source directory is now part of the ModuleExpansionContext)
- Removed HarvestReader (has been replaced with ArtifactHarvestFileReader)
- Removed PrimeDataLoaderHotfix (use net.democritus.data.PrimeDataLoader instead)
- Removed public access to
net.democritus.expander.ArtifactPathBuilder#cache - Removed public access to
net.democritus.testing.CoverageCollector#callsMap - Removed several methods from AssertUtil
- Removed TemplateType
5.7.3 (2022-02-18)
Fixed
- Fixed expansion failure due to mapping error when no dataBaseSchemaName is provided for a component
Added
- Added some support for harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories. base-components
- Added expansion option
harvest.forceto ignoreharvest.skip - Added expansion option
harvest.modelDirectory.overrideto set a single directory for harvest files
- Added expansion option
5.7.2 (2022-02-18)
Fixed
- Fixed Context not being passed by StateTransitioner, causing
compareAndSet()to fail if claims are used
5.7.0 (2022-02-17)
Added
- [NSX-224] Added applicationInstance/component/data option
cruds.table.csvExportButton, which adds a button to the cruds table to export instances, which takes into account the selected finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. - [NSX-214][VEGA-194] Added support for findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. with
inoperator in combination with linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element. - Added support for
linkfieldInputbinding in finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. forms - [NSX-207] Added
ehcache.xmlstub file with anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to configure caching with Hibernate 5.
Removed
- Option
editorconfig.globalhas been removed and.editorconfigfile now always applies globally to bothgenandextsources.
5.6.0 (2022-02-07)
Added
- [VEGA-209] Added
@Deprecatedand comments to methods in legacy features - Added expansion option
expanders.traceFeaturesto enable feature tracing
Changed
- Merged expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-common into expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-core
Fixed
- [VEGA-171] Added
checkClaims()tocompareAndSet()method for claimable DataElements
5.5.4 (2022-02-02)
Fixed
- Fixed another duplication of
_FindByNotClaimedin InterruptRecovererExpander
5.5.3 (2022-02-01)
Changed
- Only render linkfield binding when visible
Fixed
- Fixed InterruptRecovererExpander duplicating
_FindByNotClaimedpostfix if finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. with postfix is not present in the model
5.5.2 (2022-01-24)
Fixed
- [NSX-212] Projector class did not add imports for types of local calculated fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
5.5.0 (2022-01-12)
Changed
- [TaskElement] The following options are now supported for modifying the input type of a task:
target.element.projection: Changes the projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. used from Details to the provided valuetarget.class.custom: Overrides the parameter type with the value (takes a fully qualified name)
- [Logging] Changed how LoggingAspects are created:
- In mapping files, the logging aspect can be defined with:
<value name="logging" eval="@net.democritus.common.logging.LoggingAspects@getLoggingAspect(expansionContext, {name})"/> - Logging aspects can now be changed with some ApplicationInstance options:
logging.noneandlogging.custom - Enabled logging in several action classes where it was disabled
- In mapping files, the logging aspect can be defined with:
Fixed
- [generateArtifactLabel] Fixed artifactLabel not being included in the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. root pom
Removed
- Removed long-obsolete ReporterExpander hidden behind now removed dataOption
struts.reporter.enable - Removed JndiProperties and ComponentJNDI imports from BeanExpander as neither was relevant since 4.0 rewrite
- Removed support for MonoLogger
These artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. have been removed. Since they are internal artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project., no issues are expected
- Removed
expanders-skeletonmodule - Removed
ValueFieldTypeMapping.xml - Removed
FlowElementExpanderMapping.xml
For clones of the ValueFieldTypeMapping.xml file, here is a newly optimized version of the properties:
<?xml version="1.0" encoding="UTF-8" ?>
<mapping xmlns="https://schemas.normalizedsystems.org/xsd/expanders/2021/0/0/mapping">
<let name="valueTypeClass" eval="classBuilder.from(valueFieldType)"/>
<let name="storageType" eval="valueFieldType.storageType.toLowerCase()"/>
<let name="displayType" eval="valueFieldType.displayType.toLowerCase()"/>
<value name="className" eval="valueTypeClass.className"/>
<value name="packageName" eval="valueTypeClass.packageName"/>
<value name="variableName" eval="valueTypeClass.varName"/>
<value name="requiresImport" eval="valueFieldType.requiresImport()"/>
<value name="isBuiltin" eval="valueFieldType.builtin"/>
<value name="isDate" eval="storageType.equals('date')"/>
<value name="isDateTime" eval="displayType.equals('datelong')"/>
<value name="isBigDecimal" eval="storageType.equals('bigdecimal')"/>
<value name="isStringLike" eval="valueFieldType.isStringLike"/>
<value name="isBigString" eval="displayType.equals('memo') or displayType.equals('multiline')"/>
<value name="isByteArray" eval="storageType.equals('byte[]')"/>
<value name="isNumber" eval="valueFieldType.isNumberLike"/>
<value name="internalType" eval="classBuilder.from(valueFieldType.storageTypeClass)"/>
</mapping>
5.4.3 (2022-01-04)
Added
- [NSX-204] Add fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
view.linkfield.displayFieldwhich specifies the fieldFieldA property of a DataElement expanded to a database column and user interface input element. to use in the experimental linkFieldInput through theexperimental.view.linkFieldInputoption.
5.4.2 (2021-12-17)
Added
[NSX-161] Option persistence.secondLevelCache on DataElement to enable second level cache. Currently only available
for Hibernate 5 and is activated with SearchDetails.setAllowCaching(true).
5.4.1 (2021-12-13)
Fixed
- [VEGA-200] Fixed FinderBean not using
{DataElement}Data.ENTITY_NAMEand not applyingjpa.entity.name.formatoption- requires peer-dependency
net.democritus:base-components:2021.6.1for a custom harvest fix
- requires peer-dependency
5.4.0 (2021-12-06)
Removed
- [VEGA-193] Removed unused/obsolete
@PostConstructfrom BeanExpander- requires peer-dependency
net.democritus:base-components:2021.6.0
- requires peer-dependency
- Removed unused/obsolete uninitialized
initalContextattributes from BeanExpander, EngineBeanExpander, and ProxyExpander - Removed original onion/test specs; only expanded (prime-core) test-specs are now available
Fixed
- [VEGA-186] Fixed some copying steps (ext, harvest) not following active layerLayerLogical separation of functionality within a single system/application, focused on code organization. configuration (copying no{X}LayerLayerLogical separation of functionality within a single system/application, focused on code organization. files)
5.3.4 (2021-12-06)
Fixed
- Fixed
linkfieldInputrendering dataElements withnameNotWanted,hasDisplayNameandfunctionalKeyas[Object object]
5.3.3 (2021-11-24)
Fixed
- [NSX-193] Fixed
getStatus(),getStatusAsEnum()return type in case of noDataLayer
5.3.2 (2021-11-24)
Added
- [NSX-161] Added
fetch-after-create-queriesanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. toFinderBean.fetchData().
Fixed
- [NSX-198][UI][NG] Hide tabs in waterfall setup for elements to which the users does not have view access
5.3.1 (2021-11-22)
Fixed
- [VEGA-196] Fixed expansion option
hideAnchorsfailing on.propertiesexpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
5.3.0 (2021-11-22)
Changed
- [tests] The method
FeatureExpanderTester#testAnchor()has been changed. In previous versions, the method would ignore the name of the test method and instead construct the template name based on the anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. name ( e.g.test_anchor_myAnchor).
This has now been changed to use the name of the test method instead, which is more in line with the other methods. Note that this only affects feature tests, not regular expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. tests, where theExpanderTester#testAnchor()method already had this behaviour. - [NSX-194] Move the
getData-strategyanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in theCrudsclasses to a separate method, so that thegetData-afteranchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. are reached in case of a defined strategy. - [NSX-195] Made
Cruds.getName()opt-in. Addtransient.cruds.useGetNameto addgetName()to theCrudsclasses.
Added
- Added option
harvest.skipthat skips harvest for that component/module. (primarily useful for model resources)
Fixed
before-harvestandafter-harvestare now correctly ignored for base-components. This prevents issues with harvest files in base-components being cleaned during harvest. [VEGA-195]
Removed
- Temporarily removed model information (number of elements, harvests, etc.) from ApplicationPropertiesExpander for technical reasons
- Removed expansion trace from core, it now lives in
net.democritus:expansion-tracerexpansion bundle instead
5.2.10 (2021-11-22)
Fixed
- Fixed
getStatus(),getStatusAsEnum(),setStatus(),setStatusAsEnum()method in case of noDataLayer
5.2.8 (2021-11-02)
Changed
- Moved logic of patch method to separate class so feature can be injected
5.2.7 (2021-10-28)
Fixed
- Add backwards compatible methods in LayerSourceFinder because it was used in other bundles
5.2.6 (2021-10-25)
Fixed
- Fixed ext directories for some layerImplementations not being generated because of missing variables when resolving the conditions
5.2.5 (2021-10-22)
Added
- [NSX-189] Enable
findAllto be used as searchMethod on thefind-jsonstruts endpoint - [NSX-189] Implement
hasDisplayNameoption inexperimental.view.linkFieldInput - [NSX-190] Enable
experimental.view.linkFieldInputfor commands - Added Data Option
view.buttons.commands, which adds buttons to NG pages to open command forms. Primarily useful for prototyping and quickly testing new DataCommand features
5.2.4 (2021-10-18)
Fixed
- Moved
ApplicationSettingsto shared layerLayerLogical separation of functionality within a single system/application, focused on code organization..
5.2.3 (2021-10-18)
Added
- Component option
configuration.propertiesto expand ApplicationSettings class for component which can load settings from a properties file on the classpath.
5.2.2 (2021-10-11)
Fixed
- Fixed issues when trying to use Component in program other than ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
- Improved CsvMerger feature so that update happens in one call per instance.
- Fixed CsvMerger not creating new instances on import
Added
- Added more custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to CsvMerger feature
5.2.1 (2021-10-07)
Fixed
- It was no longer possible to expand
export()andimportFile()pipelines without the use of theincludeCsvImportandincludeCsvExportoptions. This functionality is now available separately with theio.importandio.exportoptions for the DataElement. - Now using correct classLoader in ArtifactPathModelBuilder
Removed
- Removed deprecated transient option
io.strutsAction.
5.2.0 (2021-10-01)
Added
- [NSX-152] Added applicationInstanceOption
csv.import.merge, which changes the CSV import so that the imported fieldsFieldA property of a DataElement expanded to a database column and user interface input element. are merged into the existing data, as opposed to the original implementation, which overwrites all fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
5.1.6 (2021-10-01)
Fixed
- Fixed issue where dataRegistry would not be filled in for expansionContexts in tests with external metamodels
5.1.5 (2021-09-30)
Fixed
- Fixed ComponentRootPomExpander so that it creates a valid pom.xml file when one of the layersLayerLogical separation of functionality within a single system/application, focused on code organization. is not included in the expansionContext (based on moduleType+options).
5.1.4 (2021-09-30)
Fixed
- Fixed ExpansionContextCreator for metamodels like scripts metamodel (see examples), where the expansionContext is not rooted in a custom ExpansionContextFactory
5.1.3 (2021-09-29)
Fixed
- Fixed issues with maven selecting wrong
onion-spec-runtimeversion when addingexpanders-test-utilsas dependency alongside another dependency depending ononion-spec-runtime
5.1.2 (2021-09-25)
Fixed
- Fixed ExpansionContextCreator so it can be used without custom ExpansionContextFactory classes
5.1.1 (2021-09-24)
Fixed
- Fixed issue in ApplicationPropertiesExpander with technologies where concernType=
null
Removed
- Removed ANT file mapping from ArtifactPathBuilderMapping
5.1.0 (2021-09-22)
Added
- ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. option
experimental.view.linkFieldInputwill activate a new knockout implementation for many-to-one linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element.. For now, options for the binding will have to be provided with custom code in the-form.jsfile. - Added
camelCaseformat option andasCamelCaseshorthand for expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. templates. - Implemented
cruds.bulk.deletefor knockout v1 (NSX KNOCKOUT OG)
Changed
- Changed view layerLayerLogical separation of functionality within a single system/application, focused on code organization. expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to use
NSX KNOCKOUT OG/NGtechnologies, which replace the version on PresentationSettings. PresentationVersionHelper is now obsolete. - Updated ApplicationPropertiesExpander to use more of the modern composite API
- Bean methods
importFile/exportFileare now only expanded whenincludeCsvImport/includeCsvExportoption is defined [VEGA-178]
Removed
- Removed some obsolete references to COCOON
Fixed
- Fixed some logic still using ApplicationExpansionSettings
- Fixed support for elementType
any - Fixed external metamodel expansions being run twice (once by generic ExpansionRunner classes and once in dedicated ExpansionStep)
- Fixed ExpansionRunner causing ConcurrentModificationException in some cases
5.0.1 (2021-08-23)
Fixed
- Fixed issue with loading of ValueFieldTemplates
- Fixed isDetailsOnly option still expanding findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. etc.
5.0.0 (2021-08-23)
Added
- Added support for driving expansion based on programTypes, moduleTypes and expandableElements.
Changed
- ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. is now an expandable element, and Component now has ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. as its parent in the expansion hierarchy. Expanding with ApplicationInstance still works as before.
- Expansion now uses specialized ExpansionRunner classes instead of expanded classes. Old setups using expansionSteps should still work, but easier alternatives are now available using dataResources describing expandable elements.
- ApplicationExpansionSettingsComposite has been replaced with the ExpansionSettingsComposite. A stubbed object is still available, but it is highly recommended switching to the new composite class.
- ExpansionJobManager has a new method
submit(Consumer<T>, Iterable<T>)to submit new tasks, which replaces the outdatedIExecutorinterface with the java 8Consumerinterface.
Technologies and LayersLayerLogical separation of functionality within a single system/application, focused on code organization.
- LayersLayerLogical separation of functionality within a single system/application, focused on code organization. are decided by the ModuleType and ProgramType configuration. These include all applicable layersLayerLogical separation of functionality within a single system/application, focused on code organization.. In case you have expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. that introduce a new layerLayerLogical separation of functionality within a single system/application, focused on code organization., the correct way to add the layerLayerLogical separation of functionality within a single system/application, focused on code organization. is to define a new ModuleType and ProgramType with your new layerLayerLogical separation of functionality within a single system/application, focused on code organization. included.
- Technologies are decide by the linked TechnologyStacks. If your expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. introduce a new Technology, users will have to add it to their technologyStacks.
Removed
- Removed ANT expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
4.19.5 (in 5.0.0)
Changed
- [presentationSettings 2.*] Individual root html pages (with
<head>, etc.) are no longer expanded for each dataElement- instead struts direct the requests to a a single jsp page that launches an appropriate input model
- [presentationSettings 2.*] DataElement's HTML page no longer contains inline scripts to allow for strict CSP
- Changed favicon URL path
/$application$/images/pageIcon.icoto../../images/favicon.ico(both paths normalize to the same location)- place your favicon to
applications/$application$/ext/view-ext/knockout/images/favicon.ico
- place your favicon to
Removed
- [presentationSettings 2.*] Removed obsolete jqplot loading, and dead graph features (hasCountByStatusGraph and hasCountPerHourGraph)
- [presentationSettings 2.*] removed inline script setting obsolete
window['NSX']- requires peer-dependency web-styles 2021.2.0
- [presentationSettings 2.*] removed root HTML pages for each dataElement and its IO
- to force their expansion, use applicationInstanceOption
transient.ui.expandRootPages - ext pages created by copy-pasting regular ones can mostly be removed and replaced in struts
with
/jsp/ps2/page.jsp?pageModel={path-to-ext-page-model-js-file}(without extension), e.g./jsp/ps2/page.jsp?pageModel=testComp/Person/custom-page-model
- to force their expansion, use applicationInstanceOption
Fixed
- [NSX-131]
uniqueKeyvalidation in Bean moved from@preCreate,@preModify, and@preCreateOrModifyto their@pre-validationanchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. counterparts. - [NSX-144]
isRequiredvalidation in Cruds moved from@preCreate,@preCreate-projection,@preModify, and@preModify-projectionto their@pre-validationanchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. counterparts. - [NSX-166] Data projector in Struts UI now does not show a "find failed" warning after element deletion.
- [NSX-180] Added missing
detailsmethod variable within the find method of a customizable finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. without fieldFieldA property of a DataElement expanded to a database column and user interface input element. operator pairs. - [NSX-181] Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to the form html file of a customizable finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
- [expansionTrace] fixed double-expansion needlessly failing expansionTrace
4.19.4 (2021-07-19)
Added
- Added applicationInstanceOption
vega.transient.taskBean.mImplementationto provide TaskBean implementation under previous variable name [VEGA-162] - Marked
implementationvariable in TaskBean as final
4.19.3 (2021-07-15)
Added
- [JPA] Ln04 linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element. now support fieldOption
hasOtmMappedBy[NSX-172]
4.19.2 (2021-07-15)
Fixed
- [cruds]
resolveDataRefandfindDatanow returns error if the the functional key is malformed (such as having null or empty fieldsFieldA property of a DataElement expanded to a database column and user interface input element.) [NSX-69] - [findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.] functional key no longer requires explicit
findBy<fk_fields>finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. (also requires prime-core 2021.3.1+)
4.19.1 (2021-07-08)
Reverted
- [findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.] Reverted FinderBean generics signatures (
<T>) back to wildcard signatures (<?>) due to downstream incompatibility
4.19.0 (2021-07-05)
Added
- [findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.] Added customizable findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. via finderOption
isCustomizableFinder[NSX-164]- customizable finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. expands like a regular finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement., however it provides customization anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. within the FinderBean
- [findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.] Added finderOption
noViewLayerto exclude a finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. from the UI- supported by both 2.x and 1.x UI
- [findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.] Added
GteandLteoperators [NSX-157] - [findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.] Added
Null,Notnull,In, andNin(not in) operators [NSX-117],[NSX-157]- no UI support yet; use them with
customizable,custom, ornoViewLayerfindersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. - see foundation for the semantics of these findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.
- no UI support yet; use them with
- [core] Added support for SQL anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. comment formats (line
-- %s, block/*%s*/) - [maven] Added applicationInstanceOption
experimental.maven.logicLayer.noDataTestSourcesto no longer compile data layerLayerLogical separation of functionality within a single system/application, focused on code organization. test sources and test resources second time within the logic layerLayerLogical separation of functionality within a single system/application, focused on code organization. pom - [NSX-163] Added fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
validation.listField. This option adds a validation in the bean class, which matches incoming values of that fieldFieldA property of a DataElement expanded to a database column and user interface input element. with the options configured in the TagValuePair table. If the value is not a valid option, the validation will return an error.
Fixed
- [NSX-130] Added missing uniqueKey validation to
createOrModifymethod in the bean
4.17.1 (2022-01-19)
Fixed
- Fixed web.xml containing duplicate
@servletsandcustom-servletsanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.
4.17.0 (2021-06-15)
Added
- Added
valueListTagto connectorField. By provided a value, the fieldFieldA property of a DataElement expanded to a database column and user interface input element. will be rendered as a dropdown, where the options will be selected based on the matching instances in the TagValuePair table. (Only for expanded command form)
4.16.3 (2021-06-08)
Fixed
- Fixed some issues with the
experimental.workflow.batchLessoption:- Exclude duplicate instances
- Prevent double check if initial find did not return any results
4.16.2 (2021-06-08)
Changed
- Changed SQL Server dialect for Hibernate to
SQLServer2012Dialectto have support for native sequences. Versions of SQL server older than 2012 are no longer supported by Microsoft as af May 2020.
4.16.1 (2021-05-17)
Added
- Added clean-harvest support for harvest and test directories; fixed some edge cases for ext harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories.
- Added DataElement option
vega.localInterface.enableExtendsto enable extending DataElement's Local interface- note that
vega.*,rigel.*, and other star-named options are not be used without prior consultation
- note that
4.16.0 (2021-05-07)
Added
-
[experimental] Added applicationInstance option
experimental.workflow.useExecutorService, which enables the workflow to run with an executorService. The api of the executorService allows us to more efficiently chain tasks. This can improve throughput for workflows where there is a large difference between the time for each task in the batch.To get this to work on TomEE, you will also need to add the following to your
tomee.xml:<Resource id="executorService" type="ManagedExecutorService">
Core = 10
Max = 25
KeepAlive = 5 s
Queue = 15
ThreadFactory = org.apache.openejb.threads.impl.ManagedThreadFactoryImpl
Lazy = true
</Resource>Also note that the queue size should be correctly configures for all workflows. Otherwise, the executorService might start rejecting tasks from simultaneous workflow runs.
To get this to work on another applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. server, configure the ManagedExecutorService and then add a ParamTargetValue with paramName
workflow.executorService.jndiName, targetExecutorServiceTaskProcessorand value equal to the jndiName of the ManagedExecutorService. -
[experimental] Added flowElement option
experimental.workflow.batchLess. This will change the EngineBean so that it fetches new instances when executing tasks. With this change, the EngineBean will relentlessly try to execute all possible tasks for each StateTask in one run. Note that this feature can create issues, so keep these considerations in mind:- If there is a cycle in the workflow, this can cause the run to go on endlessly .
- Each StateTask is still executed sequentially, meaning it can take a while before the 2nd, 3rd etc. task are
executed. You can combine this option with
sequencingStrategy=greedyto improve the response time. - The settings works best with claims, since that prevents the same instance from being fetched twice. Though without, there will not be any functional problems. (The count of tasks processed may yield strange results though)
Changed
- The EngineBeanExpander now prefers a finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. with
SetoEqwhen selecting the correct finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. - The EngineBeanExpander will explicitly check for the existence of the finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. used when fetching a new batch during expansion.
4.15.5 (2021-05-06)
Changed
- When Hibernate 5 is selected with an Oracle Database as target, the Oracle 12c dialect is now used.
4.15.4 (2021-05-03)
Fixed
- Fixed artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. file naming in expansionTrace not being relative
- Fixed featureSegments in expansionTrace to also contain expanderFeature reference and feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. name (with
@prefix)
4.15.3 (2021-04-30)
Reverted
- Revert change that made ExporterActionExpander and ImporterActionExpander always expand, not just with
options
includeCsvExportandincludeCsvImport. While this change was made to promote the usage of expanded code for exporting/importing, it can create collisions with existing custom code. Hence, the actions are now only expanded with the csv options, or with the component optionio.strutsAction.
4.15.2 (2021-04-27)
Fixed
- Fixed error when expanding ExporterActionExpander with a DataElement without findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. Note: This has only been added for backwards compatibility. To ensure regular behaviour, it is required to at least add a findAll finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement..
4.15.1 (2021-04-22)
Added
- Added several feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for noDataLayer in BeanExpander
4.15.0 (2021-04-15)
Added
- Added some variables to artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. path scope for easier customization:
isHarvest: a boolean value that is true iff running a harvest. You can use this to specify where the harvest files should end up. E.g<artifactPath>$if(isHarvest)$$componentRoot.directory$/foo$else$$application.root$/foo/components/$element.component.name$$endif$/sub/path</artifactPathtechnologyDir: the subdirectory for the expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.'s technology setting. E.g.build/$technologyDir$/will translate tobuild/commonorbuild/ejbetc.sourceDir: the subdirectory for the expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.'s sourceType setting. E.g.main/$sourceType$will translate tomain/srcormain/jsgenDir: will translate togen/during expansion, or an empty string during harvestexpansionRoot.directory: the root directory of the expansion
- Added
kebabformat for stringtemplates (and artifactPath), which converts camelcase to dashed lowercase - Added ApplicationOptionType/ComponentOptionType
experimental.persistence.defaultIdentifierto be used with valuessequenceoridentityColumnto consistently specify the use of a sequence or identity column for id generation in the database - Added ApplicationOptionType/ComponentOptionType
experimental.persistence.sequence.defaultSchemato set a custom schema whenexperimental.persistence.defaultIdentifier: sequenceis used, instead of defaulting to the component schema - Added ApplicationOptionType/ComponentOptionType
experimental.persistence.sequence.defaultNameto set a custom sequence name whenexperimental.persistence.defaultIdentifier: sequenceis used, instead of defaulting toNS_SEQUENCE
4.14.1 (2021-04-09)
Reverted
- Reverted addition of combined sources jars due to deployment conflicts
4.14.0 (2021-04-09)
Added
- Added build config for complete sources jar
- Added FieldOptionType
experimental.instanceView.stringDisplayHandlerfor String fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to provide custom fieldFieldA property of a DataElement expanded to a database column and user interface input element. binding for InstanceViewHtml pages- e.g.
fieldOption("experimental.instanceView.stringDisplayHandler : markdown")
- e.g.
- Added FieldOptionType
experimental.valueFieldType.storageTypefor String fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to customize database representation- e.g.
fieldOption("experimental.valueFieldType.storageType : varchar : 1024")
- e.g.
- Merged v4.11.9
Changed
- [struts2] Agents are now initialized in a
preparestep for most struts actions, so that interceptors have the chance to run first. - [knockout] Rearranged anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. forms to make more sense
Fixed
- Add more information to exceptions occurring during isApplicable mapping
- [expansionTrace] Fixed ext file missing content
- [expansionTrace] Fixed inconsistent URI paths
- Fixed FeatureInjector producing method groups for segments with blank content
- Removed print statements from StrutsValidatorExpander
- Fixed an import for branching tasks in BeanExpander (task)
Removed
- Dropped support for nsfInstallation file
- Removed PrimeRadiant-specific expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. and features
- Removed obsolete expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
net.democritus.expander.ejb3.serviceElement.TaskLocalExpandernet.democritus.expander.ejb3.serviceElement.TaskRemoteExpander
4.13.5 (2021-03-05)
Fixed
- Fixed issue where custom feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. would be removed when expanding
4.13.3 (2021-02-18)
Fixed
- Fixed linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element. in functional key DataRefs not being resolved before find.
4.13.2 (2021-02-15)
Added
- Merged v4.12.4
Fixed
- Fixed default-complete applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..menu adding noViewLayer elements
4.13.0 (2021-02-11)
Added
- Page title in ko2 UI is now translated property
- SearchDetails now has a fieldFieldA property of a DataElement expanded to a database column and user interface input element.
skipCountthat can be set totrueto skip the count query during a find - Added a new
default-completeprofile to applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. menu listing all applicable components/dataElements- nsx-runtime v2021.0.0 will fallback to this
default-complete, if no other profile is available - both ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and Component navigations now have XSDs
- nsx-runtime v2021.0.0 will fallback to this
Changed
- The title in the menu of a page has been changed to a separate property (
<component>.<element>.menu.title) - Renamed expansionOption
disableExpansionTracetoexpansion.trace.enable(and flipped the logic) - Renamed expansionOption
exportTraceZiptoexpansion.trace.exportToZip- if defined, relative paths are now resolved against
expansionSettings.expansionDirectory
- if defined, relative paths are now resolved against
Fixed
- Fixed issue with bulk delete dialog throwing error when delete action is not allowed
- Fixed imports for CascadeDelete
- Fixed ComponentRootPomExpander ignoring applicationInstanceOption
no{name}Layer - Added experimental applicationInstanceOption
experimental.maven.noViewPomto exclude view from maven reactor
4.12.4 (2021-02-11)
Fixed
- Fixed
ModifyActionexpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. and struts reference option conditions not in sync
4.12.3 (2021-02-11)
Fixed
- Fixed
ModifyActionbeing referenced in struts element xml withoutcruds.modifyWithProjectionoption
4.12.2 (2021-02-09)
Changed
- Made
createWithProjection()andmodifyWithProjection()optional.- Add
cruds.createWithProjectionto addcreateWithProjection(). This will move thecreateanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in the cruds class, so check for any broken custom code. - Add
cruds.modifyWithProjectionto addmodifyWithProjection(). This was the behaviour for the previous versions.
- Add
- The
createOrModify()method implementation will be different depending on which methods are available (see options above).
Removed
- Removed BeanAnchor expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
4.12.1 (2021-01-26)
Fixed
- Fixed issue with
legacy.searchDataRefMethods.reenable - Do not expand for
legacy.oldCollectionMethods.reenableandlegacy.oldSearchMethods.reenablewithnoDataLayer - Using
finders.enableTypedFindersresulted in a compilation error
4.12.0 (2021-01-14)
Added
- Added
createOrModify()method that updates an instance if it already exists in the database and creates it otherwise. - Added
createWithProjection()method to create an instance with a projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. - Added
resolveDataRef()method that takes any DataRef and returns a DataRef with database values, if it exists. - Added
delete(dataRef)method to replace thedeletebased on id - Added ApplicationInstance options to replace settings in GlobalOptionSettings:
struts.security.customreplacesuseJavaEESecurity=TRUE, or, don't haveaccountcomponent in your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.struts.security.csrfProtectionreplacesuseCsrfProtectionstruts.security.enforceHttpMethodreplacesenforceHttpMethodbaseCompsMode=NONEcan be replaced with leaving out theaccountcomponent Old behaviour is kept backwards compatible:useJavaEESecurity=TRUEandbaseCompsModel=NONEalways activate, even if there is anaccountcomponent presentcsrfProtectionandenforceHttpMethodcan be activated both with the new options and the GlobalOptionSettings
- To enable soft delete,
cruds.softDeletecan be used instead of naming a fieldFieldA property of a DataElement expanded to a database column and user interface input element.disabled - Added
DataElementFindDetailsinterface for every DataElement, which is implemented by theFindDetailsclass of every FinderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. when using the ApplicationInstance optionfinders.enableTypedFinders - Constraint on type of the finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. in all
find()methods to prevent the use of findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. with agents of different DataElements when using the ApplicationInstance optionfinders.enableTypedFinders - New implementation for mapping findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. to their implementation without reflection when targeting at least Java 8 and
using the ApplicationInstance option
finders.enableTypedFinders - Added a number of descriptions to expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact., expansionSteps and expansionResources
- Added several feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to task artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.
- Added several feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for commands
Fixed
- Cleaned up inconsistencies in html templates
- Removed some redundant imports
- Fixed an issue with using strictly equals for flowElement in InterruptRecoverer
Changed
- Projector classes now use
resolveDataRef()to resolve linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element. during create/modify, meaning functionalKeys will also be resolved. (This previously worked only for Ln02) - Projector classes now return
projection.getDataRef()in thegetDataRef()method, which should include more data - As a result of the previous change,
modify()now correctly fetches the target instance based on name or functionalKey, not just on id
Removed
Removed several outdated methods. To revert them, use the following options:
legacy.oldCollectionMethods.reenable: raw methods to fetch collectionslegacy.oldSearchMethods.reenable: raw methods to search instanceslegacy.logicDataMethods.reenable: methods in bean using Data class or other data layerLayerLogical separation of functionality within a single system/application, focused on code organization. artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.legacy.relationRetrievalMethods.reenable: methods in agent to fetch instances of related dataElementslegacy.searchDataRefMethods.reenable: methods to search instances with a SearchDataRef object instead of the more modern finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. objects
Note
nsx-actions.js:performSearch()uses the searchDataRef-based find action. So if you wish to use this method, enablelegacy.searchDataRefMethods.reenable
4.11.8 (2021-01-21)
Fixed
- Fixed having a single option for pageSize generating a pageSize picker with a single option
4.11.7 (2021-01-15)
Fixed
- Fixed issue where getName() on Data object of a DataElement with option
nameNotWantedcould throw a NullPointerException
4.11.6 (2021-01-04)
Fixed
- Fixed feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. with option
separator: '\n'to work as expected
4.11.5 (2020-12-18)
Fixed
- Fixed an issue where
runWorkflowWithTargets()would be interrupted because of the status of an engineService - Fixed bulk delete in combination with
ejbPolicy=LOCAL
4.11.4 (2020-12-08)
Fixed
- Fixed issue with
anyexpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. during harvest
4.11.3 (2020-11-27)
Added
Added fieldFieldA property of a DataElement expanded to a database column and user interface input element. options for second generation UI:
-
cruds.form.hide: Hide this fieldFieldA property of a DataElement expanded to a database column and user interface input element. in all forms -
cruds.form.hideOnCreate: Hide this fieldFieldA property of a DataElement expanded to a database column and user interface input element. on thecreateform -
cruds.form.hideOnModify: Hide this fieldFieldA property of a DataElement expanded to a database column and user interface input element. on theeditform -
cruds.form.disable: Disable this fieldFieldA property of a DataElement expanded to a database column and user interface input element. in all forms -
cruds.form.disableOnCreate: Disable this fieldFieldA property of a DataElement expanded to a database column and user interface input element. on thecreateform -
cruds.form.disableOnModify: Disable this fieldFieldA property of a DataElement expanded to a database column and user interface input element. on theeditform
Added data/component/applicationInstance option cruds.table.pageSize, which can be configured as follows:
cruds.table.pageSize: 10: set the pageSize to specific number (10 in this case)cruds.table.pageSize: unlimited: disable pagingcruds.table.pageSize: 10, 25, 50: add a dropdown to the table to select the pageSize (her with options 10, 25 and 50)
Fixed
- Fixed issue where fieldFieldA property of a DataElement expanded to a database column and user interface input element. errors would not show
4.11.0 (2020-11-24)
Changed
- expansionTrace zip: Replace
::with//when using dataRefs as value to avoid parsing ambiguity
Added
- [phase] Added
initializephase, which is present for both harvest and expand and runs at the start - [cruds] Added bulk delete feature, activated by appInstance option
cruds.bulk.delete - [UI] Added expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for
-actions.jsfile, which contains functions for UI actions sent to the backend - [TreeToPrime] Added feature for PrimeToTree to automatically provision missing option types in PR
4.10.6 (2020-11-24)
Fixed
- Fixed issue where artifactPathModifiers were being calculated before isApplicable
4.10.5 (2020-11-12)
- Merged v4.9.4
4.10.4 (2020-11-10)
Added
- Applied changes to mapping parameters and delegates to isApplicable conditions as well
Fixed
- Fixed issue with 4.10.3 where calculating the artifactPath would throw an exception at runtime
4.10.3 (2020-11-09)
Changed
- Changed how delegating and extendable composites work:
- delegating: changes the variable named after the element to the 'model' object, adds
<elementName>Wrappervariable for the composite object - extendable: extensions can be accessed with
<parent>.getExtension['<extensionName>']
- delegating: changes the variable named after the element to the 'model' object, adds
Added
- Added
featureas parameter in mapping files for features - Added
expansionResourceas parameter in any mapping file - Added parent element and other ancestors as parameter in any mapping file (e.g. use
componentin DataElement expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.)
4.10.1 (2020-11-04)
Fixed
- Removed scope provided for multiple dependencies so that other projects can depend on just
Expandersinstead of all related artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.. Instead, build is managed with assembly descriptor.
Updated
- Merged changes from
v4.8.2release
4.10.0 (2020-10-29)
Added
- [mapping] Any property or method calls to a composite implementing DelegatingComposite are delegated to the internal model object.
- [mapping] Extensions can be added to ExtendableComposites to use them as regular properties in the mapping files
Updated
- Uses prime-core 2020.13.2 as source for elements classes instead of elements-shared etc.
4.9.4 (2020-10-30)
Changed
- [fileUpload feature] Fixed improper handling of URI/File in file upload; improved error reporting
Fixed
- Fixed expansion using different encoding than harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories.
4.9.3 (2020-10-29)
Added
- [persistence.xml] Use Hibernate 5's
org.hibernate.jpa.HibernatePersistenceProviderwhen configured- to enable, add applicationInstanceOption
hibernate.version : 5 - by default (or when version is set to
4), we use the currentorg.hibernate.ejb.HibernatePersistence
- to enable, add applicationInstanceOption
4.9.2 (2020-10-20)
Changed
- [internal] Internal reorganization
- Moved src under ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. module
- Fixed expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-test-utils depending on expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-core instead of e-common + e-skeleton (to avoid cyclic dependency)
4.9.1 (2020-10-09)
Added
- [maven] The component option
maven.component.isJarModulewill make sure the logic layerLayerLogical separation of functionality within a single system/application, focused on code organization. of your component is built as a jar module instead of an ejb module. - [internal] Added BlockingJobManager to run single-threaded for debugging
- [perf] Added caching for ArtifactPathBuilder
- [perf] Bunch of caching and general performance improvements
Fixed
- [utils] Updated isApplicable on ReporterExpander to only expand if the component has a dependency on utils
Changed
- [TreeToPrime] TreeToPrime expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. are now only active if the applicationInstance option
enableTreeToPrimeis defined - [js] plain AMD/RequireJS returns replaced with CommonJS-like exports
return { a : a };vsvar exports = {}; exports.a = a; return exports;- has no impact on runtime functionality
- enables better module detection for VSCode+tsc+JS combination
Updated
- [internal] expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-skeleton updated expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 4.0.2.2 -> 4.7.0
- [internal] updated nsx-parent 2019.5 -> 2020.9.1
Removed
- [test] Removed deprecated
ArtifactExpander#getContent- use
ArtifactExpander#getContentWithoutFeaturesorArtifactExpander#getArtifact#getContent
- use
4.9.0 (2020-09-30)
This version releases changes made to make the metamodel-stack possible.
The most important feature is the introduction of expanders-core, which includes only the expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. infrastructure
needed to expand anything.
Updated
- Merged changes from
v4.6.x,v4.7.x, andv4.8.x(v4.8.1) releases
4.8.2 (2020-11-02)
Added
- [valueFieldType] Added error message when referencing a valueFieldType that is not from the same component or from a componentDependency
- [valueFieldType] Added error message finding a valueFieldType template which is not mapped to any valueFieldType in the model
Fixed
- [version fieldFieldA property of a DataElement expanded to a database column and user interface input element.] Added missing VersionField feature, which adds optimistic locking to a dataElement
4.8.0 (2020-09-24)
- [anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.] Added several feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to ProjectionPojoExpander
- [workflow] Added
claimInstances()method to claimable dataElements - [workflow] Added support in engineBean for
runWorkflowWithEngineService()andrunWorkflowWithTargets()methods
Changed
- [ui] Modified
defineSearchBar()function to return an object containing the search fieldFieldA property of a DataElement expanded to a database column and user interface input element. value observable + calling it and storing the result in thepage-afteranchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
4.7.1 (2020-09-30)
Fixed
- Fixed issues with
java_pojo.stgorValueFieldTypeMapping.xmlnot being available in tests
4.7.0 (2020-09-08)
Fixed
- Fixed css class of finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. button in UI2
- Fixed valueFieldType template loading to search for both name and fullType. (This fixes issues with DateTime on Linux)
4.6.0 (2020-06-29)
Added
- The FinderBean will now skip any data queries where the result is expected to be an empty set, based on the count
result or if the rowsPerPage is set to 0. Can be disabled with the option
jpa.optimization.skipDataQuery.disable.
Changed
- All essential expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. classes are now gathered in
expanders-core. Expansion-resources should depend on this as much as possible instead ofExpanders, so that they can be expanded without the need of the default expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. stack. field-type-expanderscontains essentials for value-fieldFieldA property of a DataElement expanded to a database column and user interface input element.-typesfunctional-key-expanderscontains essentials for functional key dataRefs- Tester classes now use PrimeDataLoader from elements-ioxml, since it provides better support for additional data-resources outside prime-data.
4.5.6 (2020-08-26)
Fixed
- [expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-tests-utils] Fixed loading of external DataResources when testing ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
4.5.4 (2020-08-17)
Fixed
- Fixed css class of finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. button in UI2
- Fixed valueFieldType template loading to search for both name and fullType. (This fixes issues with DateTime on Linux)
4.5.2 (2020-07-01)
Fixed
- Fixed Ln03 setter in CrudsExpander by removing a reference to non-existent exception
4.5.1 (2020-06-16)
Changed
- Updated commons-io to 2.7
Fixed
- Fixed read streams not being closed when comparing files for overriding
4.5.0 (2020-05-29)
Added
- Added
FeatureTester.isApplicableandFeatureTester.isNotApplicable
Changed
- Updated dependencies
4.4.12 (2020-07-02)
Fixed
- Fixed Ln03 setter in CrudsExpander by removing a reference to non-existent exception
4.4.11 (2020-06-25)
Fixed
- DataRefConverter now checks for empty Strings instead of just
nullvalues before parsing functional keys
4.4.10 (2020-06-15)
Added
- Added custom and feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to FinderBeanExpander
4.4.9 (2020-06-15)
Added
- Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to FinderBean
4.4.8 (2020-05-28)
- Internal cleanup
4.4.6 (2020-05-28)
Added
- Added several anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to
getData()andgetDataRef()methods in the CrudsExpander - Added
@anchor:includesto component struts XML
Fixed
- Fixed issue where DateLong fieldsFieldA property of a DataElement expanded to a database column and user interface input element. were not initialized as Date fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in the forms, which created issues with the timezone conversions.
4.4.5 (2020-05-11)
Added
- Ln03 fieldsFieldA property of a DataElement expanded to a database column and user interface input element. can now be imported and exported with csv files.
Fixed
- The shouldEngineRun method in engineBeans should now fail correctly is the engineService can not be found.
4.4.3 (2020-05-04)
Changed
- EditorConfig now applied to all file types + some additional rules.
Fixed
- Fixed issue with graph options using the wrong page template
- Fixed isRequired option for Ln03 fieldsFieldA property of a DataElement expanded to a database column and user interface input element.
4.4.1 (2020-04-27)
Fixed
- Fixed OGNL
List.existsnot being registered forletinside included mappings.
4.4.0 (2020-04-24)
Added
- ApplicationInstance or component options
jpa.datasourcewill set the data-sources in the persistence.xml file. The value of the option should refer to the name of the custom data-source. The optionjpa.datasource.nonjtacan be added to define a specific non-jta data-source. - ApplicationInstance option
jpa.entity.name.formatwill define the naming strategy for jpa entities. By default, this is the fully qualified java name. Alternative formats are:java_underscore: fully qualified java name, but with.replaced with_element:<component.name>.<element.name>underscore:<component.name>_<element.name>
Changed
- RecursiveDirectoryCopier can now handle copying from zip files
Removed
- WebStylesDirectoryCopier has been moved to web-styles
4.3.10 (2020-04-27)
Fixed
- (backport) Fixed OGNL
List.existsnot being registered forletinside included mappings.
4.3.9 (2020-04-16)
Added
- Added jetty-schemas to WAR pom to go with JEE6+
Changed
- JavaEE version (technicalInfrastructure.jeeVersion) must be the spec name (5, 6, ...), and not a patch version ( 6.0.15)
4.3.8 (2020-04-14)
Fixed
- [internal] Updated OGNL and removed use of single-equals comparator pre-processing of OGNL statements
==/eqshould now work as expected even on nulls (null == 'string') and non-Comparable objects (by using.equals()method instead of identity comparison)- OGNL assignment (
=) is no longer broken, although its excessive use is not recommended
4.3.7 (2020-04-14)
Fixed
- [internal] Fixed pre-compiled OGNL expressions being ignored sometimes
Changed
- [internal] Enabled mapping cache by default
- disable with flag
expanders.mappingReader.useCachein case of issues - if error occurs, the XML stacktrace is still likely incorrect, but expansion can be re-run with the cache disabled to (temporarily) get correct stacktrace
- disable with flag
4.3.6 (2020-04-14)
Added
- Added multiple anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to InstanceViewHtmlExpander and ListHtmlExpander
- Added multiple anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to WebXmlExpander
- Added support for src directories in applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. control directory. (disable with applicationInstance
option
disableControlSources) - Added HSTSFilterExpander, which adds a
Strict-Transport-Securityheader to each response, which is activated by the applicationInstance optionsecurity.hstsHeader. The value of this option can set the content of the header if the default content does not suffice.
Fixed
- Fixed EngineBeanExpander missing extra imports for taskStatus and timerStatus where necessary
- Fixed dataElement.LocalExpander running for REMOTE ejb policy.
- Fixed dataElement.AgentLocalExpander running for REMOTE ejb policy.
Changed
- [elements-ioxml] ImportRunners now print the result of an import to the console
- [elements-ioxml] TreeToPrime now correctly logs errors when updating instances during imports
4.3.5 (2020-04-02)
Added
- Added
isServiceflow option which adds logic to make a flow into a service.
Changed
- flag switch
expanders.artifactPathBuilder.useJavaMappingis now enabled by default
Fixed
- Fixed EngineBeanExpander missing flowElement.targetClass imports when in a different package
- Fixed EngineBeanExpander missing shutdown check in processBatch method
- Fixed StateTransitioner's endTransition() not updating taskStatus
4.3.4 (2020-03-30)
Fixed
- [knockout] fixed custom value field typesValue Field Type (ValueFieldType). [Deprecated] A deprecated specification defining how to store and represent the values of a ValueField, superseded by ValueTypes. rendering as
[Object object] - Fixed duplication for defaultValue feature
- Fixed issue with long types for defaultValue feature
4.3.3 (2020-03-30)
Fixed
- Fixed KoListHtmlExpander not processing calculated fieldsFieldA property of a DataElement expanded to a database column and user interface input element.
- Unfixed KoListHtmlExpander to match 3.x behavior
- when
nameis not in isInfoField projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view., it is now ignored for all projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. namefieldFieldA property of a DataElement expanded to a database column and user interface input element. is always forced first irrespective of declared fieldFieldA property of a DataElement expanded to a database column and user interface input element. order
- when
4.3.2 (2020-03-26)
Changed
- Updated maven plugins to their latest versions
- compiler-plugin 3.8.1, maven-ear-plugin 3.0.2, maven-war-plugin 3.2.3, maven-ejb-plugin 3.0.1, build-helper-maven-plugin 3.0.0, maven-assembly-plugin 3.2.0
- Added support for targeting JDK9 and higher
- not specifying technicalInfrastructure.javaVersion now throws an exception instead of silently defaulting to 1.6
- [experimental] added applicationInstanceOption
experimental.maven.useIncrementalCompilationto speed up repeated builds - [experimental] added applicationInstanceOption
experimental.maven.speedOverSizeto enable caching and disable compression of ear/war builds - [experimental] set flag switches via expansionOption
javaProperty.my.propertyName
4.3.1 (2020-03-26)
Added
- [experimental] property flags can be set via environment variables as well
- e.g. property 'expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..artifactPathBuilder.useJavaMapping' or env 'EXPANDERS_ARTIFACTPATHBUILDER_USEJAVAMAPPING'
- ApplicationInstanceOption
struts.unauthorizedwill define the behaviour of the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. when the user is unauthorized. If undefined or set toredirect, the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. will redirect unauthorized users to the relogin page. If set toerror-page, a dedicated unauthorized error-page will be expanded. - ApplicationInstanceOption
struts.unauthorized.jsonwill define the response on an unauthorized json request. The option value should bestatus <statusCode>where statusCode is 401 or another http status code. A result will be added to struts that returns this status code. - Feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. can add a
sortoption with the fully qualified name of a sorter class. This sorter class should implementComparator<FeatureSegmentComposite>. Adding this will make sure the feature segments are sorted by the provided sorter class before being injected. - Added several custom and feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in InstanceFormHtmlExpander and InstanceFormJsExpander
Changed
- ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. will now generate more
/gen/directories on applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. level to prevent build failures if those directories are added to layerImplementations, but none of the related expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. were activated.
Fixed
- Fixed KoListHtmlExpander running only on info projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. (fixes missing
dataElement-dataProjection-ko-list.htmlfiles)
4.3.0 (2020-03-19)
Added
- [experimental] The fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
defaultValuewill provide a default fieldFieldA property of a DataElement expanded to a database column and user interface input element. value for all new instances. E.g. adddefaultValue: trueto a Boolean fieldFieldA property of a DataElement expanded to a database column and user interface input element. to set it to true by default or adddefaultValue: 'new name'to a String fieldFieldA property of a DataElement expanded to a database column and user interface input element. to provide 'new name' as initial value.
Changed
- ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. now require Java 8+
- Struts ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. now target either Struts 2.3 or Struts 2.5, with Struts 2.5 being the default
- to use struts 2.3, add applicationInstanceOption
struts.versionwith value2.3 - requires nsx-runtime, baseComponents, and prime-data 2020.5.0+
- to use struts 2.3, add applicationInstanceOption
- Soft delete on modify with disabled=yes is now opt-in behind
applicationInstanceOption('cruds.softDeleteOnModify')
Fixed
- Applicable layersLayerLogical separation of functionality within a single system/application, focused on code organization., layerLayerLogical separation of functionality within a single system/application, focused on code organization. implementation technologies, and library technologies are now properly filtered when building POM dependency/dependencyManagement lists.
Removed
- Removed Struts2View feature for unused Struts view layerLayerLogical separation of functionality within a single system/application, focused on code organization.
4.2.7 (2020-03-16)
Added
-
New anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in BeanExpander (CsvFeature):
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-post-import
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-post-export
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-import-unsupported
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-export-unsupported
-
New anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in CsvExporterImplExpander:
-
New anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in CsvImporterImplExpander:
Changed
- Methods
importFile()andexport()in bean now define animportResultorexportResult, which is returned at the end of the method. This allows for new anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. Though usual customisations should not be broken, it might be worthwhile to check whether the code may need to be cleaned up.
4.2.4 (2020-02-26)
Added
custom-access-info-stackandcustom-access-info-default-style-stackanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. added to account security stack in struts header xml.
Changed
- Loosened encoding generated artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project..
4.2.2 (2020-02-21)
Changed
- ioxml client expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. now use CliParser from nsx-runtime/nsx-shared-cli
- Moved initialization of agent in CommandPerformer to prepare method to allow custom interceptors to provide an alternative UserContext.
- Adjusted the encoding so that all templates are read as
UTF-8and all artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. are generated to the same encoding.
Added
- Struts fieldFieldA property of a DataElement expanded to a database column and user interface input element. errors are now translated to CommandResult errors in the CommandPerformer action class.
- Disable with applicationInstance option
struts.disableStrutsErrorsToCommandResult.
- Disable with applicationInstance option
4.2.1 (2020-02-11)
Changed
- If the fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
generateUuidis given the valueif_empty, the fieldFieldA property of a DataElement expanded to a database column and user interface input element. will only be set with a new UUID (on create) if the fieldFieldA property of a DataElement expanded to a database column and user interface input element. was empty. - Expanded EditorConfig now includes support for
.htmlfiles.
4.2.0 (2020-02-07)
Added
- Added
runExpansionStep()method to ExpanderTester and FeatureTester to run expansionSteps before testing. This can be useful if the expansionStep adds an option to the model or applies some other modification necessary for the test. - ProjectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. pojo's
getDataRef()methods now return typed DataRef classes if functionalKey is defined - Otherwise, the
getDataRef()methods return DataRefs with component, packageName and className filled in - EditorConfig file, which is applied to all
gen(andgen_test) folders to ensure a consistent code formatting. This can be disabled using the ApplicationInstance optioneditorconfig.disabled. The rules can also be applied globally ( also toextandtest) using the ApplicationInstance optioneditorconfig.global. - The fieldFieldA property of a DataElement expanded to a database column and user interface input element. option
generateUuidwill inject code to generate a new UUID in thecreate-afterProjectionfeature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. of the cruds create method. This will ensure that a new UUID is generated and stored for these fieldsFieldA property of a DataElement expanded to a database column and user interface input element. when an instance of the DataElement is created. The option is applicable to fieldsFieldA property of a DataElement expanded to a database column and user interface input element. with aStringorbyte[]storage type. - For all active technologies a
gen_testfolder will be expanded withjavaandresourcessubfolders to allow expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to expand unit tests that can be harvested.
Changed
- Struts ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. now target Struts-2.5
- requires baseComponents 2020.2.0+ and nsx-runtime 2020.2.0+
- Behavior of
suffixparameter for feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. is now the same as the behavior of thesuffixparameter in inline feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. This means that thesuffixwill now be placed only after the last feature injected. Theseparatorparameter is now also available, which places the separator in between all features. The combination of theseparatorandsuffixparameters will mimic the previous behaviorsuffix, where it was placed after every injected feature. Aprefixparameter was also added just as it is available in inline feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. Theprefixis placed in front of the first feature. E.g.@anchor:featurename(suffix : ', ')'is now@anchor:featurename(separator : ', ', suffix : ', ')'.
Fixed
- Fixed bug in ExpansionJobManager that in some occasions would skip additional tasks added by additionalExpansionStep.
4.1.1.1 (2020-02-07)
Fixed
- Fixed issue with manyToMany fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in old UI. The issue was caused by initializing the fieldsFieldA property of a DataElement expanded to a database column and user interface input element. incorrectly in
the
<dataElement>-ko-mapper.jsscripts.
4.1.0 (2020-01-22)
Removed
- Pre-rewrite (< v4.0.0) expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. classes have been removed. If they are necessary nonetheless, add a expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. 3.2.1.7 or lower to the classpath
Added
- Added
before-harvestandafter-harvestphases to the harvest runner. - Added
ExpansionStepTesterclass to facilitate the implementation of tests of applicability conditions for additional expansion steps. - Added
custom-annotations-getter-idandcustom-annotations-setter-idanchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in Data class.
Changed
<Element>Cruds::project()now takes Context as input and only Data objects of the correct DataElement- Removed noCache result parameters from StrutsElementExpander. To reinsert them, use applicationInstance
option
struts.useNoCacheResult. These parameters have been removed because they overwrote the behaviour of the NoCachingInterceptor, which is more complete. - Value field typeValue Field Type (ValueFieldType). [Deprecated] A deprecated specification defining how to store and represent the values of a ValueField, superseded by ValueTypes. pojo comparison will now use identity comparison by default
- Value field typeValue Field Type (ValueFieldType). [Deprecated] A deprecated specification defining how to store and represent the values of a ValueField, superseded by ValueTypes. pojo now provides a default hashcode function. Any custom implementation needs to be moved into the
custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. This can be disabled by adding componentOption
valueFieldType.disableHashCodeMethod. - Table names are now escaped in the
@Tableannotations in the Data classes. This prevents collisions with reserved words in certain databases, such asUserin SQL Server. This behavior can be disabled with the ApplicationInstanceOptiondb.schema.disableEscapeTableName.
Fixed
- ValueFieldTypePojoExpander now only runs if
valueFieldType.customTransportClassis false - Classes interacting with trees will now use the actual fieldFieldA property of a DataElement expanded to a database column and user interface input element. name for children instead of the name of the child dataElement.
- Fixed names for abbreviations in translation files (e.g. 'ETB' instead of 'e t b')
- CALCULATED_FIELD with isRequired are no longer added to Projector's checkRequired()
- CALCULATED_FIELD with custom valueFieldType now correctly returns valueTypeClass in Cruds
@expanderCommentin test STG templates is no longer tied to specific comment formats
4.0.9.1 (2020-01-08)
Fixed
- Added missing imports for FunctionalKeyDataRefExpander
- Functional key dataRefs toString() methods now return
""when on errors - Functional key dataRefs toString() methods will null-check values before converting to avoid nullPointerExceptions and "null" strings
4.0.9 (2020-01-06)
Added
- Added expanderResource name to expanderComment
- e.g.
<!-- expanded with nsx-expanders:4.0.9-SNAPSHOT, expansionResource org.normalizedsystems:sand-castle-expanders:1.0-SNAPSHOT -->
- e.g.
- [experimental] Updated java-mapped ArtifactPath
- toggled by
-Dexpanders.artifactPathBuilder.useJavaMapping=true|false(false by default)
- toggled by
- [experimental] Updated mapping cache corrupting XML stacktrace (disabled in 4.0.7.2)
- toggled by
-Dexpanders.mappingReader|mappingFactory.useCache=true|false(both false by default)
- toggled by
- [experimental] Stop expansion on first error instead of collecting all failures first
- toggled by
-Dexpanders.expansion.failFast=true|false(false by default)
- toggled by
- Added basic test-template caching
Fixed
- ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact./... Tester method lookup now searches for
org.junit.Testororg.junit.jupiter.api.Testannotated method in stacktrace
4.0.8.2 (2019-12-17)
Changed
- Always use prime-data's expansionResource.xml
Fixed
- Fixed
<elementTypeName>any</elementTypeName>failing type validation
4.0.8 (2019-12-16)
Fixed
- CompositeFinderExpander: removed exception for dataElements with a parent which does not have a reverse fieldFieldA property of a DataElement expanded to a database column and user interface input element. and replaced it with a customizable method
Added
-
New anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to StateTransitioner:
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-interim-before
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-interim-error
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-interim-after
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-failed-before
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-failed-error
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-failed-after
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-end-before
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-end-error
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-end-after
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-revert-before
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-revert-error
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-revert-after
-
New anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to DataRefConverterExpander:
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-formatX
Changed
- Extracted creation and update of TaskStatus instances in StateTransioner to WorkflowTaskStatus feature
4.0.7.6 (2019-12-06)
Fixed
- Added encoding of the HTML document to artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. generated by
PageHtmlExpanderandIoPageHtmlExpander - Fixed indent of
PageHtmlExpander
Added
-
New anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to
PageHtmlExpanderandIoPageHtmlExpander:
4.0.7.5 (2019-12-02)
Added
- Added SVG comment format
Fixed
- Fixed expansion and harvest directories using
applicationInstance.shortNameinstead ofapplication.shortName <Composite>ExpansionContextis now validated against<expanderComposite.elementTypeName>
4.0.7.3 (2019-11-21)
Added
-
Added
artifactModifiersfieldFieldA property of a DataElement expanded to a database column and user interface input element. to ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. which allows variables to be defined in ognl which can be used in the artifactName and PathExample of how to use it:
<expander name="...">
<!--...-->
<artifactModifiers>#{
'postfix' : taskElement.getOption('useLocalInterfaceName').defined ? 'Local' : 'Remote'
}
</artifactModifiers>
<artifactName>$taskElement.name$$postfix$.java</artifactName>
</expander>
- FieldFieldA property of a DataElement expanded to a database column and user interface input element. elements are now expandable
4.0.7.2 (2019-11-12)
Fixed
- Disabled caching of mapping files to prevent stacktrace from being corrupted
4.0.7.1 (2019-11-08)
Added
- DataExpander now adds length property for BigString
@Column(columnDefinition="varchar(X)")becomes@Column(columnDefinition="varchar(X)", length = X)
Removed
- Obsoleted JaxRs struts features
4.0.7 (2019-11-03)
Added
- [testing] Added dependency on expanded onion specs
- [testing] Use expanded ExpansionContext factories for tests setup
Changed
- [testing] Default applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and component expansion directories are
C:/APPLICATION_ROOTandC:/COMPONENT_ROOT
4.0.6.3 (2019-10-29)
Fixed
- CommandFormHtmlExpander now correctly expands Ln03/Ln06 fieldsFieldA property of a DataElement expanded to a database column and user interface input element.
- CommandPojoExpander initializes collections fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to placate struts
4.0.6.1 (2019-10-25)
Added
- Implemented
disableExpansionTraceexpansionOption to speed up expansion. This disables the gathering of meta-data, used by the codeImport, reporting and nsx-model-querying.
Changed
- Errors in cruds are now logged at ERROR level instead of INFO.
- To revert the behavior, use applicationInstanceOption
logging.cruds.degradeErrorToInfo. Note that this option will be eventually removed.
- To revert the behavior, use applicationInstanceOption
4.0.6 (2019-10-18)
Added
-
new anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in net.democritus.expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..knockout.dataElement.SortingJsExpander:
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-variables
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-sorting-columns
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-get-sort-fields
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-after
4.0.5.3 (2019-10-14)
Added
-
new anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in net.democritus.expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..common.projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..DataRefProjectorExpander:
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-toData-setters
4.0.5 (2019-10-08)
Added
-
new anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in net.democritus.expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..ejb3.serviceElement.EngineBeanExpander:
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-after-loop
-
new anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in net.democritus.expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..common.projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..ProjectorExpander:
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-toData-setters
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-project-setters
- several feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. (used by expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.)
-
Added OpenJPA automatic schema updating that is enabled by default
-
Added applicationInstanceOption
persistence.schemaUpdatingto control automatic schema generation- none/empty or 'update' to enable, 'none' to disable
-
Added applicationInstanceOption
experimental.cruds.failOnProjectionNotFound- return CrudsError when elements are not found via Cruds instead of CrudsSuccess(object-with-empty-fieldsFieldA property of a DataElement expanded to a database column and user interface input element.)
-
Added ExpansionComposite to ExpansionConfigurationExpansionContext, which can be used in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to access meta information of the expansion (artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project., custom insertions ...).
-
Added expansion option
exportTraceZip, which creates a zip which contains information on the expanded artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project., custom insertions etc. This will replace the default expansion of artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project.. -
Add expansion option
skipPhasewhich lets you define which phases to skip during expansion (e.g overlay) -
Added XML Schema to
persistence.xmland updated version from 1.0 to 2.2
Changed
- Using JDNI appName lookup (java:app/AppName) is now behind
jndi.appNameapplicationInstanceOption - persistence.xml version updated to 2.2
ECLIPSELINKschema updating changed fromcreate-tablestocreate-or-extend-tables- [struts]
PerformerExpandernow returnsTaskResult.error()on perform failure
4.0.4 (2019-08-27)
Added
- Expansion option
harvestBaseComponentswill make sure the baseComponents are harvested, as they are ignored by default. - Component Option
cascadeDeletewill add cascading delete for all collection fieldsFieldA property of a DataElement expanded to a database column and user interface input element. with optionaggregate: compositeThis option requires the option
enableCompositesto work
Fixed
- Used
application.shortNameinstead ofapplicationInstance.shortNameduring expansion - Removed dependencies on
validationImplementation - Fixed issues with xml tag and directory names for ioxml
4.0.2.5 (2019-08-12)
Added
-
new anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in net.democritus.expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..ejb3.flowElement.EngineBeanExpander
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-orchestrate-before
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-orchestrate-after
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-batchDescription
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-processBatch-before
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-processBatch-after
- anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:custom-processTask-after
-
ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for CompositeToTree (ioxml)
4.0.2.4 (2019-08-02)
Fixed
- Fixed default constructor of functional dataRefs to set componentName, packageName and elementName
- Migrated latest changes to ioxml expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to composite-based expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
4.0.2.3 (2019-08-01)
Fixed
- Fixed target paths of both
*-io-page-model.jsand*-io-page.htmlfile - Fixed error logs for import/export
4.0.2.2 (2019-07-30)
Fixed
- Fixed external meta-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. being ignored (since 4.0.1.6)
4.0.2 (2019-07-12)
Added
- ExpansionOptions
excludeExpanders,excludeFeaturesandexcludeExpansionStepsto exclude expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. etc. from running. - ExpansionOptions
includeExpandersto select specific expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to run. - ExpansionOption
hideAnchorsto hide all non-custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. - AdditionalExpansionSteps can introduce new jobs to the ExpansionJobManager to make external expansionRunner possible
4.0.1.7 (2019-07-10)
Fixed
- Fixed issues with component-level overlay
- Fixed issues with combination nameNotWanted + hasDisplayName not showing any names
4.0.1.3 (2019-07-04)
Fixed
- Fixed issues with fieldsFieldA property of a DataElement expanded to a database column and user interface input element. with type CALCULATED_FIELD in ListHtmlExpander and InstanceViewHtmlExpander (UI2)
4.0.1.2 (2019-06-26)
Added
- Added missing dynamic DEPLOYMENT_NAME in ComponentMetaData for modern applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. servers
Fixed
- Fixed nullPointerException in functionalKey dataRef to string method
- Fixed issue with ValueFieldTypes in validators.xml
4.0.1.1 (2019-06-25)
Fixed
- Fixed issues with Service Element ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.
- Fixed noDataLayer option being ignored
- Fixed issues with full import of a new applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
- Restored names of enums for DataState to be backwards compatible with some edge cases
4.0.1 (2019-06-21)
Added
-
DataElements can define the option functionalKey
-
The flow option
setBatchFinderwill allow you to modify the finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. used to find the next batch in your EngineBean -
FindersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. can now use the
Se(strictly equals) operator. In this case, only the=operator will be used in JPA and not, in case of a String, theLIKEoperator.The
Seoperator can be used to e.g. findByStatusSe, which can then be used in thesetBatchFinderoption to avoid using a slow LIKE operator in your engineBean.
Changed
-
In previous versions, if a linkfield was set in the Cruds-class, any failure to find the linked instance would be ignored and the link would not be said. The setters have now been made stricter and will throw an exception should this occur. In order to avoid this behavior, use the application instanceApplication Instance (ApplicationInstance). A target technology configuration defining how an application's architecture layers are built and executed. option
disableStrictLinkMode.This will prevent the cruds layerLayerLogical separation of functionality within a single system/application, focused on code organization. from silently ignoring incorrect link fieldsFieldA property of a DataElement expanded to a database column and user interface input element. during an import.
Fixed
- A bug has been fixed where a Ln02 link fieldFieldA property of a DataElement expanded to a database column and user interface input element. could not be set to null. This fix can be disabled with the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
instance option
disableFixNullableLn02.
4.0.0 (2019-06-12)
Added
- Option
hasTranslationnow works for name fieldFieldA property of a DataElement expanded to a database column and user interface input element. and findByNameEq finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. - Option
hasTranslationon fieldFieldA property of a DataElement expanded to a database column and user interface input element. will be used for the translation of the corresponding findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. the translation properties for the English translation will now contain correct English translations the pom.xml files of different layersLayerLogical separation of functionality within a single system/application, focused on code organization. may contain new source and resource directories to be more consistent with the ANT build
Fixed
- Options
no*Layerare now correctly applied, mainly when added as component options. If any artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. are missing, check for options
Changed
- Rework of the expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. framework. The features of the expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. have been kept the same as the previous versions. The biggest changes will be in the use and extension of the expansion. There might be some small variations/improvements to the previous versions.
- The classes in the client layerLayerLogical separation of functionality within a single system/application, focused on code organization. have been changed to allow version transparency between changes of a dataElement
- The order of harvested anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. may change. Therefore it is best to harvest and commit these changes before making any functional changes. For more information, see harvest sorting.
- The expansion from the PR will now take the CustomRepository of your components in account when expanding the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.. Which means that if this repository is different from the customRepository of the applicationInstance, the expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. might be looking in the wrong harvest directories. To fix this, make sure that there is only one directory named after the component in all used source bases.