Skip to content
logoBack to home screen

tribefire 2.0 - 27/03/2019

Announcements

Note that for this release cartridges must be re-built against the release repository. This will be fixed in the future versions of tribefire (with introduction of modules).

Jinni

  • New commands (requests):

    • get-asset-dependencies
    • history
    • alias
    • update-jinni
    • create-artifact
    • create-artifact-template
    • create-asset-aggregator-asset
    • create-cartridge
    • create-command-artifact
    • create-common-artifact
    • create-container-projection-asset
    • create-custom-cartridge-asset
    • create-gm-api-artifact
    • create-group
    • create-integration-test-artifact
    • create-library-artifact
    • create-manipulation-priming-asset
    • create-markdown-documentation-asset
    • create-markdown-documentation-config-asset
    • create-model-priming-asset
    • create-parent-artifact
    • create-plugin-priming-asset
    • create-project
    • create-resource-priming-asset
    • create-runtime-properties-asset
    • create-script-priming-asset
    • create-tribefire-runtime-manifest
    • create-unit-test-artifact
  • Charset encoding: the charset of the protocol output can be controlled with the jinni option protocolOutput in case your console is mapped to a codepage.

  • Marshalling: the jinni option responseMimeType response allows to select the marshaller that is used to output the response which a request has returned. Currently the following marshallers are supported:

    • text/yaml
    • application/x-yaml
    • text/xml
    • gm/bin
    • gm/jse
    • gm/man

GmCore

  • Reduced the default DB connection pool size of 20 fixed connections to a minimum of 1 and a maximum of 3 connections.
  • Introcuded type Neutral (service-api-model) which can be returned by your respective eval and process methods.
  • Introduced UniversalMetaData and its respective Annotations:
    • PositionalArguments
    • Alias

Security

  • introduced access-control-model to manage and apply role based permissions for operations on instance level
  • access control support in SecurityAspect

For more information, see Access Control and Using Access Control.

HTTP Transport

  • Improved strategy of stale connection detection/handling in StaleAwareHttpRequestRetryHandler

Platform Assets

PluginPriming aka. Initializer

  • WireSupportedInitializer.initializerId() is deprecated and will be removed in the nearer future. Please ensure that the initializer contains a respective WireModule as the name of the WireModule replaces the functionality of the initializerId (e.g. globalId generation).
  • New feature AbstractInitializerSpace.importEntities(T) which enables to import entities into the initializer’s session. This is required in case entities cannot be created on the session directly (e.g. Templates, TC-Builder, EntityQueryBuilder, SelectQueryBuilder) Example:
TC.create().typeCondition(TypeConditions.isAssignableTo(Company.T)).done()

Proper globalId management is ensured.

  • globalId pattern: wire://WireModuleSimpleName||initializerId/WireSpace/managedInstance (whereas initializerId will be replaced by WireModuleSimpleName completely in the nearer future).
  • Workbench: New artifact tribefire.cortex.assets:tribefire-default-workbench-initializer provides default workbench configuration as known from the control-center actions “Setup Workbench” and “Configure Workbench”.
  • Workbench: In case you want to apply the grayish-blue-style, depend on new artifact tribefire.cortex.assets:tribefire-grayish-blue-style-initializer.
  • Introduced annotation @InstanceLookup. This annotation marks a Wire contract indicating that it contains managed instances to be looked up instead of being created. An example can be found in DemoWorkbenchInitializerResourceContract.
  • New artifact com.braintribe.gm:persistence-initializer-provided-default-deps. Depend on this and remove all other dependencies which are being provided by this artifact from your initializer’s dependencies.

Templates

  • New artifact com.braintribe.gm:template-building. An example can be found in DemoWorkbenchInitializerSpace.getEmployeesByGenderAsNotificationsTemplate()
  • Artifact com.braintribe.gm:persistence-initializer-support provides a new Wire contract (CoreInstancesContract) for well-known core instances. They can be used by depending on CoreInstancesWireModule in the respective initializer. Everbody can contribute to this contract and extend it with required core instances: com.braintribe.gm.persistence.initializer.support.integrity.wire.contract.CoreInstancesContract. Example can be found in DemoCartridgeInitializer.initializeModels(...).

Demo Setup

  • The workbench comes as initializer now. See tribefire.extension.demo:tribefire-demo-workbench-initializer which shows how to use templates, import of entities, depending on tribefire-grayish-blue-style-initializer and the new initializer structure at all.

  • tribefire.extension.demo:tribefire-demo-cartridge-initializer follows the latest initializer architecture.

DDSA

Unstructured Data Support

  • CallGmSession/CallResource deprecation
  • Introduction of TransientSource and its handling in RPC

DDRA/REST

  • Introduced new endpoint parameters:
    • responseContentType: override of response Content-Type header
    • responseFileName: influencing response Content-Disposition;filename header to influence file-name defaulting for downloads and browser plugins
    • saveLocally: forces browser to download files instead of interpreting them