Skip to content
logoBack to home screen

tribefire 2.0 - 02/12/2020

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 own id. 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 to id, but the blobId 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 deprecated Nashorn, 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 the domainId query parameter.
  • The GET operation to download a resource is replaced by /api/v1/download where the source access needs to be specified with the domainId query parameter and the respective resource with the resource.id query 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 CheckBundle and its CheckBundleResult 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 and gwt-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.