tribefire 2.0 - 05/06/2020
On this page
- Announcements
- New Runtime Properties
- Smood
- (D)CSA
- MetaData
- Remote Deployables
- SecurityAspect
- Accesses
- Hibernate Access
- REST, Swagger & OpenAPI
- Tools
- Generic Computing
- Tribefire
- Jinni
- Platform Assets
- (JavaScript) Ux Modules
- GME
- Devrock
- DDSA
- Cortex (general)
- GM (general)
- Elastic Module
- JDBC Drivers
- Shiro Module
- Documents Module
- Conversion Module
- GCP Module
- AWS Module
Announcements
- In case you are still using cartridges: Cartridges always must be re-built against the release repository.
New Runtime Properties
The following runtime properties were added in this release:
Property | Description | Default Value |
---|---|---|
TRIBEFIRE_DEPLOYMENT_STANDARD_THREADS | Number of Standard Deployment Threads | 5 |
Smood
- Various deletion-related fixes and improvements
(D)CSA
- DynamicInitializers- new way of binding a new SmoodInitializer expert from a module
- Resource LazyLoading feature completed (not yet configured to be used)
- DB: Added "not null" clause to "create table" command (DB2 requirement)
- DB: Added support for Access IDs larger than 255 characters
- DB: Activated JMX in JDBC DCSA connection pool
- DB: Parallelized JdbcDcsaStorage read operation
- DB: Not loading Resources for CsaStoreResource entities in Cortex Access (lazy loading)
- DB: Added MSSQL to tests
- DB: Adding fileSize to resources returned by JdbcDcsaStorage
MetaData
- Adding API for just MD selector evaluation (selectors were for now only resolved internally when resolving MD)
Remote Deployables
- Introducing support for remote service processors
- Defining a dynamic initializer parameterized by a single YAML file to initialize a remote domain (remotes-configuring-module)
SecurityAspect
- Throwing semantic exceptions (AuthorizationException) rather than generic ModelAccessException
Accesses
- Propagating DeleteMode from the user, thus dramatically increasing delete performance in some cases.
- Added
UpdateResource
request to the resource api to update the binary data of an already existing resource. The request is designed to work out of the box with all kinds of already existing proprietary and custom accesses in a standard tribefire system. Added a related convenience method to theResourceAccess
as well which is i.e. accessible via a session to an access like so:session.resources().update(resource)
. - User session workbench access is improved. It allows more complex queries and transformation from the persistence to the logical user session.
Hibernate Access
- BUGFIX: closing a session in a read-only transaction
REST, Swagger & OpenAPI
- Improved
Accept
header resolving in the/rest/v2
andapi/v1
REST endpoints in favor of standard compliance. A strong bias toapplication/json
was removed and theq
parameters are now supported. - The OpenAPI endpoint can now be considered as a full replacement for the now legacy Swagger 2.0 endpoint and supports all its features.
- The OpenAPI endpoint got a Simple mode that displays only the mostly used and relevant request properties and thus is more lightweight. This Simple mode became at the same time the default.
- Request properties with the
Embedded
metadata can now also be set via multipart requests with the same.
notation that was already supported in queries. - The
serialized-request
field of a multipart request is now reflected in the normal OpenAPI view. - The
API
links on the tribefire-services landing page now all link to the new OpenAPI UI instead of the legacy Swagger 2.0 one. - Adding information about the request (method, URL, parameters) to exceptions for contextualization
Tools
- Added symbol link aware file functionality to FileTools in platform-api
- copyRecopyRecursivelyAndKeepSymbolLinks()
- deleteRecursivelySymbolLinkAware()
Generic Computing
- Introduced marshaller-api model to be able to marshall and unmarshall data which work domain agnostic. The according service processor was hardwired to tribefire-web-platform for general availability. See the following requests:
- MarshallData
- UnmarshallData
- ExecuteAndMarshallResponse
Tribefire
- added missing component interfaces in several ComponentBinders that created troubles after the new DDSA used deployable proxies more consequently
- Fixed concurrency problems in variable bindings of different scripte engines used in scripted processors:
- Javascript
- Beanshell
- Groovy
- Introduced new Check API framework including e.g. new DDRA endpoints and reworked
/healthz
endpoint (see Documentation - Tribefire Checks) - Improved
CallerEnvironment
by adding convenienct method for resolving relative paths - Removed
Move
link in Model section on landing page
Jinni
- Using ContextualizedVirtualEnvironment in Jinni's wirings in order to allow interceptors such as the upcoming DevEnvAwareInterceptor to push dynamic virtual environments in a scoped way.
- New requests:
- create-module-project - creates a module project structure with all the relevant empty artifacts
- create-ddsa-test - creates a wire based test capable of testing the service processors
- create-repository-view
- create-js-library
- create-js-ux-module
- Overwrite mechanism during template projection is now in place. If flag -o is not present, projection will fail in case something is being overwritten.
Platform Assets
- Added
SetupDescriptor
which describes the projected runtime instance (timestamp of deployment, hostname, user, ...). File can be found within./setup-info/setup-descriptor.yaml
. packaged-platform-setup.json
is also copied tosetup-info
now.
(JavaScript) Ux Modules
- Added new natures
TribefireUxModel
andJsUxModule
- Added ant-script for js-libraries
- New Jinni requests (for more information see jinni help): ** upload-artifacts ** assemble-js-deps ** get-artifact-versions ** get-artifacts-versions
- Proper handling of new asset type when resolving a tribefire setup. Announcement of assets in Cortex.
GME
- General Bug Fixing
- New Button for closing tabs to the left of current one
- Improved confirmation dialogs look & feel
- Added support for handling inlined entity collections
- Added support for css styling some UI elements
- Added action for downloading resources
- Prepared support for editing entity properties more quickly (using
SimplifiedAssignment
) - Added support for the new
AutoExpand
metadata - Added support for the
DefaultSort
metadata to be used as Property configuration - Now showing a better message when the user has no access to a given model
- Added support for the new
Placeholder
metadata - Prepared new UI for selecting between actions to use on DnD when more than one is available
Devrock
- Extracted virtual-environment-api for reusage outside of malaclypse
- created standard implementations for VirtualEnvironment inside the api
- StandardVirtualEnvironment
- OverridingVirtualEnvironment
- ContextualizedVirtualEnvironment
DDSA
- The already deprecated
RpcRequest
and with it therpc-model
was removed now completely in favor of DDSA requests. ServicePostProcessor
may now return anyObject
instead of forcing the processor to wrap the result in aPostProcessResponse
, which is however still supported.- DDSA was refactored internally completely to be faster and more stable without breaking changes to commonly used methods of its public API.
- Introduced the more generic
TypeSafeAttribute
andAttributeContext
to replace theServiceRequestContext
in APIs not directly related to service requests. ServiceRequestContext
is now anAttributeContext
and thus immutable. Updates to the current context can be made via deriving from or replacing it.- Removed
ServiceRequestContextManager
and replaced it with theAttributeContexts
interface that offers the same functionality via global static methods. - Introduced a reusable minimal DDSA stack with
simple-service-wirings
to be used for standalone clients and unittests. - Introduced a unittest template artifact that builds on
simple-access-wirings
and allows to easily test code that uses ServiceRequests as API - Introduced an extension to the simple-service-wirings named
simple-access-wirings
which support AccessRequestProcessors along with IncrementalAccesses to back the data handled by those processors
Cortex (general)
- DB Lock Manager: Added "not null" clause to "create table" command (DB2 requirement)
- Added deployment statistics for performance evaluations
- Making number of deployment threads configurable (TRIBEFIRE_DEPLOYMENT_STANDARD_THREADS)
- Not catching RuntimeExceptions unnecessarily; proper HTTP status codes thus ensured
- Added support for name parameter in user-image servlet
- Increased core pool size of remote evaluator
- Improved resilience of WorkerManager shutdown (preDestroy)
- Fixed NPE in license check; Fixed license check for expiry warning
- Added license check to check bundle
- Runtime properties: allowing properties with TOKEN in the name again (no confidential information)
- Updated HikariCP library; made sure that connection pools are not created multiple times; Added metrics
- Landing page: Added tooltip to "Link" in model
- Switched Diagnostic Package to new checks
- Added support for additional user model collections to be taken from the environment by the for EnsureAdminUserWorker
- EnsureAdminUserWorker now supports firstname/lastname if available
- Improved the user session service performance
GM (general)
- JMS: Not trying to re-connect on an error when the instance is shutting down
- GmWebRpcClientBase: Throwing HttpCommunicationException instead of CommunicationException to preserve the HTTP status code
Elastic Module
- Added timing information of Elastic node startup
- Updated to Elastic 5.6.16
- Upgraded Lucense from 6.5.0 to 8.3.0 to stay compatible with Elastic
- Fixed NPE when setting queue size
- Rudimentary support for SelectQuery in FT aspect
- Now reindexing all properties and not only the changed ones.
- Adapted result of health check to fit into general scheme
- Added worker status to health check
- Removed Access, refactored Aspect to use fixed Elastic type
JDBC Drivers
- Added Informix JDBC Drivers
- Switched to version 42.* of the generic Postgresql driver
Shiro Module
- Adapted result of health check to fit into general scheme
Documents Module
- Document Info: Added document references for CompoundDocuments
- Extended support for compound documents
- Adapted result of health check to fit into general scheme
- Ensured that threadpools are managed to ensure propert shutdown
- Forwarding status callback to client
- Conversion Callback Processor: Returning right type (Boolean) instead of ResponseEnvelope
Conversion Module
- Introduced parallel Aspose License pre-loading (with thread-safe Locales)
- Fallback Locale when current Locale (Aspose term: Culture) is not supported
- Updated Aspose libraries to version 20.5
- Added font substitution for Excel files
- Added support for Aspose HTML -> PDF conversion
- Adding output of wkhtmltopdf to exception in case of an error
- Updated to latest JPedal version
- Only counting non-subjobs for pending jobs count
- Making sure that the parent job also gets a last updated timestanp
- First trying to delete with ignoreReferences (faster) and then without in case of an error
- Not using the same master session in separate threads
- Added info/exception when converting Excel->PDF with font substitutions
- Extended Mail->PDF converter to include Attachments
- Added AnythingToPDF convertersion job
- Added support for Emails (MHT, EML, MSG) conversion to PDF
- Added experimental MSG extractor
- Setting notification timestamp on callback
- Setting priority of parent job in subjob
- Added support for aborting a job based on a subjob with re-enqueuing
- Adapted result of health check to fit into general scheme
- Improved status callback (more often)
- Setting start timestamp on subjobs when they are actually executed
GCP Module
- Adapted result of health check to fit into general scheme
AWS Module
- Adapted result of health check to fit into general scheme