Skip to content
logoBack to home screen

tribefire 2.0 - 18/12/2019

Announcements

  • With this release we have globally activated module awareness.
  • In case you are using cartridges: Please note that cartridges must be re-built against the release repository. This will be fixed in the future versions of tribefire.

General

  • platform-api provides a MimeTypeParser which parses qualified mime types like text/html;spec=module-checks-response or text/html;charset=UTF-8

Setup Processing

No updates.

Jinni

  • Help

    • Refined default value rendering for strings that are empty or have placeholders
    • Created filter flags for deprecated types
    • Printing deprecation warning for help on types (e.g. commands)
  • Module support

    • When setting up modular project for debugging, tribefire-services.xml is now generated automatically in Tomcat.
    • Supporting dependencies with a classifier (in pom.xml files).
    • Various bugfixes related to classpath computation.
  • Platform Asset Resolving

    • dependency exclusions are now respected
    • Known Issue: parent supplied dependencies currently would not be respected when resolving assets

Templates

  • create-initializer request no longer creates plugin-priming but initializer-module asset. create-initializer-module and create-plugin-priming-asset requests are now deprecated.

GmCore

  • CascadingMetaDataResolver offers resolution which ignores selectors. This can be used e.g. by caching implementations, to verify a certain MD is always resolved, regardless of specified aspects.

  • Property.isConfidential introduced. Whether a property is marked as confidential (most likely via @Confidential annotation) is now also reflected in GM reflection.

CSA

  • CortexManipulationPersistence can now be configured to initialize model and data together, thus effectively acting like a regular ManipulationPersistence. This option is necessary when used with modules, as they do not distinguish between these two phases. In the past this was necessary as models were converted into GMML files and had to be brought in first and deployed (have bytecode generated) before data were initialized. With modules we simply add the models to the classpath, so no special treatment is needed.

DDSA

No updates.

Tribefire ControlCenter / Explorer

  • Added D&D suppor for files and file related actions
  • Added support for entities D&D including dropping to a different view (in different tab in the client)
  • Improvements to the multiline editor
  • Improvements to GIMA
  • Enabling enum columns to be used as sort value
  • Bug fixes in general

Modules

  • Module denotation type now reflects what the underlying module is binding with it's properties: bindsWireContracts, bindsHardwired, bindsInitializers and bindsDeployables.

  • Module denotation type is now also added for the platform itself. This way a deployable can be explicitly set to be deployed using the platform's expert bindings.

  • Extending support for resolving environment/system/tribefire properties. Adding PlatformReflectionContract to module-api with a String getProperty(String propertyName); method, as well as support for tribefire.module.wire.contract.PropertyLookupContracts (also in module-api).

Hibernate Access

No updates.

Tribefire Core Functionalities

  • SchrodingerBean mechanism introduced. See javadoc for com.braintribe.model.processing.deployment.api.SchrodingerBean.

  • Introducing HardwiredWorker denotation type and deploying (some) hardwired workers as standard hardwired deployables (multicast consumer, rpc mqServer).

  • Artifact cartridge-base-api is not an API artifact anymore.

  • Users / User Sessions

    • Reworked the user session cleanup a bit to delete user sessions in batches rather than all at once. This definitely needs a better solution.
    • When a password is set in an environment variable, it overrides any password set in a JSON file when ensuring an (admin) user at startup.
  • Logs

    • Added the logs-model to the cortex service model so that log levels can be manipulated in the Control Center.
    • Added support for non-standard log folders.
  • Healthz

    • Fixed a problem that the HealthzServlet produced a wrong HTML output when an error occurred in one of the test results.
  • About

    • Added more information about the DB connection pools.
    • Fixed the faulty output of \0 characters in the About page.
    • Added a more descriptive information about the messaging system used.
    • More detailed information about the system has been added (e.g., core load, privileged system access).
  • Web Sockets

    • Adapted the log level of the GmWebSocketServer a bit to reduce the number of SEVERE messages of non-blocking errors.

Extension Modules

  • JDBC Drivers

    • The JDBC Plugins tribefire.extension.jdbcplugins have been replaced by the module-based tribefire.extension.jdbcdriver, which are native platform libraries.
  • GCP

    • The GCP Cartridge and all supplemental artifacts have been removed.
  • AWS / S3

    • The AWS Cartridge and all supporting artifacts have been removed.
    • Added support for multiple regions. The region set in S3Connector is only used as a default region when a new bucket gets created. Existing buckets can be reached, regardless of the region they are located in.
    • Added support for parallel uploading of file parts to increase performance.
  • Elastic / Fulltext

    • Added support for searching multiple words (it was formerly used as an exact phrase search).
    • Phrases and exact words can be search by putting them in quotes.
    • When an index cannot be updated, the index is now deleted and created from scratch (Elastic does not allow the re-creation of a single type).
    • When an index is non-functional, the server does not stop working anymore.
    • Reduced the number of default indexing workers from 10 to 2 to reduce the load on the Worker thread pool.
    • Using, after an Elastic update, the type text instead of string in the type definition.
    • The Elastic Cartrdige and all corresponding artifacts have been removed.
  • Conversion

    • Conversion cleanup of the temporary folder now supports the exclusion of specific subdirectories. This is needed to leave temp files of streaming pipes intact.
    • The cleanup will now use the last modified date instead of the creation date to determine whether the file should be deleted.
    • Added missing CLOB mapping to the serialized JSON that comes with the Word Template service request.
    • Moved the callback functionality to a common code space for reuse in Documents and ADx.
    • Using the MIME type of a Resource to instruct Aspose which document type it is actually working on.
    • Added a base set of fonts that will be registered in any case. This way necessary as some environments might not have any fonts installed, but they are needed for Conversion.
    • Added a separate callback service request for sending an intermediate status (mainly containing the percentage of the progress).
    • The Conversion Cartridge and all related artifacts have been removed.
    • Added possibility to configure the number of worker threads that can created Documents (CONV_DOCUMENT_CREATION_POOL_SIZE). When this is not set, an automatic mechanism will determine the optional number of threads based on the number of CPU cores and memory available.
  • Documents

    • The Documents Cartridge and all related artifacts have been removed.
    • Removed hashCode/equals methods from Wire template context which prevented the use of multiple contexts in the same environment.
    • The callback functionality has been moved into a common code area (and merged with the functionality of the Conversion callback) for better re-use.
    • Added special service requests that support the new WebReader. These requests can be used for getting/querying and manipulating Comments, Annotations, etc. It also supports server-side fulltext search of HOCR files.
    • When a Conversion result is received, the existing document (that would be overwritten) will no longer deleted but rather updated. This improves performance and also allows other entities to not loose their reference to the document.
    • When deleting/updating a Document, a lock will be acquired first to prevent simultaneous deletion or updates.

New Runtime Properties

The following runtime properties were added in this release:

PropertyDescriptionDefault Value
ELASTIC_PORTElasticsearch port9300
ELASTIC_CLUSTER_NODESNodes where elasticsearch service is used"${TRIBEFIRE_CLUSTER_NODES}"
CONV_DOCUMENT_CREATION_POOL_SIZEWhen this is not set, an automatic mechanism will determine the optional number of threads based on the number of CPU cores and memory available.none

Ultrafire

  • Adding links to CI pipelines from repository pages in GitHub.