expanders
7.7.2 (2024-08-12)
Fixed
- [NSX-454][VEGA-382] Fixed issues with
null
values in UniqueConstraint query.
Merged
- Merged 6.2.8 into master.
7.7.1 (2024-08-09)
Added
- Added feature anchors to calculate methods
- Added option type for
feature.mapping.doNotInheritExpanderMapping
andelementType
on Feature. - Added option type for
isFindAll
on Finder. - Added option type for
parentLayer
on LayerType.
7.7.0 (2024-08-03)
Changed
- The option
projection.detailsWithoutRefs
is now cascading and available onComponent
andApplication
as well. - Moved JAX-RS standard API 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
Ne
finder operator.
Added
- [NSX-285][NSX-411] Added openapi documentation for upload and download endpoints.
- [NSX-285][NSX-411] Description for
included
property of resource documents. - Added
Sne
finder 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
type
parameter 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-core
to version2024.4.2
.
7.5.0 (2024-07-10)
Added
- Added syntax for custom anchors. In the Expander/Feature template, you can use
@custom:my-anchor-name
, which will be translated to// anchor:custom-my-anchor-name:start
and// anchor:custom-my-anchor-name:start
, or whatever comment syntax is used in the generated artifact. (This uses the same logic for creating line comments as Features.) - [NSX-285][NSX-411] Added openapi documentation for application-level endpoints.
Fixed
- [NSX-480] ArtifactExpander now avoids resolving expander model when retrieving artifact definition to prevent issues while testing Features.
- Updated parsing of
separator
option for feature anchors 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 anchors 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
relationships
elements where needed to the documentation of theGET
endpoints.
Added
- [NSX-285][NSX-411] Initial documentation for
POST
,PATCH
andDELETE
endpoints.
Changed
- [NSX-285][NSX-411] Moved the OpenAPI specification for the new standard API into the
control/openapi
folder under the application 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
/NotIn
find operation. - [NSX-285] Added support for
Null
/NotNull
find 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 fields.
- [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 valuefields in the standard API.
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+json
to return errors. - [NSX-285] Added the type of a resource to the resource not found error message.
Changed
- [NSX-285] Added
Content-Length
header for file downloads. - Replaced use of deprecated
net.democritus.mapping.Base64
class in shared mapper class withjava.util.Base64
. - Replaced usage of
applicationInstance.name
is several new Expanders 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]
IllegalStateException
exceptions are now caught and returned as an internal server error.
Removed
- Removed import for deprecated
net.democritus.io.ByteArrayConverter
class fromImporterAction
. - [NSX-285][NSX-485] Removed placeholder
OopsSomethingWentWrongException
.
7.4.0 (2024-06-10)
Added
- [NSX-285] Implemented
StandardApiRootFeature
to register JAX-RS providers at application level. - [NSX-285][NSX-423] Implemented file IO connector with up- and download endpoints for file uploads in the context of a specific field.
7.3.0 (2024-05-17)
Added
- [NSX-285][NSX-420] Implemented connectors to call commands through the JAX-RS standard API.
- Added options
projection.projector.provided
andprojection.projection.provided
for DataProjections. 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 field in the view template.
- [NSX-397] Added option 'view.details.exclude' for Field, which hides a field in the view template.
Changed
- [NSX-285] Moved registration of API connectors in JAX-RS standard API 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
,JaxRsApplicationActionsJsExpander
andJaxRsAgentJsExpander
to newknockout-jaxrs-stdapi-expanders
resource inweb-styles
. - Split off all expanders related to the standard JAX-RS API into a new
jaxrs-standard-api-expanders
resource. - Moved standalone knockout features to new
knockout-ui-addons-expanders
resource:BulkDelete
Multiselect
DefaultValue
FormLayoutConfig
SearchBar
TablePageSize
CommandButtons
Waterfall
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.0
net.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-support
library. - [NSX-285][QSEARCH-29] Added feature anchors to route connector.
- Updated Struts2 from
6.3.0.2
to6.4.0
. - Updated
ognl:ognl
:3.4.2 -> 3.4.3
7.0.7 (2024-04-17)
Changed
- Moved Jackson dependencies into
nsx-jackson-support
library. - Tag resolution logging is now optional. Add option
expansion.tags.logResolution
to expansionSettings to generate log files.
Added
- Added custom anchors to app-menu expander.
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 anchors 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.jaxrs
tonet.democritus.control.jaxrs
to 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 expander 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 Expanders 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 DataProjections
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 anchors 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 Expander 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 artifact 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/common
directory 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.disableId0OnCreate
in case this somehow breaks custom code.
Changed
- The option
maven.groupId
is 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-application 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 application, dashes are now removed if they are part of the application 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 asfalse
instead 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
kebabCase
format and.asKebabCase
string attribute support to stringtemplates. - Added support for tags. Tags can be supplied by tag-rules. Expanders, features and expansionSteps will only be enabled if all defined tags are present.
Changed
- Updated a number of expanders 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 anchor for maven surefire plugin configuration. (cherry-picked from 7.7.2)
Fixed
- [NSX-454][VEGA-382] Fixed issues with
null
values 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.enable
is no longer cascading, since cascading from application 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.alwaysPresent
for optionlegacy.nameNotWanted.pojoName
. This option ensures the name field is always present, even with thenameNotWanted
option. This ensures the behavior is the same as before version5.9.2
. - [VEGA-375] The option
agentRepository.enable
now also adds the AgentIf interface to the Agent class in the Proxy layer to prevent compile errors.
[VEGA-370][VEGA-375][VEGA-376] Removed the deadline for following options:
agentRepository.enable
/legacy.agentRepository.enable
common.name.alwaysPresent
/legacy.nameNotWanted.pojoName
legacy.proxyAgentInterface.reenable
legacy.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:implementation
feature anchor. - [VEGA-375] Created alias
agentRepository.enable
for optionlegacy.agentRepository.enable
.
Reverted
- [VEGA-375] Reverted change which removes ComponentLocalAgentsExpander. It is now possible to enable the expander
by adding the option
agentRepository.enable
to a Component or Application.
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 Expander 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 fields such
as
enteredAt
. These are still implicitly added based on the name, but can also be explicitly defined on other fields instead. The new options introduced match the following fields:enteredAt
: optionaudit.create.timestamp
enteredBy
: optionaudit.create.author
lastModifiedAt
: optionaudit.modify.timestamp
lastModifiedBy
: 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.1
to6.3.0.2
. (AddressesCVE-2023-50164
)
Fixed
- [VEGA-360] Fix struts-conversion properties file for ValueFieldTypes with name that differ from the valueClass field.
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 resources. The update to
commons-io
version2.15.0
changed its file comparison implementation, which broke it for virtual file systems.
Added
- Added deprecation warnings in Maven build by default. Can be disabled with
maven.hideDeprecationWarnings
.
Changed
- The expander framework now targets Java 17. (Expanded code for the JEE application stack is still Java 8 compatible.)
- Refactored up various deprecated calls to reduce deprecation warnings.
5.39.0 (2023-11-08)
Added
- Added
interfaces
feature anchors to the Agent- and LocalAgentExpanders - Added
execute-before
feature anchors 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]
FinderResolver
did not process IN field operator pairs for collection linkfields correctly whennull
was 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 Expander mapping file. It makes it easier to decouple the Feature. It also prevents issues in the tests caused by changes in the Expander 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 expanders-core.
Removed
- Removed TechnologyMapping class.
- Removed LayerConditionIsApplicable class.
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 field operator pairs were not filtered correctly from FinderResolvers in cases where they were paired up with field 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 expanders to the new import system for expanders, to allow expander 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
useLogicSecurity
expanded code that was missing an import in scenarios where a DataElement had no DataCommands.
5.36.5 (2023-10-04)
Fixed
HSTSFilter
was 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 expander templates:
net.palver.util.StringUtil.join()
net.palver.util.StringUtil.split()
Merged
- Merged
5.30.6
into main.
5.36.4 (2023-09-27)
Fixed
- [NSX-373] Fixed duplicate custom anchor
anchor:custom-delete-instance-button
, replacing it withanchor:custom-delete-list-button
for the bulk-delete button.
5.36.2 (2023-09-26)
Fixed
- Fixed an issue where
cruds.bulk.delete
would only work if the optionview.list.multiselect
is added. The option should have been provided automatically. - Revert imports in knockout artifacts to use
let
instead ofconst
, because this was breaking too much custom code.
5.36.1 (2023-09-23)
Fixed
- Fixed
db.schema
anddb.tableName
to 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
, previouslydatabaseSchemaName
db.tableName
, previouslydatabaseTableName
- In addition, made
db.schema
cascading. It can now also be applied to components. - Deprecated options which had very similar behavior to other options:
hasDataSchemaName
hasDataBaseSchema
hasDataTableName
- Updated
prime-core
to2023.8.0
5.35.1 (2023-09-22)
Fixed
- Updated expanders for options, so they correctly works on Application and not just
ApplicationInstance
:security.hstsHeader
experimental.maven.speedOverSize
cruds.bulk.delete
view.list.multiselect
cruds.softDeleteOnModify
struts.disableStrutsErrorsToCommandResult
struts.unauthorized
- Fixed dependency on snapshot build.
Added
- Added
pascalCase
format andtoPascalCase
string property to ST4 templating engine. - Added
pascalCase
format to OGNL expression engine.
Changed
- Updated options to use cascading functionality of OptionType:
cruds.table.pageSize
cruds.table.csvExportButton
5.35.0 (2023-09-21)
Fixed
- Changed
groupId
of every Maven module toorg.normalizedsystems.<Application.shortName>
by default to avoid collisions between projects.
Added
- Added option
maven.groupId
to set thegroupId
for all Maven modules in the project.
5.34.1 (2023-09-21)
Fixed
- Fixed issue in InstanceModelJsExpander that caused ln03 fields 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 Application option
ejb.logic.dataSourcesFix
. This changes the logic layer build to use the maven-assembly-plugin to include class files from the data layer 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.0
to6.3.0.1
. - Marked option
finders.enableTypedFinders
as redundant.
5.33.1 (2023-09-12)
Fixed
- Replaced a left-over use in the
Cruds
class ofnew DataRef(Long)
when using Ln05 fields.
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 artifact definition. It defines the current artifact 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'"/>
@imports
to insert the imports. group
statements will now insert anull
value 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 artifact 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@imports
line 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-application
now require authentication. - Updated Struts2 from
6.2.0
to6.3.0
. - All expansion runners were refactored to implemented
Consumable<T>
instead ofIExecutor<T>
:AdditionalExpansionStepRunner
ArtifactExpanderRunner
ArtifactHarvester
- Marked
net.democritus.acl.struts2.UserContextRetriever
as final.
Removed
- Removed all uses of
ParameterContextFactory
. The optionlegacy.parameterContextFactory.enable
can temporarily be added on the Application to re-enable it. (Expires 2024-03-01) - Removed
Bean.getInfo(Long)
. (Deprecated since 2019-03-11) - Removed
{Component}Agents
classes. The optionlegacy.agentRepository.enable
can temporarily be added on the Application 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
disableStrictLinkMode
anddisableFixNullableLn02
. 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
showLinkDetails
by 3 months to 2024-01-01.
5.32.0 (2023-08-28)
Added
- Added
FinderResolver
class, which is called from the logic beanfind()
method to resolve the DataRefs for fields 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 finders are now enabled by default. The option
legacy.typedFinders.disable
can temporarily be added on the Application to disable this behavior. (Expires 2024-03-01) - Moved
maven-surefire-plugin
to 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
IParamTargetValueProvider
fromnsx-runtime
toapplication-shared-struts2
. - Updated
nsx-runtime
:2023.5.0 -> 2023.6.1
Removed
- The option
finders.enableTypedFinders
was 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 field
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 field
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:Agent
classAgents
interfaceCommandPerformer
classCommandPreparer
classDetailsPreparer
classFindAction
classLocalAgent
classLocalAgents
classModifyAction
classProjectorAction
classProxyAgents
class
- [NSX-323] Removed imports for
net.democritus.acl.struts2.UserContextRetriever
where relevant.ContextRetriever
should be used instead.
5.31.0 (2023-08-08)
Added
- Added feature anchors
*-<field>-after
to 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.reenable
to 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.disableInsert
andjpa.column.disableUpdate
to addinsertable = false
and/orupdatable = false
to the @Column annotation of a field 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::Email
and the struts email type.
5.30.4 (2023-07-26)
Fixed
- Option
vega.transient.taskBean.mImplementation
did not get through the model loading process as it was not marked as applicable to Application.
Changed
- The test sources and resources for the data layer are no longer included in the build of the logic layer. 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.noDataTestSources
as 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.Option
in:CommandPreparer
DetailsPreparer
Changed
- Refactored some code in the expansion framework to use
Optional
instead ofOption
. - Application menu files for application 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.reenable
now 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 theCruds
class, 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.Option
return type of private methods withOptional
in several expanded Struts actions:<dataElement>ExporterAction
<dataElement>FindAction
<dataElement>ModifyAction
- Changed the return type of
<component>ApplicationSettings.getProperty(String)
fromOptions.Option
toOptional
.
Removed
- Removed imports for
Options.Option
inCruds
andBean
classes. (If they are still in use by custom code, either immediately refactor tojava.util.Optional
, or add the imports in custom anchors.)
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.1
to6.2.0
.
Removed
- Removed all supporting code and expanders for Struts2 versions
2.3
and2.5
, given that the optionstruts.version
has expired on July 1st. - The
net.democritus.utils.action.StrutsParameterRetriever
class 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
noDelegation
TaskElement option to opt-out of Task delegation. - Added Legacy options to revert to old Task behavior:
legacy.dynamicTaskDelegation.reenable
to keep dynamic task implementation lookup and Impl2 class.legacy.noTaskPerform.reenable
to disable the default perform method on tasks.
- Added
snake_case
formatting attributes for expander 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:
includePerform
TaskElement option (expires 01-01-2024)includeDelegation
TaskElement option (expires 01-01-2024)
Removed
- Removed
Example2Expander
for the<TaskElement>Impl2
class (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 expanders.
5.26.1 (2023-06-22)
Added
- Added
js-to-model
,model-to-js
,before
feature anchors to FinderMapperExpanders
5.26.0 (2023-06-19)
Fixed
- Fixed packageName for HstsFilter in struts-header if application shortname starts with uppercase (not recommended).
Added
- Added
form-field-<field.name>-after
feature anchor 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.Option
withjava.util.Optional
in much of the expansion framework. - Refactoring to
java.util.Optional
in some expanded code where it cannot impact any custom code. - Added
UTF-8
sourceEncoding for expanded maven projects.
Removed
- Removed undocumented legacy mindmap functionality from the stack. This includes all code under
net.palver.mindmap
and the struts actionGetMindmapAction
.
5.25.1 (2023-06-14)
Changed
- Updated Struts2 from
6.1.2
to6.1.2.1
. (Addresses CVE-2023-34149 and CVE-2023-34396)
5.25.0 (2023-06-13)
Fixed
- Fixed issue with nullable field operators not handling the
0L
(invalid dataRef) case for Ln02 - Fixed
FileNotFoundException
for ehcache configuration file onTOMEE
applicationServer - 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 optionshowLinkDetails
by 3 months to 2024-01-01.
5.24.0.3 (2023-09-11)
Added
- [VEGA-334] Added options
jpa.column.disableInsert
andjpa.column.disableUpdate
to addinsertable = false
and/orupdatable = false
to the @Column annotation of a field 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::Email
and 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-core
to version2023.4.0
to be in line withnsx-default-stack
version2023.9.0
and resolve issue withstruts.version
option 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.reenable
until2023-12-01
)
Added
- Added SCM information to deployed pom.xml artifacts
5.23.2 (2023-05-24)
Fixed
- Fixed issue in EntererValidationXmlExpander that included calculated fields in fields to validate.
5.23.1 (2023-05-24)
Fixed
- Removed
jetty-schemas
dependency 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.1
ofjavaee-api
when 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 anchors around default implementation of id-accessors in DataExpander
Changed
- Added
@Deprecated
annotation to removed secondary constructor in data pojo.
5.22.7 (2023-05-17)
Changed
- Removed restrictions from fields in finder forms.
- Reverted ComponentMetadata to use the name of the ValueFieldType of Fields, 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-find
andafter-find
feature anchors to BeanExpander
Fixed
- Fixed package of HstsFilter for Applications 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.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.disabled
legacy.valueFieldType.hashCodeMethod.disable
Fixed
- Fixed issue with file fields because of a missing template in the finder forms
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.columnDefinition
for SimpleValueTypes. You can add this to provide a columnDefinition to all fields of that type. - Added
Text
ValueType, which can be used for unlimited Strings
5.20.3 (2023-04-11)
Fixed
- Added support for
Short
ValueType
Removed
Removed expired legacy options:
legacy.vectorCollectionType.reenable
legacy.multilingual.enable
legacy.ui.rootPages.reenable
jpa.optimization.skipDataQuery.disable
5.20.2 (2023-04-06)
Fixed
- Fix
getStatusAsEnum()
appearing in projections not including the status field
5.20.0 (2023-04-03)
Changed
- Reimplemented ValueFieldTypes. Types of ValueFields are now defined by ValueField::type.
Fixed
- Removed model-transmutations dependency, which was causing dependency issues in tests of projects depending on Expanders.
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.CustomAnchorConstants
class that was left over from old expansion framework. - Removed deprecated instantiation of
SearchResult.SearchError
.
5.19.5 (2023-03-21)
Changed
- Updated Struts2 from
6.1.1
to6.1.2
. (Addresses CVE-2023-24998 incommons-fileupload
)
5.19.4 (2023-03-16)
Added
- Added feature anchors to replace the default implementation of a Finder in the FinderBean.
Feature Anchors:
- Feature anchors can now be placed within the default content of another Feature anchor (in the same Expander). Note that this does not support feature anchors 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.failOnProjectionNotFound
is set to 2023-06-15 - Deadline of
legacy.projectionDetailedConstructor.reenable
is set to 2023-09-01
Changed
application-shared-struts2
:- Rewrote
net.democritus.security.action.NonceBuilder.getRandomString()
to useSecureRandom
and not depend oncommons-lang3
. - Now logging exceptions for methods in
net.democritus.json.NullHandlingJsonPopulator
as error instead of just printing stack traces. - Now logging exceptions for methods in
net.palver.struts2.action.DownloadAction
as error instead of just printing stack traces.
- Rewrote
- Added
@Deprecated
annotation to removed secondary constructor in projection pojo. entityManager
in FinderBean is now final.- Option
showLinkDetails
is 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.reenable
till 2023-06-15
5.19.2 (2023-03-01)
Fixed
- [VEGA-296] The option
legacy.vectorCollectionType.reenable
resulted in code that did not compile correctly after changes to the projection pojo expanders for collection link fields.
5.19.1 (2023-02-22)
Fixed
- Fixed the enable-condition for the Remote interface expander to only be expanded when
option
ejb.interfaces.localOnly
is not present on the application.
Added
- Added
resources
feature anchor toComponentMetaData.buildResources()
.
5.19.0 (2023-02-20)
Added
- Added legacy option
legacy.projectionDetailedConstructor.reenable
on Application to re-enable expansion of the legacy "detailed constructor" in the projection POJO classes. (Expires 2023-09-01) - Added UTF-8 default encoding property to expanded
.editorconfig
file.
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 projection 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.SearchDataRefToSearchDetailsMapper
andnet.democritus.support.Paging
, as all functionality related to it has been removed in a previous release. - Removed imports of
net.democritus.io.SimpleUriFormat
andnet.democritus.io.NioFileCopier
fromFileUploadFeature.EntererExpander
as they are no longer used and both classes are deprecated.
5.18.0 (2023-02-15)
Added
- Added legacy option
legacy.cruds.getProjection.emptyOnError
on Application to revert to the old behaviour of returning null when the requested element was not found bygetProjection
. (Expires 2023-08-01) - Field operator
Null
now displays as a checkbox in the UI finders.
Changed
- Changed
getProjection
in cruds to report an error when the requested element is not found.
Removed
- Option
experimental.cruds.failOnProjectionNotFound
has been removed, as this is now default behaviour.
5.17.1 (2023-02-07)
Added
- Added option
cruds.table.hide
for Field, ReferenceField and CalculatedField to remove a field 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 anchor. If any feature insert something in the anchor, 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 LinkFields
5.16.3 (2023-01-25)
Fixed
- [VEGA-268] Added prime-data dependency to expanders-test-utils to prevent issues with missing technologies.
Added
- [VEGA-252][VEGA-250][VEGA-259] Added option
csv.disable
to remove all CSV import and export options - [VEGA-235] Added uppercase and lowercase as options for
db.tableName.format
Changed
- Renamed
includeCsvImport
andincludeCsvExport
options tocsv.import
andcsv.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
filter
attribute in<list>
mapping can now also be a Predicatefilters
variable 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_Layer
option
5.16.0 (2023-01-04)
Fixed
- Fixed FileSystemNotFoundException causing stacktrace printer to fail, giving vague errors
- Fixed description of
jndi.appName
option, which does not receive a value
Changed
- [VEGA-240] Changed behavior of ArtifactHarvester so that it does not fail on missing Artifacts.
It is possible to reenable this behavior with the ExpansionSettings option
harvest.failOnMissingArtifact
.
Removed
- Removed options that expired on 2023-01-01:
legacy.logicDataMethods.reenable
legacy.oldCollectionMethods.reenable
legacy.oldSearchMethods.reenable
legacy.relationRetrievalMethods.reenable
legacy.searchDataRefMethods.reenable
legacy.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.3
to6.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.identifier
andexperimental.persistence.defaultIdentifier
topersistence.identifier
.experimental.persistence.sequence.name
andexperimental.persistence.sequence.defaultName
topersistence.sequence.name
.experimental.persistence.sequence.schema
andexperimental.persistence.sequence.defaultSchema
topersistence.sequence.schema
.
- Updated
prime-core
:2022.10.5 > 2022.10.9
. - Struts
6.0
is now the default version, both2.3
and2.5
are still supported through thestruts.version
option. - Moved all struts libraries from nsx-runtime and struts-stack to a new library in the expanders project for struts 6.0 and up.
- Moved all data resource related to struts into the Expanders.
- The option
struts.version
is 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.localOnly
instead. beanInterfacePolicy=REMOTE
is 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 application name instead of settings names - useJavaEESecurity: replaced by option
struts.security.custom
, or simply removeaccount
Component from the Application - 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 Expanders version.
mvn expanders:transmute-model -Dtransmutation=Upgrade
Fixed
- Fixed classloading for isApplicable and artifact path resolution so that they use the Thread's context classLoader.
- [NSX-316] Fixed CSRF protection to support parallel calls.
- Added missing option
persistence.schemaUpdating
to data resources. Now only allows valuesupdate
ornone
as originally intended.
5.14.4 (2022-11-02)
Fixed
- Added option 'view.updateFormFix' to fix fields not updating in edit forms by reworking triggers.
5.14.3 (2022-10-27)
Fixed
- Fixed duplicate anchors in testBase() when using dashes in an inline feature anchor
5.14.2 (2022-10-14)
Changed
- Renamed options (with alias to maintain backwards compatibility):
editorconfig.disabled > legacy.editorconfig.disabled
isMultilingual > legacy.multilingual.enable
useGlobalCounter > legacy.globalCounter.enable
transient.ui.expandRootPages > legacy.ui.rootPages.reenable
valueFieldType.disableHashCodeMethod > legacy.valueFieldType.hashCodeMethod.disable
- Marked options as deprecated:
- Valid until
2023-04-07
:legacy.editorconfig.disabled
legacy.globalCounter.enable
legacy.multilingual.enable
legacy.ui.rootPages.reenable
legacy.valueFieldType.hashCodeMethod.disable
legacy.vectorCollectionType.reenable
- Valid until
2023-01-01
(these have been legacy for a very long time):legacy.logicDataMethods.reenable
legacy.oldCollectionMethods.reenable
legacy.oldSearchMethods.reenable
legacy.relationRetrievalMethods.reenable
legacy.searchDataRefMethods.reenable
- Valid until
5.14.0 (2022-09-21)
Added
- Added
technology
field 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 application server.
- Removed old code from the ExpansionContextCreator class
5.13.2 (2022-09-07)
Fixed
- Added missing option value
custom
to validation expression for option typeexperimental.persistence.identifier
.
5.13.1 (2022-09-06)
Changed
- Updated 3rd party dependencies in expanders project (not in expanded code):
- Libraries:
org.yaml:snakeyaml
:1.30 -> 1.31
(CVE-2022-25857)org.antlr:ST4
:4.3.3 -> 4.3.4
ognl: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
@Override
annotation to theexecute()
method in several subclasses ofActionSupport
. - Added missing
@Override
annotation to theprepare()
method in several implementations ofPreparable
.
Changed
The following Expanders and Features have been moved to base-components:
- Engine(Bean|Local|Remote)Expander (flowElement and serviceElement)
- ClaimCleanerExpander
- InterruptRecovererExpander
- StateTransitionerExpander
- StateViewerExpander
- Claimable feature
- ClaimElement feature
- WorkflowTaskStatus feature
- Service feature
- EngineShutdown feature
- TaskTimers feature
These Expanders 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 finders in the finder bean.
Removed
- Removed deprecated support for Java 7 in expanders, as Java 8 is now enforced as the minimum.
- Removed deprecated
elementProjectorMap
field in the logicBean
classes, as well as thecustom-projection-mapping
anchors. - Removed redundant unboxing call to
<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.0
still depended on aSNAPSHOT
version)
5.12.0 (2022-08-10)
Fixed
- Fixed
Cruds.getElementDetails
, which used the wrong details class.
Changed
- Replaced
new Long(0)
in projection pojo classes with0L
. - Qualified generics in collection types where
showLinkDetails
is used. - Cleaned up generic type specifications where not needed.
- Replaced all uses of
java.util.Vector
withjava.util.(Array)List
. The old behavior can be re-enabled with the transient optionlegacy.vectorCollectionType.reenable
. - Qualified generic of
result
variable 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 expander mappings) to version
3.3.3
. - Updated ST4 StringTemplate library (for use in expander templates) to version
4.3.3
.
5.10.0 (2022-08-03)
Added
- Explicit definition of
org.apache.maven.plugins:maven-surefire-plugin
in expanded root POM file to decouple it from the Maven version used to compile the application. - Added assert to ensure no versions of Java older than 8 are targeted to expand a JEE application.
Changed
- Updated
nsx-parent
to2022.1.0
. - Updated Maven plugins in expanded code:
org.apache.maven.plugins:maven-compiler-plugin
:3.8.1 -> 3.10.1
org.codehaus.mojo:build-helper-maven-plugin
:3.0.0 -> 3.3.0
- All templates, artifacts and harvest files are now read and written in UTF-8 encoding.
5.9.8 (2022-06-22)
Fixed
- Added missing expander 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
null
if 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=true
topersistence.xml
when 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 expanders 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-parent
to2022.0.0
.
Added
- Added context to user session next to userContext
- [NSX-220] Add support for OIDC logout
- [FLOW-43] Add custom anchors to claiming methods
- Added anchors to FindAction
Fixed
- Provided better error message if the harvester fails to read the artifact file
5.9.3 (2022-05-25)
Changed
- Updated 3rd party dependencies in expanders project (not in expanded code):
- Libraries:
ognl:ognl
:3.1.28 -> 3.1.29
org.apache.commons:commons-lang3
:3.5 -> 3.12.0
commons-io:commons-io
:2.7 -> 2.11.0
org.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.0
org.apache.maven.plugins:maven-compiler-plugin
:3.8.1 -> 3.10.1
org.codehaus.mojo:flatten-maven-plugin
:1.1.0 -> 1.2.7
org.jacoco:jacoco-maven-plugin
:0.8.2 -> 0.8.8
org.sonarsource.scanner.maven:jacoco-maven-plugin
:3.7.0.1746 -> 3.9.1.2184
- Libraries:
- Updated NSX Maven plugin in expanders 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 field 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 projectiondetailsWithoutRefs
which contains the same fields as thedetails
projection, but where the linkFields are represented as ids. This projection is more performant than thedetails
projection as no extra database queries are needed to resolve the DataRefs for the link fields. - 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
detailsWithoutRefs
projection in workflow orchestration to reduce the number of database queries - [FLOW-22] Add support for stateTask timeout
Fixed
- Fixed workflow claiming not working with
Se
finders - [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 layer 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.failFast
to 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.failFast
is 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 harvesting base-components
- Added expansion option
harvest.force
to ignoreharvest.skip
- Added expansion option
harvest.modelDirectory.override
to 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.1 (2022-02-18)
Fixed
- [NSX-214] Simplified logic around
in
operators wrt linkFields in finder-mappers
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 finder. - [NSX-214][VEGA-194] Added support for finders with
in
operator in combination with linkFields - Added support for
linkfieldInput
binding in finder forms - [NSX-207] Added
ehcache.xml
stub file with anchors to configure caching with Hibernate 5.
Removed
- Option
editorconfig.global
has been removed and.editorconfig
file now always applies globally to bothgen
andext
sources.
5.6.0 (2022-02-07)
Added
- [VEGA-209] Added
@Deprecated
and comments to methods in legacy features - Added expansion option
expanders.traceFeatures
to enable feature tracing
Changed
- Merged expanders-common into expanders-core
Fixed
- [VEGA-171] Added
checkClaims()
tocompareAndSet()
method for claimable DataElements
5.5.4 (2022-02-02)
Fixed
- Fixed another duplication of
_FindByNotClaimed
in InterruptRecovererExpander
5.5.3 (2022-02-01)
Changed
- Only render linkfield binding when visible
Fixed
- Fixed InterruptRecovererExpander duplicating
_FindByNotClaimed
postfix if finder 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 fields.