Skip to content
logoBack to home screen

tribefire 2.0 - 05/06/2020

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:

PropertyDescriptionDefault Value
TRIBEFIRE_DEPLOYMENT_STANDARD_THREADSNumber of Standard Deployment Threads5

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 the ResourceAccess 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 and api/v1 REST endpoints in favor of standard compliance. A strong bias to application/json was removed and the q 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 to setup-info now.

(JavaScript) Ux Modules

  • Added new natures TribefireUxModel and JsUxModule
  • 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 the rpc-model was removed now completely in favor of DDSA requests.
  • ServicePostProcessor may now return any Object instead of forcing the processor to wrap the result in a PostProcessResponse, 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 and AttributeContext to replace the ServiceRequestContext in APIs not directly related to service requests.
  • ServiceRequestContext is now an AttributeContext and thus immutable. Updates to the current context can be made via deriving from or replacing it.
  • Removed ServiceRequestContextManager and replaced it with the AttributeContexts 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