CaseFabric Reference Guide

CaseFabric Reference Guide

  • Overview
  • Getting Started
  • CMMN
  • CaseFabric IDE
  • CaseFabric Engine
  • Extensions
  • API Reference
  • Releases

›Releases

Overview

  • CaseFabric
  • A short introduction
  • Product Overview

Getting Started

  • Introducing CaseFabric Demo
  • Generic UI
  • How to use task UI rendering
  • Two business applications
  • Obtaining CaseFabric Demo

Some CMMN

  • What is CMMN
  • Modelling the Case Plan
  • Modelling the Case File
  • Modelling the Case Team
  • Other things to model

CaseFabric IDE

  • An IDE?
  • Designing
  • Tasks and Parameters
  • Expressions
  • Deploying
  • Debugging

CaseFabric Engine

  • The CaseFabric Engine
  • Authentication
  • Authorization
  • Pictorial overview
  • Configuration
  • Logging
  • Repository

Extensions

  • Do we need extensions?
  • Fault Handling
  • Workflow
  • Business Identifiers

API Reference

  • Introducing the API
  • Joining the platform
  • Start a Case
  • Case Team membership
  • Executing the case
  • Retrieving cases and tasks
  • Casefile requests

Releases

  • Overview
  • 1.1.34
  • 1.1.33
  • 1.1.32
  • 1.1.31
  • 1.1.30
  • 1.1.29
  • 1.1.28
  • 1.1.27
  • 1.1.26
  • 1.1.25
  • 1.1.24
  • 1.1.23
  • 1.1.22
  • 1.1.21
  • 1.1.20
  • 1.1.19
  • 1.1.18
  • 1.1.17
  • 1.1.16
  • 1.1.15
  • 1.1.14
  • 1.1.13
  • 1.1.12
  • 1.1.11
  • 1.1.10
  • 1.1.9
  • 1.1.8
  • 1.1.7
  • 1.1.6
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.2
  • 1.1.1
  • 1.1.0

Cafienne Engine Release 1.1.14

Refactoring is Preparing

Refactoring is a term with many assocations. Some say it is where engineers loose themselves. Some say it is inevitable to handle the technical debt.
We think it is part of our daily job - and it is needed to continuously be prepared for future changes.

Cafienne version 1.1.14 contains a couple of case file enhancements, bugfixes and engine internal changes.

Case File Enhancements

Until this release, Cafienne Engine was a bit more lenient on handling task output than on handling case file modifications. When an modification was suggested through a direct Case File command (Create, Update, Replace) all json field names had to have a corresponding Case File Definition (either a property or a child case file item). This strict checking is not executed upon task completion and setting the task result in the case file. The direct commands are now also less strict. When a json field name is encountered that is not defined as a property or child, it will be accepted as part of the content. The type checking on properties continues to be validated.

Furthermore, when the Delete command is invoked on a Case File Item that has multiplicity defined (arrays), then it is no longer deleted from the json array, but it is set to null instead. This is more in line with the CMMN specification, and also with the internal state of the Case File (which keeps it as an item in Discarded state). This enables a more logical interaction with the case file after the operation, e.g. the next item in the array has the same index in the json as it has in the internal engine representation.

Changes to the configuration

The engine changes require some adjustments to the configuration file.

Compatibility

If the engine encounters an old configuration, it will silently assume it can use the new configuration. However we recommend that you change your configuration files and keep them up-to-date.

Changes to serialization settings

Below settings must be replaced

    serializers {
      cafienne_serializer = "org.cafienne.akka.actor.serialization.CafienneSerializer"
    }

    serialization-bindings {
      "org.cafienne.akka.actor.serialization.CafienneSerializable" = cafienne_serializer
    }

New settings to be used

    serializers {
      cafienne_serializer = "org.cafienne.infrastructure.serialization.CafienneSerializer"
    }

    serialization-bindings {
      "org.cafienne.infrastructure.serialization.CafienneSerializable" = cafienne_serializer
    }

Changes to tagging settings inside the journal

Below settings must be replaced

    event-adapters {
        tagging = "org.cafienne.akka.actor.tagging.CaseTaggingEventAdapter"
    }

    event-adapter-bindings {
        "org.cafienne.akka.actor.event.ModelEvent" = tagging
    }

New settings to be used

    event-adapters {
        tagging = "org.cafienne.actormodel.tagging.CaseTaggingEventAdapter"
    }

    event-adapter-bindings {
        "org.cafienne.actormodel.event.ModelEvent" = tagging
    }

New Debug API

Cases inside the engine are built on top of Akka actors. When the actor goes out of memory, and a new request for it is received, the Akka system will recover it back into memory. Cafienne is configured to remove actors from memory after a certain idle time. For test scripts and debugging it is sometimes handy to force the recovery process. This can now be achieved through the new API endpoint. Note that debugging and testing APIs are not part of the swagger documentation.

Housekeeping

The internal build street has been extended to always compile the engine to Java 11 language level. This makes it possible to import the maven jar file also in Java 11 projects.

Tickets closed

TicketDescription
#235CaseFileEvents are not recovering array state
#236CaseFile validation on property content should be more flexible
#237Deleting a CaseFileItem results in wrong return value for GET on the CaseFile
#240Implicit migration to new config settings sets the wrong path for akka.actor.serializers
#243TenantAppliedPlatformUpdate may lead to NullPointerException
← 1.1.151.1.13 →
  • Case File Enhancements
  • Changes to the configuration
    • Compatibility
    • Changes to serialization settings
    • Changes to tagging settings inside the journal
  • New Debug API
  • Housekeeping
  • Tickets closed