Angular Expanders 6.0.0
Changes and improvements
Upgrade to Angular 19 and Angular Material 19
For this release we updated all the code to Angular
19, in order to stay up to date with the releases and best practices.
Separation of QuerySearch
QuerySearch is now an addon, instead of the default filtering implementation.
Everything related to filtering in the code has been moved to separate expansionResources
, namely angular-querysearch-expanders
, angular-svcapi-querysearch-expanders
and angular-stdapi-querysearch-expanders
.
When these expansionResources
are not added the application will still function, however the filtering capabilities will not be present.
From now on you can also add filtering implementations, e.g. finders, or provide a custom one.
Yarn support
We provide a solution to substitute npm
with yarn
if wanted. This drastically improves dependencies install times. Substitute the Std API
profile with Std API yarn
(or Svc) in your expansionSettings.xml
.
Harvest expanders
The angular-expanders
now depend on the harvest-expanders:1.0.0
, this is an example of one of the first expansionResources
that contains reusable expanders. These expanders and expansion steps define the gen/ext
less harvesting.
New design implementation
This version contains the new designs made for the list and details page.
Prime Core 2025.0.0
Symbiotic Dependencies
With prime-core 2025.0.0, expansion-resources can define symbiotic dependencies. These dependencies are not included automatically, but only in case a number of other expansion-resources are present. This allows expander developers to create resources that provide integration with other expander beams.
Angular Expanders 5.6.0
Migration guide
Program folder refactor
In order to accommodate multiple AngularApp
instances, a folder structure similar to Application
has been adopted. This means that in the angular
folder you should relocate the ext
, harvest
and model
folder present to a subpath /angularApps/{angularAppName}
. You should not move the featureModules
folder.
angular
├── ext
├── harvest
├── model
. └── space-app.xml
angular
├── angularApps
. ├── space-app
. ├── ext
├── harvest
├── model
. └── space-app.xml
Changed allowed value of option angular.isLinkFilterField
The expanders were refactored to correctly find the required DataConnector
in the available dataConnectors of the AngularApp
. A new find algorithm has been put in place to do this, this algorithm does not rely on the DataRef
anymore. This is why the value of the option has been changed to only the name of the DataConnector
.
featureModuleName::dataConnectorName
dataConnectorName
Branding
Login component
Due to popular request the generated login component can be fully customised when using the option angular.hasCustomBranding
. This will now give you custom anchors in the login.component.html
and login.component.scss
files, instead of only the option to change the images.
Title tag in index.html
When using the option angular.hasCustomBranding
, custom anchors will appear to set the title tag of your index.html
. This is used in the browser tabs, when no other title is set via the angular router. When not filled in, it will put the url in the browser tab. Before the title was always angularAppName
.
Docker TomEE base image 3.0.0
Version 3 of the nsx-tomee-base Docker image is now available. This version introduces (experimental) support for rootless containers, as well as some minor breaking changes.
Rootless
New images have been added that can be used to run rootless containers. They add a new tomee
user, which is used to
execute the TomEE application server instead of the root
user. Not running containers with a root
user reduces
security risks for the host system. All existing images are available as rootless as well under labels with the
suffix -rootless
appended to it.
Data volume
The image now pre-defines a volume at the /data
path for applications to write files to. The volume is pre-defined so
it will be created even if it is not explicitly defined in the deployment of the container, so any files stored there
will always be put into a persistent volume.
Scripts moved
Previously all fixed scripts were stored in the /tmp
folder. Though this is not ideal, we kept this for consistency
and backwards compatibility. With this major version we've now moved those scripts to a new location in /scripts
.
There are still symlinks to the existing scripts in case they were called.
Process Automation 1.7.0
A brand-new release of the process-automation component is now available! There have been quite a few changes, mostly targeting stability, compatability and bug fixes. Some of the default configuration has changed, which may impact applications using a custom configuration. Read the migration guide below to verify if this applies to you!
Changes and improvements
- (Stability)
{DataElement}Cruds
will now return an error when trying to modify an element into an interim state outside a Task. - (Stability) Added error and recovery policies, allowing applications to configure how to deal with internal errors.
- (Stability) Fixed some issues which would occur when transactions went into timeout.
- (Compatability) Added support for applications using the
ejb.interfaces.localOnly
option. - (Compatability) Replace usage of TransactionManager with TransactionSynchronizationRegistry. This should be available in more JavaEE runtimes.
- (Traceability) Added new monitoring anchors, to allow for more insight into applications running in production (more on this soon).
- (Performance) ApplicationPersistent queue will now fetch the queue much sooner if the last fetch received the requested number of tasks.
Micro Radiant 2.0.1
µRadiant version 2 has been released. This version is the result of a major effort of the past year to build a plugin system.
The functionality of the µRadiant has been separated into several plugins, which can now be updated separately. It is now also possible for others to contribute in adding new functionality by creating their own plugins.
Angular Expanders 5.0.0
Changes and improvements
This major release marks the beginning of data access (control layer) separation in the angular stack. This has been accomplished by expanding DataAccess
interfaces and InjectionTokens
. This token can be implemented by a separate expansion resource specific to a certain control layer implementation, e.g. rest-expanders
, json:API
, ...
For the moment two data access implementation resources exist:
angular-svcapi-stack
(rest-expanders)angular-stdapi-stack
(jaxrs struts replacement)
Expanders Assert 1.0.0
Expanders-assert is a library for writing tests in expansion-resource projects.
It has several improvements over the classic expanders-test-utils
library and uses more modern libraries like JUnit 5 and AssertJ.
Expanders-assert now has its first major release. We were happy with the current API and are ready to mark it as stable. This means that subsequent changes will be kept backwards compatible.
Important Changes since 0.9.1
Since the 0.9.1 there have been a few changes that you can encounter when upgrading to 1.0.0.
- Transitive dependencies, like AssertJ, JUnit 5 and expanders-core have been set to
provided
. They will need to be added explicitly where needed. doesNotHaveTag()
can now fail if the tag is not present on the Expander or Feature. This is to prevent false positives due to typo's.- Test setup now fails if the TestExpansion parameter is typed incorrectly. This helps with prevent copy-paste errors.
- The class signature of the ValidationAssert class (returned by
assertThatValidationRule()
) has changed. This used to have a generic type related to the Composite type, but has been changed since it was not relevant.
New features
The latest changes focus on supporting missing support for transmuters.
REST Expanders 4.26.0
REST Expanders are now capable of generating fully featured interactions with file resources. Several other fixes and
improvements were also implemented. This post will cover many of the improvements introduced from version 4.22.0
to
4.26.0
. The latter of which we consider to provide a complete and stable implementation of the file support.
Resources
The expansion resource below provide rest-expanders 4.26.0
.
Resource | Version |
---|---|
rest-jaxrs-stack | 4.30.0 |
Changes and improvements
File support
Version 4.26.0
of rest-expanders
features the finished implementation for
file support. This
includes the linking of file resources to regular REST resources, endpoints to upload files and endpoints to download
files.
Files are always represented as fields of a REST resource. It is possible to add the option
svcapi.endpoint.upload
to generate an upload endpoint in function of a field and
svcapi.endpoint.download
to generate a download endpoint.
An upload endpoint will return a header containing a unique identifier for the file that can passed to the resource endpoints to link it to a new or existing resource.
In this resource a file link is represented by the birthCertificate
. As there's a download endpoint for the field, the
resource also returns a resourceUri
with a link to the download endpoint for that specific file resource.
{
"name": "Snickers",
"uuid": "f9020d14-b1ab-4de3-99a2-f0a2e5a8c71d",
"birthCertificate": {
"resourceUri": "http://localhost:8080/restexample/v1/cats/f9020d14-b1ab-4de3-99a2-f0a2e5a8c71d/download/birthCertificate",
"identifier": "d8227d40-4e8b-4b7f-baf4-52bb8a051e26",
"fileName": "snickers-haz-cheeseburger.jpeg"
},
"breed": {
"resourceUri": "http://localhost:8080/restexample/v1/catbreeds/Maine%20Coon",
"name": "Maine Coon"
}
}
Asset support
A new expansion resource rest-assets-expanders
was introduced which provides a default implementation for file links
when they are represented by linkfields to assets:Asset
. This includes an implementation for the upload and download
endpoints. The rest-assets-expanders
resource is now also part of the rest-jaxrs-stack
resource.
Client aborts
To round out support for files, the REST expanders now handle aborts for file uploads and downloads from the client. The API now returns nothing when these events occur rather than an error. A message will be logged on the server.
Strict finders
There was a long-standing issue in the backend implementation for the API where in a few places finders are used that do not use strict equality to match resource identifiers. This has now been resolved by adding support instead for the same finders, but using strict equality operators. A strict not-equal operator was also introduced for this purpose.
Though the old finders using Eq
and Ne
operators instead of Se
and Sne
operators are still supported, the strict
operators are now considered default and the non-strict ones only as fallback if they are the only available.
CORS support
The support for CORS handling in the CorsFilterProvider
class has been improved to now include the
Access-Control-Expose-Headers
, in order to whitelist headers returned by the server for use in scripts. New anchors
exposed-headers
are available to add additional headers if needed.
Better ValueType support
While rest-expanders already provided support for ValueTypes,
the AddDefaultRestApi
transmutation still provisioned the model using the deprecated ValueFieldTypes
. This has now
been updated to correctly provision the model with ValueTypes instead.