tribefire 2.0 - 27/03/2019
On this page
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-dependencieshistoryaliasupdate-jinnicreate-artifactcreate-artifact-templatecreate-asset-aggregator-assetcreate-cartridgecreate-command-artifactcreate-common-artifactcreate-container-projection-assetcreate-custom-cartridge-assetcreate-gm-api-artifactcreate-groupcreate-integration-test-artifactcreate-library-artifactcreate-manipulation-priming-assetcreate-markdown-documentation-assetcreate-markdown-documentation-config-assetcreate-model-priming-assetcreate-parent-artifactcreate-plugin-priming-assetcreate-projectcreate-resource-priming-assetcreate-runtime-properties-assetcreate-script-priming-assetcreate-tribefire-runtime-manifestcreate-unit-test-artifact
-
Charset encoding: the charset of the protocol output can be controlled with the jinni option
protocolOutputin case your console is mapped to a codepage. -
Marshalling: the jinni option
responseMimeTyperesponse allows to select the marshaller that is used to output the response which a request has returned. Currently the following marshallers are supported:text/yamlapplication/x-yamltext/xmlgm/bingm/jsegm/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:
PositionalArgumentsAlias
Security
- introduced
access-control-modelto 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 respectiveWireModuleas the name of theWireModulereplaces the functionality of theinitializerId(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-initializerprovides 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 inDemoWorkbenchInitializerResourceContract. - 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 inDemoWorkbenchInitializerSpace.getEmployeesByGenderAsNotificationsTemplate() - Artifact
com.braintribe.gm:persistence-initializer-supportprovides a new Wire contract (CoreInstancesContract) for well-known core instances. They can be used by depending onCoreInstancesWireModulein 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 inDemoCartridgeInitializer.initializeModels(...).
Demo Setup
-
The workbench comes as initializer now. See
tribefire.extension.demo:tribefire-demo-workbench-initializerwhich 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-initializerfollows 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 headerresponseFileName: influencing response Content-Disposition;filename header to influence file-name defaulting for downloads and browser pluginssaveLocally: forces browser to download files instead of interpreting them