03 August 2021

In this post I want to highlight all the integrations of the kie-dmn-validation module on several platforms.

What is it?

In a previous post, we have seen how the Drools DMN validation module was integrated specifically on the Kogito platform. As a short review, the kie-dmn-validation module offer several features for:

The pre-compilation phase, where semantic validations are performed statically by introspecting deserialised DMN models, make use of Drools rules to ensure the conformance requirements from the DMN specification itself are respected in the DMN model provided by the user.

Integration on Kie v7: Business Central and Maven (KJAR)

Speaking of Kie (v7) platforms, the DMN Validation is performed out of the box:

There is some fine-print about out of the box DMN Validation enabled features, on the Kie v7 platform:

  kie-maven-plugin DMN Editor on BC
VALIDATE_SCHEMA
compliance with DMN xml
Active by default Skipped (always skipped)
VALIDATE_MODEL
semantic validation
Active by default Always performed
VALIDATE_COMPILATION
consistency during compilation
Active by default Always performed*
ANALYZE_DECISION_TABLE
decision table static analysis
Active by default Always performed

* except for DMN->Java integration checks (DROOLS-5577)

The table summarises how Business Central and the kie-maven-plugin use validation features of the DMN Validation module. There is no option to customize which features to use on BC. When using a Maven build of a KJAR project with the kie-maven-plugin, you can customize which features to use; you can reference to this chapter in the documentation referring to "Configurable DMN validation in Drools" and the validateDMN option of the kie-maven-plugin configuration.

Integration on Kogito

As mentioned in the previous post, the kie-dmn-validation module is integrated out of the box on the Kogito platform, during the code generation phase.

All DMN Validation features are enabled by default. You can customize with a configuration option whether to disable this validation integration; you can reference to this chapter in the documentation referring to "Configurable DMN validation in Kogito" and the kogito.decisions.validation option of the Kogito application configuration.

Integration on JIT executor

The Just-in-Time (JIT) executor is an experimental module based on Kogito, Quarkus and Native Image compilation; it is meant as a foundational tool to support development-time of DMN models and other knowledge assets.

The JIT Executor provides integration of the kie-dmn-validation to perform all the DMN validation by means of an API; you can reference the documentation for more details.

You might be interested to know the JIT Executor is the underlying engine empowering the local DMN runner, described in this post.

Conclusions

As we have seen in this article, not only the kie-dmn-validation module provides several helpful features to validate DMN model during build-time, such as semantic validation and Decision Table static analysis!

It is also a set of comprehensive capabilities which we have integrated for you on several platforms, including Kie v7 KJAR maven build, Business Central, Kogito and Kogito toolings!

Have you tried it? Let us know your feedback in the comments below!