Chapter 2. New features

This section highlights new features in Red Hat Decision Manager 7.7.

2.1. Reference implementations

The high available event-driven decisioning reference implementations are improved.

No root access in the container required for HA CEP services

When implementing high available event-driven decisioning in Red Hat Decision Manager, the HA CEP (high-availability complex event processing) services do not require root access within the container.

On-the-fly KJAR updating of HA CEP services

When implementing high available event-driven decisioning in Red Hat Decision Manager, you can update KJAR HA CEP services without removing and redeploying the HA CEP solution. The content of working memory is preserved.

2.2. Business Central

2.2.1. Maven archetype support in Business Central

Maven archetype support is now available in Business Central. To access this functionality, select the Admin icon in the top-right corner of the screen and select the Archetypes option on the Business Central Settings page. The following list provides a summary of Maven archetypes enhancements:

  • You can list, add, validate, set a default, and delete the archetypes.
  • You can use them as a template when creating a new project in Business Central.
  • To manage all available archetypes in spaces, go to Design<your_space>Settings in Business Central.

For more information about archetypes management, see Configuring Business Central settings and properties.

2.2.2. Test Scenarios

The test scenarios designer in Business Central is now available with the new features supported in Red Hat Decision Manager 7.7.

  • In DMN-based as well as rule-based test scenarios, it is now possible to define the value of a collection like a list or a map by using an expression in both GIVEN and EXPECT columns. To add an expression, you can now choose Define list from the collection editor.
  • You can now use the KIE Server REST API to execute the test scenarios externally. It executes the test scenarios against the deployed project. This functionality is disabled by default, use org.kie.scenariosimulation.server.ext.disabled system property to enable it.

For more information about test scenarios designer in Business Central, see Testing a decision service using test scenarios.

2.2.3. Ability to create a project from empty repositories

You can now create a new project in Business Central by importing an empty GitHub or GitLab external repository.

2.2.4. Squash commit on change requests

You can now squash multiple commits into a single commit and add the commit to a target branch for a change request. For more information about change requests in Business Central, see Managing projects in Business Central.

2.2.5. Code completion for FEEL expressions in Decision Model and Notation (DMN) designer

When typing a FEEL expression in the boxed literal expression editor, you can now see FEEL functions appear as suggestions that you can apply to complete the expression if required.

2.2.6. Decision Model and Notation (DMN) designer improvements

The Decision Model and Notation (DMN) designer in Business Central includes the following notable enhancements:

  • New visual indication for the data type nesting levels in a project allowing users to quickly reference nesting details without leaving the editor.
  • Zero values are hidden in the Data Type constraints wizard to eliminate wasted screen space.
  • Improved visual and functional support for the search component placeholder.
  • Support for drag and drop to reorder data types.

2.2.7. Support for branch management and performing Maven actions on branches using the REST API

Users can now manage branches and perform Maven action on branches using the REST API:

Return all branches in a specific project and space:

[GET] /spaces/{spaceName}/projects/{projectName}/branches::

Add a specific branch to a specific project and space:

[POST] /spaces/{spaceName}/projects/{projectName}/branches::

Delete a specific branch from a specific project and space:

[DELETE] /spaces/{spaceName}/projects/{projectName}/branches/{branchName}::

Compile a specific branch in a specific project and space. If branchName is not specified, then the request defaults to using the master branch.

[POST] /spaces/{spaceName}/projects/{projectName}/branches/{branchName}/maven/compile::

Install a specific branch in a specific project and space. If branchName is not specified, then the request defaults to using the master branch.

[POST] /spaces/{spaceName}/projects/{projectName}/branches/{branchName}/maven/install::

Test a specific branch in a specific project and space. If branchName is not specified, then the request defaults to using the master branch.

[POST] /spaces/{spaceName}/projects/{projectName}/branches/{branchName}/maven/test::

Deploy a specific branch in a specific project and space. If branchName is not specified, then the request defaults to using the master branch.

[POST] /spaces/{spaceName}/projects/{projectName}/branches/{branchName}/maven/deploy::

For more information about REST API for Business Central spaces and projects, see Interacting with Red Hat Decision Manager using KIE APIs.

2.2.8. Support for DMN 1.3

Red Hat Decision Manager 7.7 is now DMN 1.3 ready.

2.2.9. Supported languages

Starting with the 7.7 release, the Red Hat Decision Manager user interface is now localized in Spanish and French in addition to English and Japanese.

2.3. Decision engine

2.3.1. Default support for executable rule models in the kie-maven-plugin plugin

Rule assets in Red Hat Decision Manager are built from executable rule models by default with the standard kie-maven-plugin plugin. Executable rule models are embedded models that provide a Java-based representation of a rule set for execution at build time. The executable model is a more efficient alternative to the standard asset packaging in previous versions of Red Hat Decision Manager and enables KIE containers and KIE bases to be created more quickly, especially when you have large lists of DRL (Drools Rule Language) files and other Red Hat Decision Manager assets.

If you are upgrading to Red Hat Decision Manager 7.7 from a previous version of the product and you have not already enabled executable rule models, you must add the required dependency to your existing Red Hat Decision Manager projects so that your rule assets are built from executable models in Red Hat Decision Manager 7.7.

For instructions on enabling executable rule models when upgrading to Red Hat Decision Manager 7.7, see Patching and upgrading Red Hat Decision Manager 7.7.

For more information about executable rule models, see Packaging and deploying a Red Hat Decision Manager project.

2.4. Integration

2.5. Red Hat Business Optimizer

2.5.1. Added Spring Boot starter

Red Hat Business Optimizer now includes a Spring Boot starter. You can use the Spring Boot starter to avoid common issues with class loading and use application.properties to overwrite the solver configuration. The solverConfig.xml file is no longer required because the starter automatically detects @PlanningSolution and @PlanningEntity annotations. The constraint streams API is improved. You can now modify your streams using the groupBy() building block.

For more information, see Creating Red Hat Decision Manager business applications with Spring Boot.

2.5.2. SolverManager

You can use SolverManager as wrapper for one or more Solver instances to simplify planning REST API and other enterprise services. The solve(…​) methods differ from the normal Solver.solve(…​) method:

  • SolverManager.solve(…​) schedules a problem for asynchronous solving without blocking the calling thread. This avoids timeout issues of HTTP and other technologies. It returns immediately.
  • SolverManager.solve(…​) solves multiple planning problems of the same domain, in parallel.

SolverManager supports batch solving and solving that displays the progress to the end-user:

public class TimeTableService {
    private SolverManager<TimeTable, Long> solverManager;

    // Returns immediately, ok to expose as a REST service
    public void solve(Long timeTableId) {
        solverManager.solveAndListen(timeTableId,
            // Called once, when solving starts
            this::findById,
            // Called multiple times, for every best solution change
            this::save);
    }
    public TimeTable findById(Long timeTableId) {...}
    public void save(TimeTable timeTable) {...}
    public void stopSolving(Long timeTableId) {
        solverManager.terminateEarly(timeTableId);
    }
}

2.6. Red Hat OpenShift Container Platform

2.6.1. Support for Git hooks in operator deployment on Red Hat OpenShift Container Platform

When deploying Red Hat Decision Manager on Red Hat OpenShift Container Platform using the operator, you can configure Git hooks to enable interaction between the built in Git repository of Business Central and other repositories.

For more information, see Deploying a Red Hat Decision Manager environment on Red Hat OpenShift Container Platform using Operators.

2.6.2. Support for role mapping in operator deployment on Red Hat OpenShift Container Platform

When deploying Red Hat Decision Manager on Red Hat OpenShift Container Platform using the operator and using RH-SSO or LDAP authentication, you can configure role mapping to link roles defined in Red Hat Decision Manager to different roles defined in RH-SSO or LDAP.

For more information about role mapping in operator deployment on Red Hat OpenShift Container Platform, see Deploying a Red Hat Decision Manager environment on Red Hat OpenShift Container Platform using Operators.

2.6.3. Support for JVM configuration in operator deployment on Red Hat OpenShift Container Platform

When deploying Red Hat Decision Manager on Red Hat OpenShift Container Platform using the operator, you can set custom JVM configuration for Business Central and KIE Server pods.

For more information about JVM configuration in operator deployment on Red Hat OpenShift Container Platform, see Deploying a Red Hat Decision Manager environment on Red Hat OpenShift Container Platform using Operators.

2.6.4. Deploying an authoring environment on Red Hat OpenShift Container Platform without ReadWriteMany support

When deploying Red Hat Decision Manager on Red Hat OpenShift Container Platform, you can deploy an authoring environment if your Red Hat OpenShift Container Platform infrastructure does not provision persistent modules that support the ReadWriteMany mode.

2.6.5. A single built-in user account for communication between Business Central and KIE Server

Red Hat Decision Manager now uses a single built-in administrative user account for communication between Business Central and KIE Server. You no longer need to configure multiple built-in user accounts.

2.6.6. Support for concurrent service deployment on a KIE Server in a Red Hat Decision Manager authoring environment on Red Hat OpenShift Container Platform

If you deploy a Red Hat Decision Manager authoring environment on Red Hat OpenShift Container Platform 3.x using templates, you can deploy several services on the same KIE Server concurrently, without needing to wait for a deployment to complete before you can start the next deployment. This functionality is provided by the ControllerBasedStartupStrategy setting that applies to communication between Business Central and KIE Server. You can also enable this strategy when deploying on Red Hat OpenShift Container Platform 4.x using the operator.

For more information, see Deploying a Red Hat Decision Manager authoring or managed server environment on Red Hat OpenShift Container Platform.

2.6.7. Support for deploying Red Hat Decision Manager on Red Hat OpenShift Container Platform 4.3

Deploying Red Hat Decision Manager using the operator on Red Hat OpenShift Container Platform 4.3 is now supported.

For more information about deploying Red Hat Decision Manager on Red Hat OpenShift Container Platform 4.3, see Deploying a Red Hat Decision Manager environment on Red Hat OpenShift Container Platform using Operators.

2.6.8. Red Hat JBoss EAP version updated to 7.2.6

In Red Hat Decision Manager images for Red Hat OpenShift Container Platform, the Red Hat JBoss EAP version is updated to 7.2.6.