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 Optionalwith 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 StreamPipecan 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 theblobIdproperty 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 GraalVMinstead 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 POSToperation to upload resources is replaced by/api/v1/uploadwhere the target access needs to be specified with thedomainIdquery parameter.
- The GEToperation to download a resource is replaced by/api/v1/downloadwhere the source access needs to be specified with thedomainIdquery parameter and the respective resource with theresource.idquery parameter.
There are also a few changes regarding the implementation of custom BinaryProcessors and ResourceEnrichers. BinaryRequests and the EnrichResource request are now only AccessRequests 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 ServiceProcessors.
Following the same mindset, eventual resource enrichment capabilities in BinaryProcessors should be extracted to dedicated ResourceEnrichers if necessary or simply removed if it can be handled by our standard enricher.
Further, for security reasons BinaryRequests 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 CheckBundleand itsCheckBundleResultis 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 localizefunction implementation
Bugfixes
- fixed JinniOptions singleton behavior in CLI argument decoding
- Artifacts gwt-gm-coreandgwt-gm-session-apiare 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.