Releasing declab 2.9.0
4 min read

Releasing declab 2.9.0

It is finally time! With the release of version 2.9.0 of declab, we have addressed several topics, most of which focus on optimizing the process all the way from modeling to execution. In addition, we have already made the first modifications with regard to version 3.0.0, more about that at another time!

Updating the Design

The first, most obvious change is related to the design. We have updated the design (once again) in preparation for version 3.0.0 and will be making further changes in the coming months.

Designing Inputs, Outputs and Tests

The design of inputs, outputs and tests has been revised and is now easier to use. For example, descriptions or attached decisions of tests are now directly visible in the sidebar. The display of executions per second of a test case has been temporarily removed because the measurement was quite inaccurate. It will be integrated again in the next version in a much improved form.

Updating the Discoverer

The Discoverer is now available in an updated version. It supports the pinning of selectors and an additional view to be able to discover more complex inputs. The development is still ongoing.

Documentation of Models

The biggest feature of this version. declab now supports the creation of an interactive documentation, which can, for example, serve as a reference or as a basis for discussion. The following features are supported:

  • The dependencies between the different models are illustrated using a Model Import Diagram.
  • All data types are visualized. It is indicated if the data type is a list or if there is a list of allowed values. If the data type is complex, its children are also shown.
  • All inputs are displayed with reference to the relevant data type.
  • All knowledge models are visualized. In each case, the expected parameters and the return type are specified. All types of expressions are supported: Literal Expressions, Contexts, Decision Tables, Relations, Functions, Invocations and Lists.
  • All decisions are displayed. In each case, the return type is specified. All types of expressions are supported: Literal Expressions, Contexts, Decision Tables, Relations, Functions, Invocations and Lists.
  • All decision services are shown, with reference to the attached inputs, encapsulated decisions and output decisions.

Example

To quickly illustrate the documentation, we will use two test cases of the Decision Model and Notation Technology Compatibility Kit (TCK). When opening the documentation for the test case 0019-flight-rebooking, for example, you can see the following Model Import Diagram:

The knowledge model passenger priority of the test case 0019-flight-rebooking looks like this:

Let us know what you think! The following features are planned:

  • The ability to customize the order of the entities.
  • The option to hide entities that are not considered to be relevant.
  • Visualizing the Decision Requirements Graph and modeled Decision Requirements Diagrams.
  • The ability to create the documentation, even if the model contains some errors.
  • Supporting descriptions of inputs. This is currently not possible due to a bug in Drools.
  • Redesigning the visualization of Decision Services to resemble the visualization of the modeler more closely.

Formatting the Descriptions

The DMN specification allows you to add descriptions various parts of the model. To have more freedom while describing the model, the descriptions can be formatted with a fixed set of HTML tags. The following tags are supported:

<b>This line rendered as bold text.</b>
<i>This line rendered as italicized text.</i>
<u>This line of text will render as underlined.</u>
<s>This line of text is meant to be treated as no longer accurate.</s>
You can use the mark tag to <mark>highlight</mark> text.

If this description is added to a decision, for example, the respective documentation will look like this:

Printing the Documentation

The documentation is optimized for printing. After starting the print dialog via Ctrl + P or the corresponding option in the browser menu, the desired paper size can be selected:

It is also recommended to disable page margins and to enable background graphics:

Switching to a Supported Version of Drools

Until now, we have always integrated the most recent versions of Drools into declab. This meant that all of the latest features, such as those newly added to the version 1.4 of the DMN specification, could be used immediately. However, since these newer versions were often not used productively, problems could occur during the transition from development to production. To prevent these problems in the future, we will start to only integrate the latest version of Drools for which Red Hat also offers commercial support.

Fixing Multiple Issues

  • If multiple instances of the editor were opened, an infinite loop could occur. This is now no longer the case.
  • If a workspace was exported on a different operating system than it was imported, some entities could not be imported correctly. The import, including workspaces exported with one of the affected versions, now works as expected again.
  • The selection of a decision service was not respected during the execution of tests. This is now the case.
  • It was sometimes necessary to enter the password for read-only workspaces, even for read operations. This is now no longer the case.
  • The builder sometimes displayed an incorrect template when importing decisions from an underlying model. Such constellations should now work again as expected.