tree: 1795dff5938737151975e9b10414b4f4d192ab4e [path history] [tgz]
  1. operator/
  2. src/
  3. pom.xml
  4. README.md
kogito-springboot-examples/dmn-pmml-springboot-example/README.md

DMN + PMML + Spring Boot example

Description

A simple DMN + PMML service.

Installing and Running

Prerequisites

You will need:

  • Java 11+ installed
  • Environment variable JAVA_HOME set accordingly
  • Maven 3.8.1+ installed

Compile and Run

mvn clean compile spring-boot:run

Package and Run

mvn clean package
java -jar ./target/dmn-pmml-springboot-example.jar

Test DMN Model using Maven

Validate the functionality of DMN models before deploying them into a production environment by defining test scenarios in Test Scenario Editor.

To define test scenarios you need to create a .scesim file inside your project and link it to the DMN model you want to be tested. Run all Test Scenarios, executing:

mvn clean test

See results in surefire test report target/surefire-reports

Example Usage

Once the service is up and running, you can use the following example to interact with the service.

POST /Regression

Given inputs:

{
  "fld1":3.0, 
  "fld2":2.0, 
  "fld3":"y"
}

Curl command (using the JSON object above):

curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"fld1":3.0, "fld2":2.0, "fld3":"y"}' http://localhost:8080/TestRegressionDMN

or on Windows:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -d "{"fld1":3.0, "fld2":2.0, "fld3":"y"}" http://localhost:8080/TestRegressionDMN

Example response:

{
  "RegressionModelBKM":"function RegressionModelBKM( fld1, fld2, fld3 )",
  "fld3":"y",
  "fld2":2.0,
  "fld1":3.0,
  "Decision":52.5
}

POST /Tree

Given inputs:

{
  "temperature":30, 
  "humidity": 10 
}

Curl command (using the JSON object above):

curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"temperature":30, "humidity":10}' http://localhost:8080/TestTreeDMN

or on Windows:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -d "{"temperature":30, "humidity":10}" http://localhost:8080/TestTreeDMN

Example response:

{  
  "TestTreeBKM":"function TestTreeBKM( humidity, temperature )",
  "temperature":30,
  "humidity":10,
  "Decision":"sunglasses"
}

Deploying with Kogito Operator

In the operator directory you'll find the custom resources needed to deploy this example on OpenShift with the Kogito Operator.