tribefire 2.0 - 02/12/2020
On this page
Announcements
In case you are still using cartridges: Cartridges always must be re-built against the release repository.
General
- introduced TimeZoneless metadata and annotation to express dates that are without time zone by using the UTC zone as standardization
- introduced Potential<T,R> class in common-api to combine features known from JDKs Optional
with the ability to return error reasoning - introduced com.braintribe.gm:reason-model that models chainable reasons that are another way to express errors that exceptions.
- A
StreamPipe
can now be closed explicitly in the cases when you can be sure that all its streams are already closed. Also the default size of in-memory-buffers is adapted to the total available memory. - Previously the
SqlSource
, which is used to reference binary data in JDBC databases identified the blobs by its ownid
. As the multipurpose of this property can lead to bugs and configuration issues, there was a new property introduced:blobId
. Backwards-compatibility is insured by a fallback toid
, but theblobId
property will be set explicitly for all SqlSources of an access in case it was detected to be missing from at least one entity. - JavaScript handling is now backed by
GraalVM
instead of the long deprecatedNashorn
, which was necessary to be able to support Java 14. This also changed some aspects of the interoperation APIs. - Fixed the query for existing user sessions in the JWT expert
- Added native support for ranges in SqlBinaryProcesso
- Allowing password to be encrypted in the OpenUserSession request (when the property passwordIsEncrypted is set to true)
- The configuration of the threadpool used by the CheckBundlesProcessor has been fixed
- The CallbackRestProcessor now also sends the content encoding in the REST call to support UTF-8 content
- Reworked structure of mime extension properties file and updated list of mime-types
- @Initializer for an enum can be specified with just the enum constant name
- Replaced SqlBinaryProcessor Hibernate-based implementation with pure JDBC. This is much faster and cleaner now
- Custom Resource enrichers can be configured from a module for given mime-type
Resource Streaming
The /streaming
endpoint is now obsolete as all its features are now supported via our standard /api/v1
REST endpoint. It can now be considered as deprecated and might be removed in later releases.
- The
POST
operation to upload resources is replaced by/api/v1/upload
where the target access needs to be specified with thedomainId
query parameter. - The
GET
operation to download a resource is replaced by/api/v1/download
where the source access needs to be specified with thedomainId
query parameter and the respective resource with theresource.id
query parameter.
There are also a few changes regarding the implementation of custom BinaryProcessor
s and ResourceEnricher
s. BinaryRequest
s and the EnrichResource
request are now only AccessRequest
s for backwards compatibility reasons but should not be implemented by AccessRequestProcessors
any more and are not responsible any more to query or persist Resource
related entities in an access but only to handle the raw binary data of a Resource
. In support of this, there are new binders that can bind respective deployables to standard ServiceProcessor
s.
Following the same mindset, eventual resource enrichment capabilities in BinaryProcessor
s should be extracted to dedicated ResourceEnricher
s if necessary or simply removed if it can be handled by our standard enricher.
Further, for security reasons BinaryRequest
s can now only be called by system sessions or admin users (with the tf-admin
role).
More information about this topic can be found in our updated documentation.
Platform Reflection
- Added more information about consumed memory (virtual size, resident set size)
- Errors while collecting parts of the Diagnostic Packages are also included in the package
- Updated the OSHI library from version 4.2.0 to 5.3.6
Checks
- Made Check API more resilient: Name of
CheckBundle
and itsCheckBundleResult
is automatically determined if not set (based on check processor name)
Tribefire ControlCenter / Explorer
- GME supporting the correct display of TimeZoneless dates
- AssemblyPanel performance improvements
- WebSocket support for external components
VDE
- Introduced EvaluateRequest VD
- Adding support for asynchronous VD evaluation in GWT
DCSA
- Made number of parallel threads configurable and based the default on the number of available DB connections in the connection pool
JavaScript Artifact Support
- Turned all model enums in com.braintribe.gm and tribefire.cortex into EnumBase derived enums to have proper typescript generation for them beside the general advantages of them.
- added missing jsinterop markers in various pom.xml
- added missing js tag on dependencies in various pom.xml
- added missing JsType annotations on various API types
- consolidation of some typescript representations of the exposed APIs and models
- added model archetype property to pom.xml of all models in com.braintribe.gm and tribefire.cortex
HibernateAccess
- Applying a minor customization of MS SQL dialects which map Strings for nvarchars (i.e. Unicode based varchars) to avoid deadlocks and improve performance
- ApplyManipulation attempted multiple times in case a deadlock is detected
- Improving MappingGenerator performance - using simple StringBuilder instead of velocity
- Fixing
localize
function implementation
Bugfixes
- fixed JinniOptions singleton behavior in CLI argument decoding
- Artifacts
gwt-gm-core
andgwt-gm-session-api
are libraries now. - Processing MD annotations for Enums too.
- fixing output in case of a parallel build with ANT - supporting custom threads created within a task
Tribefire Spreadsheet Extension
- introduced tribefire.extension.spreadsheet
- support for import XSLT, CSV
- metadata mapped conversions
- timezoneless and date clipping support
- parallel streamed processing to handle very large files
- validation and detailed problem report generation
- enriching of meta properties like row number and import package back link
Tomcat
- Removed the default ciphers in the server configuration as this no longer works with TLS 1.2+1.3
Known Issues
- Known issues above not marked with Fixed with maintenance release Oct 24th 2018.
- The Simple Properties panel in the graphical Modeler shows a checkbox for marking a type as abstract on Enum Types. Clicking this checkbox throws an error.
- In the Process Designer, the indicator for selection or connection mode does not always display the right mode.
- In Modeler, the overlays for creating relations sometimes disappear.
- When deployment of an asset from Control Center fails, no error message is displayed.
- The standalone Modeler displays collections of simple properties as both simple properties and relations.
- The action bar in Control Center is too wide.