This is an automated email from the ASF dual-hosted git repository.

gitgabrio pushed a commit to branch incubator-kie-issues#1918
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-examples.git

commit 15004692ea67231954aa3f63f257bae47fca9b95
Author: Gabriele-Cardosi <[email protected]>
AuthorDate: Wed Jan 14 11:49:32 2026 +0100

    [incubator-kie-issues#1918] Working gradle-springboot-examples
---
 gradle-examples/gradle/wrapper/gradle-wrapper.jar  | Bin 0 -> 43705 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |   7 +
 gradle-examples/gradlew                            | 251 ++++++++++
 gradle-examples/gradlew.bat                        |  94 ++++
 .../kogito-springboot-gradle-examples/pom.xml      |  22 +
 .../README.md                                      |  59 +++
 .../build.gradle                                   |  70 +++
 .../pom.xml                                        |  92 ++++
 .../settings.gradle                                |  40 ++
 .../java/org/kie/kogito/traffic/DriverService.java |  46 ++
 .../src/main/java/org/kie/kogito/traffic/Fine.java |  47 ++
 .../org/kie/kogito/traffic/KogitoApplication.java  |  31 ++
 .../java/org/kie/kogito/traffic/Violation.java     |  93 ++++
 .../licensevalidated/LicenseValidatedService.java  |  50 ++
 .../kogito/traffic/licensevalidated/Validated.java |  56 +++
 .../kogito/traffic/licensevalidation/Driver.java   | 131 +++++
 .../LicenseValidationService.java                  |  50 ++
 .../src/main/resources/LicenseValidatedService.drl |  32 ++
 .../main/resources/LicenseValidationService.drl    |  39 ++
 .../src/main/resources/TrafficViolation.dmn        | 307 ++++++++++++
 .../src/main/resources/application.properties      |  23 +
 .../src/main/resources/traffic-rules-dmn.bpmn      | 534 +++++++++++++++++++++
 .../org/kie/kogito/traffic/TrafficProcessIT.java   |  82 ++++
 .../kie/kogito/traffic/TrafficValidationIT.java    |  83 ++++
 .../org/kie/kogito/traffic/TrafficViolationIT.java |  68 +++
 gradle-examples/pom.xml                            |  21 +
 .../process-decisions-rules-springboot/pom.xml     |   1 -
 pom.xml                                            |   1 +
 28 files changed, 2329 insertions(+), 1 deletion(-)

diff --git a/gradle-examples/gradle/wrapper/gradle-wrapper.jar 
b/gradle-examples/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..9bbc975c7
Binary files /dev/null and b/gradle-examples/gradle/wrapper/gradle-wrapper.jar 
differ
diff --git a/gradle-examples/gradle/wrapper/gradle-wrapper.properties 
b/gradle-examples/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..23449a2b5
--- /dev/null
+++ b/gradle-examples/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradle-examples/gradlew b/gradle-examples/gradlew
new file mode 100755
index 000000000..faf93008b
--- /dev/null
+++ b/gradle-examples/gradlew
@@ -0,0 +1,251 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+##############################################################################
+#
+#   Gradle start up script for POSIX generated by Gradle.
+#
+#   Important for running:
+#
+#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+#       noncompliant, but you have some other compliant shell such as ksh or
+#       bash, then to run this script, type that shell name before the whole
+#       command line, like:
+#
+#           ksh Gradle
+#
+#       Busybox and similar reduced shells will NOT work, because this script
+#       requires all of these POSIX shell features:
+#         * functions;
+#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+#         * compound commands having a testable exit status, especially «case»;
+#         * various built-in commands including «command», «set», and «ulimit».
+#
+#   Important for patching:
+#
+#   (2) This script targets any POSIX shell, so it avoids extensions provided
+#       by Bash, Ksh, etc; in particular arrays are avoided.
+#
+#       The "traditional" practice of packing multiple parameters into a
+#       space-separated string is a well documented source of bugs and security
+#       problems, so this is (mostly) avoided, by progressively accumulating
+#       options in "$@", and eventually passing that to Java.
+#
+#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+#       see the in-line comments for details.
+#
+#       There are tweaks for specific operating systems such as AIX, CygWin,
+#       Darwin, MinGW, and NonStop.
+#
+#   (3) This script is generated from the Groovy template
+#       
https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       within the Gradle project.
+#
+#       You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no 
leading path
+    [ -h "$app_path" ]
+do
+    ls=$( ls -ld "$app_path" )
+    link=${ls#*' -> '}
+    case $link in             #(
+      /*)   app_path=$link ;; #(
+      *)    app_path=$APP_HOME$link ;;
+    esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set 
(https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || 
exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+    echo "$*"
+} >&2
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in                #(
+  CYGWIN* )         cygwin=true  ;; #(
+  Darwin* )         darwin=true  ;; #(
+  MSYS* | MINGW* )  msys=true    ;; #(
+  NONSTOP* )        nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD=$JAVA_HOME/jre/sh/java
+    else
+        JAVACMD=$JAVA_HOME/bin/java
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD=java
+    if ! command -v java >/dev/null 2>&1
+    then
+        die "ERROR: JAVA_HOME is not set and no 'java' command could be found 
in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+    case $MAX_FD in #(
+      max*)
+        # In POSIX sh, ulimit -H is undefined. That's why the result is 
checked to see if it worked.
+        # shellcheck disable=SC2039,SC3045
+        MAX_FD=$( ulimit -H -n ) ||
+            warn "Could not query maximum file descriptor limit"
+    esac
+    case $MAX_FD in  #(
+      '' | soft) :;; #(
+      *)
+        # In POSIX sh, ulimit -n is undefined. That's why the result is 
checked to see if it worked.
+        # shellcheck disable=SC2039,SC3045
+        ulimit -n "$MAX_FD" ||
+            warn "Could not set maximum file descriptor limit to $MAX_FD"
+    esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+#   * args from the command line
+#   * the main class name
+#   * -classpath
+#   * -D...appname settings
+#   * --module-path (only if needed)
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+    JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    for arg do
+        if
+            case $arg in                                #(
+              -*)   false ;;                            # don't mess with 
options #(
+              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX 
filepath
+                    [ -e "$t" ] ;;                      #(
+              *)    false ;;
+            esac
+        then
+            arg=$( cygpath --path --ignore --mixed "$arg" )
+        fi
+        # Roll the args list around exactly as many times as the number of
+        # args, so each arg winds up back in the position where it started, but
+        # possibly modified.
+        #
+        # NB: a `for` loop captures its iteration list before it begins, so
+        # changing the positional parameters here affects neither the number of
+        # iterations, nor the values presented in `arg`.
+        shift                   # remove old arg
+        set -- "$@" "$arg"      # push replacement arg
+    done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to 
pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to 
contain shell fragments,
+#     and any embedded shellness will be escaped.
+#   * For example: A user cannot expect ${Hostname} to be expanded, as it is 
an environment variable and will be
+#     treated as '${Hostname}' itself on the command line.
+
+set -- \
+        "-Dorg.gradle.appname=$APP_BASE_NAME" \
+        -classpath "$CLASSPATH" \
+        org.gradle.wrapper.GradleWrapperMain \
+        "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+    die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes 
removed.
+#
+# In Bash we could simply go:
+#
+#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+#   set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+        xargs -n1 |
+        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+        tr '\n' ' '
+    )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradle-examples/gradlew.bat b/gradle-examples/gradlew.bat
new file mode 100644
index 000000000..9d21a2183
--- /dev/null
+++ b/gradle-examples/gradlew.bat
@@ -0,0 +1,94 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS 
to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your 
PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% 
"-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" 
org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code 
instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/gradle-examples/kogito-springboot-gradle-examples/pom.xml 
b/gradle-examples/kogito-springboot-gradle-examples/pom.xml
new file mode 100644
index 000000000..5fc927275
--- /dev/null
+++ b/gradle-examples/kogito-springboot-gradle-examples/pom.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.kie.kogito.examples</groupId>
+    <artifactId>gradle-examples</artifactId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+  <packaging>pom</packaging>
+
+  <artifactId>kogito-springboot-gradle-examples</artifactId>
+
+  <name>Springboot Gradle Examples</name>
+  <description>Kogito Springboot Examples built with Gradle</description>
+  <modules>
+    <module>process-decisions-rules-springboot-gradle</module>
+  </modules>
+
+
+</project>
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md
new file mode 100644
index 000000000..209f6f516
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md
@@ -0,0 +1,59 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+# Kogito Gradle Plugin Test
+
+This module represent a kogito spring-boot application containing rules, 
decisions, and processes models, managed by gradle.
+
+To directly start it from command line, it is enough to issue
+```bash
+./gradlew clean bootRun
+```
+
+while the following command could be used to build it
+```bash
+./gradlew clean jar
+```
+
+## HOT-RELOAD
+That module feature the "org.springframework.boot:spring-boot-devtools" plugin 
to enable hot reload on source change (additional dependency):
+
+```kts
+  developmentOnly 'org.springframework.boot:spring-boot-devtools'
+```
+
+To achieve that:
+1. in one terminal, issue the command that will listen for code change and, 
eventually, rebuilt the application on-demand
+```bash
+./gradlew clean compileSecondaryJava --continuous --parallel --build-cache
+```
+2. inside another terminal, issue the command that actually start the 
application
+```bash
+./gradlew bootRun
+```
+
+Whenever a source is modified, the code will be rebuilt and the application 
re-started with the modifications.
+
+
+## CI Integration
+This module also contains a pom.xml so that it may be built and verified 
inside CI pipelines.
+
+The maven compilation of java sources is "disabled" inside the pom.xml, whose 
only scope is to execute the "gradle clean test" tasks (featuring the 
"exec-maven-plugin") 
+
+
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle
new file mode 100644
index 000000000..b5c815383
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+plugins {
+  id 'java'
+  id("org.kie.kogito.gradle") version "999-SNAPSHOT"
+  id 'org.springframework.boot' version '3.4.11'
+}
+
+repositories {
+  mavenCentral()
+  mavenLocal()
+}
+
+dependencies {
+  implementation platform("org.kie.kogito:kogito-spring-boot-bom:999-SNAPSHOT")
+  implementation("org.springframework.boot:spring-boot-starter-web")
+  implementation("org.jbpm:jbpm-spring-boot-starter")
+  implementation("org.drools:drools-decisions-spring-boot-starter")
+  testImplementation("org.junit.jupiter:junit-jupiter:5.12.1")
+  testImplementation("org.springframework.boot:spring-boot-starter-test")
+  testImplementation("io.rest-assured:rest-assured")
+  developmentOnly 'org.springframework.boot:spring-boot-devtools'
+}
+
+
+generateModelConfig {
+  jsonSchemaVersion = "DRAFT_2019_09"
+}
+
+tasks.withType(JavaCompile).configureEach() {
+  options.encoding = "UTF-8"
+
+}
+
+tasks.named("bootRun") {
+  mainClass = 'org.kie.kogito.traffic.KogitoApplication'
+  dependsOn(tasks.named("compileSecondaryJava"))
+}
+
+tasks.named("jar") {
+  dependsOn(tasks.named("compileSecondaryJava"))
+  from(tasks.named("compileSecondaryJava").get())
+}
+
+tasks.named("compileTestJava") {
+  dependsOn(tasks.named("compileSecondaryJava"))
+}
+
+test {
+  dependsOn(tasks.named("jar"))
+  useJUnitPlatform()
+}
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml
new file mode 100644
index 000000000..a05bf0aca
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.kie.kogito.examples</groupId>
+    <artifactId>kogito-springboot-gradle-examples</artifactId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>process-decisions-rules-springboot-gradle</artifactId>
+  <name>Kogito Example :: Process :: Decisions :: Rules :: Spring Boot :: 
Gradle</name>
+  <description>Process with DRL, DMN and DRL integration - Spring Boot - 
Gradle</description>
+
+  <properties>
+    
<java.module.name>process.decisions.rules.springboot.gradle</java.module.name>
+    <maven.compiler.release>17</maven.compiler.release>
+    
<gradle.executable>${project.parent.parent.basedir}/gradlew</gradle.executable>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-gradle-plugin</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <!-- exclude maven compilation -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*.java</exclude>
+          </excludes>
+          <testExcludes>
+            <exclude>**/*.java</exclude>
+          </testExcludes>
+        </configuration>
+      </plugin>
+      <!-- execute Gradle command -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>gradle</id>
+            <phase>test-compile</phase>
+            <configuration>
+              <executable>${gradle.executable}</executable>
+              <arguments>
+                <argument>clean</argument>
+                <argument>test</argument>
+              </arguments>
+            </configuration>
+            <goals>
+              <goal>exec</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <configuration>
+          <filesets>
+            <fileset>
+              <directory>${project.basedir}/build</directory>
+            </fileset>
+          </filesets>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>WINDOWS</id>
+      <activation>
+        <os>
+          <family>windows</family>
+        </os>
+      </activation>
+      <properties>
+        
<gradle.executable>${project.parent.parent.basedir}/gradlew.bat</gradle.executable>
+      </properties>
+    </profile>
+  </profiles>
+</project>
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle
new file mode 100644
index 000000000..fba3f17bc
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+pluginManagement {
+  repositories {
+    mavenLocal()
+    mavenCentral()
+    maven {
+      url = uri("target/dependencies")
+    }
+    maven {
+      url = uri("https://plugins.gradle.org/m2/";)
+    }
+  }
+  resolutionStrategy {
+    eachPlugin {
+      if (requested.id.namespace == "org.kie.kogito") {
+        useModule("org.kie.kogito:kogito-gradle-plugin:${requested.version}")
+      }
+    }
+  }
+}
+rootProject.name = "kogito-gradle-plugin-test"
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java
new file mode 100644
index 000000000..ded5844df
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import java.time.ZonedDateTime;
+import java.util.Date;
+
+import org.kie.kogito.traffic.licensevalidation.Driver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DriverService {
+
+    private static Logger LOGGER = 
LoggerFactory.getLogger(DriverService.class);
+
+    public Driver getDriver(String driverId) {
+        LOGGER.info("Get Driver Information for id = {}", driverId);
+        //Could call an external service, database, etc.
+
+        //Mocking driver details
+        String[] parts = driverId.split("-");
+        long days = Long.parseLong(parts[0]);
+        int points = Integer.parseInt(parts[1]);
+        Date licenseExpiration = new 
Date(ZonedDateTime.now().plusDays(days).toInstant().toEpochMilli());
+        return new Driver(driverId, "Arthur", "SP", "Campinas", points, 30, 
licenseExpiration);
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java
new file mode 100644
index 000000000..830aa484c
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class Fine {
+
+    @JsonProperty("Amount")
+    private Double amount;
+
+    @JsonProperty("Points")
+    private Integer points;
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public Integer getPoints() {
+        return points;
+    }
+
+    public void setPoints(Integer points) {
+        this.points = points;
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java
new file mode 100644
index 000000000..deb467c93
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication(scanBasePackages = { "org.kie.kogito.**", 
"com.example.**", "http**" })
+public class KogitoApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(KogitoApplication.class, args);
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java
new file mode 100644
index 000000000..4cfb1aaab
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class Violation {
+
+    @JsonProperty("Code")
+    private String code;
+
+    @JsonProperty("Date")
+    private Date date;
+
+    @JsonProperty("Type")
+    private String type;
+
+    @JsonProperty("Speed Limit")
+    private BigDecimal speedLimit;
+
+    @JsonProperty("Actual Speed")
+    private BigDecimal actualSpeed;
+
+    public Violation() {
+    }
+
+    public Violation(String type, BigDecimal speedLimit, BigDecimal 
actualSpeed) {
+        this.type = type;
+        this.speedLimit = speedLimit;
+        this.actualSpeed = actualSpeed;
+        this.date = new Date();
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public BigDecimal getSpeedLimit() {
+        return speedLimit;
+    }
+
+    public void setSpeedLimit(BigDecimal speedLimit) {
+        this.speedLimit = speedLimit;
+    }
+
+    public BigDecimal getActualSpeed() {
+        return actualSpeed;
+    }
+
+    public void setActualSpeed(BigDecimal actualSpeed) {
+        this.actualSpeed = actualSpeed;
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java
new file mode 100644
index 000000000..5555b1a02
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic.licensevalidated;
+
+import java.util.Date;
+
+import org.drools.ruleunits.api.DataSource;
+import org.drools.ruleunits.api.RuleUnitData;
+import org.drools.ruleunits.api.SingletonStore;
+
+public class LicenseValidatedService implements RuleUnitData {
+    private SingletonStore<Validated> validated;
+
+    public LicenseValidatedService() {
+        this(DataSource.createSingleton());
+    }
+
+    public LicenseValidatedService(SingletonStore<Validated> validated) {
+        this.validated = validated;
+    }
+
+    public void setValidated(SingletonStore<Validated> validated) {
+        this.validated = validated;
+    }
+
+    public SingletonStore<Validated> getValidated() {
+        return validated;
+    }
+
+    public Date getCurrentTime() {
+        return new Date();
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java
new file mode 100644
index 000000000..e8fdf445e
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic.licensevalidated;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class Validated {
+
+    @JsonProperty("Suspended")
+    private String suspended;
+
+    @JsonProperty("ValidLicense")
+    private Boolean validLicense = Boolean.FALSE;
+
+    public Validated() {
+    }
+
+    public Validated(String suspended) {
+        this.suspended = suspended;
+    }
+
+    public String getSuspended() {
+        return suspended;
+    }
+
+    public Boolean isValidLicense() {
+        return validLicense;
+    }
+
+    public Boolean getValidLicense() {
+        return validLicense;
+    }
+
+    public void setValidLicense(Boolean validLicense) {
+        this.validLicense = validLicense;
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java
new file mode 100644
index 000000000..cfe7d0793
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.kie.kogito.traffic.licensevalidation;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class Driver {
+
+    private String id;
+
+    @JsonProperty("Name")
+    private String name;
+
+    @JsonProperty("State")
+    private String state;
+
+    @JsonProperty("City")
+    private String city;
+
+    @JsonProperty("Points")
+    private Integer points;
+
+    @JsonProperty("Age")
+    private Integer age;
+
+    private Date licenseExpiration;
+
+    @JsonProperty("ValidLicense")
+    private Boolean validLicense = Boolean.FALSE;
+
+    public Driver() {
+    }
+
+    public Driver(String id, String name, String state, String city, Integer 
points, Integer age, Date licenseExpiration) {
+        this.id = id;
+        this.name = name;
+        this.state = state;
+        this.city = city;
+        this.points = points;
+        this.age = age;
+        this.licenseExpiration = licenseExpiration;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public Integer getPoints() {
+        return points;
+    }
+
+    public void setPoints(Integer points) {
+        this.points = points;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public Date getLicenseExpiration() {
+        return licenseExpiration;
+    }
+
+    public void setLicenseExpiration(Date licenseExpiration) {
+        this.licenseExpiration = licenseExpiration;
+    }
+
+    public Boolean isValidLicense() {
+        return validLicense;
+    }
+
+    public Boolean getValidLicense() {
+        return validLicense;
+    }
+
+    public void setValidLicense(Boolean validLicense) {
+        this.validLicense = validLicense;
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java
new file mode 100644
index 000000000..082455e68
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic.licensevalidation;
+
+import java.util.Date;
+
+import org.drools.ruleunits.api.DataSource;
+import org.drools.ruleunits.api.RuleUnitData;
+import org.drools.ruleunits.api.SingletonStore;
+
+public class LicenseValidationService implements RuleUnitData {
+    private SingletonStore<Driver> driver;
+
+    public LicenseValidationService() {
+        this(DataSource.createSingleton());
+    }
+
+    public LicenseValidationService(SingletonStore<Driver> driver) {
+        this.driver = driver;
+    }
+
+    public void setDriver(SingletonStore<Driver> driver) {
+        this.driver = driver;
+    }
+
+    public SingletonStore<Driver> getDriver() {
+        return driver;
+    }
+
+    public Date getCurrentTime() {
+        return new Date();
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl
new file mode 100644
index 000000000..f3b50665c
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl
@@ -0,0 +1,32 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.kie.kogito.traffic.licensevalidated
+
+unit LicenseValidatedService
+
+rule "Is validated license validated"
+when            
+    $validated: /validated[suspended.equalsIgnoreCase("no")]
+then
+    $validated.setValidLicense(true);
+end
+
+query "validate"
+  $validated : /validated
+end
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl
new file mode 100644
index 000000000..da7439087
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.kie.kogito.traffic.licensevalidation
+
+unit LicenseValidationService
+
+rule "Is driver license valid"
+when            
+    $driver: /driver[licenseExpiration.after(currentTime)]
+then
+    $driver.setValidLicense(true);
+end
+
+rule "Is driver license expired"
+when            
+    $driver: /driver[licenseExpiration.before(currentTime)]
+then
+    $driver.setValidLicense(false);
+end
+
+query "validation"
+  $driver : /driver
+end
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn
new file mode 100644
index 000000000..f94043a89
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  ~
+  -->
+<dmn:definitions xmlns:dmn="http://www.omg.org/spec/DMN/20180521/MODEL/"; 
xmlns="https://github.com/kiegroup/drools/kie-dmn/_A4BCA8B8-CF08-433F-93B2-A2598F19ECFF";
 xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/"; 
xmlns:kie="http://www.drools.org/kie/dmn/1.2"; 
xmlns:feel="http://www.omg.org/spec/DMN/20180521/FEEL/"; 
xmlns:dmndi="http://www.omg.org/spec/DMN/20180521/DMNDI/"; 
xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/"; 
id="_1C792953-80DB-4B32-99EB-25FBE32BAF9E" name="Traffic Violation [...]
+  <dmn:extensionElements/>
+  <dmn:itemDefinition id="_63824D3F-9173-446D-A940-6A7F0FA056BB" 
name="tDriver" isCollection="false">
+    <dmn:itemComponent id="_9DAB5DAA-3B44-4F6D-87F2-95125FB2FEE4" name="Name" 
isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_856BA8FA-EF7B-4DF9-A1EE-E28263CE9955" name="Age" 
isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_FDC2CE03-D465-47C2-A311-98944E8CC23F" name="State" 
isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_D6FD34C4-00DC-4C79-B1BF-BBCF6FC9B6D7" name="City" 
isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_7110FE7E-1A38-4C39-B0EB-AEEF06BA37F4" 
name="Points" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+  <dmn:itemDefinition id="_40731093-0642-4588-9183-1660FC55053B" 
name="tViolation" isCollection="false">
+    <dmn:itemComponent id="_39E88D9F-AE53-47AD-B3DE-8AB38D4F50B3" name="Code" 
isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_1648EA0A-2463-4B54-A12A-D743A3E3EE7B" name="Date" 
isCollection="false">
+      <dmn:typeRef>date</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_9F129EAA-4E71-4D99-B6D0-84EEC3AC43CC" name="Type" 
isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+      <dmn:allowedValues kie:constraintType="enumeration" 
id="_626A8F9C-9DD1-44E0-9568-0F6F8F8BA228">
+        <dmn:text>"speed", "parking", "driving under the influence"</dmn:text>
+      </dmn:allowedValues>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_DDD10D6E-BD38-4C79-9E2F-8155E3A4B438" name="Speed 
Limit" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_229F80E4-2892-494C-B70D-683ABF2345F6" name="Actual 
Speed" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+  <dmn:itemDefinition id="_2D4F30EE-21A6-4A78-A524-A5C238D433AE" name="tFine" 
isCollection="false">
+    <dmn:itemComponent id="_B9F70BC7-1995-4F51-B949-1AB65538B405" 
name="Amount" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_F49085D6-8F08-4463-9A1A-EF6B57635DBD" 
name="Points" isCollection="false">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+  <dmn:itemDefinition id="_E08BBD2C-2308-4E20-9C47-58B092771753" 
name="tValidated" isCollection="false">
+    <dmn:itemComponent id="_C7B66E05-6586-4C08-8D85-8EB61C929361" 
name="Suspended" isCollection="false">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_AFEA2C02-9260-45AB-BEB9-FB9F5A6D85B4" 
name="ValidLicense" isCollection="false">
+      <dmn:typeRef>boolean</dmn:typeRef>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+  <dmn:inputData id="_1929CBD5-40E0-442D-B909-49CEDE0101DC" name="Violation">
+    <dmn:extensionElements/>
+    <dmn:variable id="_C16CF9B1-5FAB-48A0-95E0-5FCD661E0406" name="Violation" 
typeRef="tViolation"/>
+  </dmn:inputData>
+  <dmn:decision id="_4055D956-1C47-479C-B3F4-BAEB61F1C929" name="Fine">
+    <dmn:extensionElements/>
+    <dmn:variable id="_8C1EAC83-F251-4D94-8A9E-B03ACF6849CD" name="Fine" 
typeRef="tFine"/>
+    <dmn:informationRequirement id="_800A3BBB-90A3-4D9D-BA5E-A311DED0134F">
+      <dmn:requiredInput href="#_1929CBD5-40E0-442D-B909-49CEDE0101DC"/>
+    </dmn:informationRequirement>
+    <dmn:decisionTable id="_C8F7F579-E06C-4A2F-8485-65FAFAC3FE6A" 
hitPolicy="UNIQUE" preferredOrientation="Rule-as-Row">
+      <dmn:input id="_B53A6F0D-F72C-41EF-96B3-F31269AC0FED">
+        <dmn:inputExpression id="_974C8D01-728F-4CE5-8C69-BE884125B859" 
typeRef="string">
+          <dmn:text>Violation.Type</dmn:text>
+        </dmn:inputExpression>
+      </dmn:input>
+      <dmn:input id="_D5319F80-1C59-4736-AF2D-D29DE6B7E76D">
+        <dmn:inputExpression id="_3FEB4DE3-90C6-438E-99BF-9BB1BF5B078A" 
typeRef="number">
+          <dmn:text>Violation.Actual Speed - Violation.Speed Limit</dmn:text>
+        </dmn:inputExpression>
+      </dmn:input>
+      <dmn:output id="_9012031F-9C01-44E5-8CD2-E6704D594504" name="Amount" 
typeRef="number"/>
+      <dmn:output id="_7CAC8240-E1A5-4FEB-A0D4-B8613F0DE54B" name="Points" 
typeRef="number"/>
+      <dmn:annotation name=""/>
+      <dmn:rule id="_424A80AE-916F-4451-9B6B-71557F7EC65A">
+        <dmn:inputEntry id="_EDA4F336-AA28-4F5F-ADFC-401E6DCC8D35">
+          <dmn:text>"speed"</dmn:text>
+        </dmn:inputEntry>
+        <dmn:inputEntry id="_246AAB08-A945-4599-9220-7C24B6716FDD">
+          <dmn:text>[10..30)</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_E49345EE-51D3-47C7-B658-3607E723FF37">
+          <dmn:text>500</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_1D56F3CB-6BAE-4415-940F-00F37121813D">
+          <dmn:text>3</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+      <dmn:rule id="_B1ECE6A9-6B82-4A85-A7CA-5F96CDB0DCB6">
+        <dmn:inputEntry id="_2390F686-65CF-40FF-BF9A-72DFBAEBACAC">
+          <dmn:text>"speed"</dmn:text>
+        </dmn:inputEntry>
+        <dmn:inputEntry id="_8CEBE4D5-DBEF-46EF-BD95-7B96148B6D8A">
+          <dmn:text>&gt;= 30</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_5FCC56B7-6BAA-4B09-AC61-7EB9D4CD58C3">
+          <dmn:text>1000</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_79FF8FDD-3299-4DFD-AA14-D2022504BDAD">
+          <dmn:text>7</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+      <dmn:rule id="_8FC7068C-A3FD-44D9-AC2B-69C160A12E5D">
+        <dmn:inputEntry id="_02EEE8A9-1AD7-4708-8EC8-9B4177B05167">
+          <dmn:text>"parking"</dmn:text>
+        </dmn:inputEntry>
+        <dmn:inputEntry id="_A5141FF4-8D63-49DB-8979-3B64A3BD9A82">
+          <dmn:text>-</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_EFDA632D-113D-46C9-94B8-78E9F9770CA4">
+          <dmn:text>100</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_05F86973-52CE-4C9D-B785-47B6340D10FD">
+          <dmn:text>1</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+      <dmn:rule id="_A742DF2B-DC91-4166-9773-6EF86A45A625">
+        <dmn:inputEntry id="_F5B5AE87-D9E6-4142-B01D-D79D4BA49EEE">
+          <dmn:text>"driving under the influence"</dmn:text>
+        </dmn:inputEntry>
+        <dmn:inputEntry id="_BD2A43F5-46D8-436A-B8A1-D98747C836B1">
+          <dmn:text>-</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_ECAF3378-46B6-4F40-B95A-E90DB700BF7D">
+          <dmn:text>1000</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_F0016A9C-D1D0-472A-9FB3-ABE77AD15F7D">
+          <dmn:text>5</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+    </dmn:decisionTable>
+  </dmn:decision>
+  <dmn:inputData id="_1F9350D7-146D-46F1-85D8-15B5B68AF22A" name="Driver">
+    <dmn:extensionElements/>
+    <dmn:variable id="_A80F16DF-0DB4-43A2-B041-32900B1A3F3D" name="Driver" 
typeRef="tDriver"/>
+  </dmn:inputData>
+  <dmn:decision id="_4780A053-F62F-4245-9297-31A788132083" name="Validated">
+    <dmn:extensionElements/>
+    <dmn:variable id="_5269D123-38DF-47C2-9F9A-334192A0EC48" name="Validated" 
typeRef="tValidated"/>
+    <dmn:informationRequirement id="_982211B1-5246-49CD-BE85-3211F71253CF">
+      <dmn:requiredInput href="#_1F9350D7-146D-46F1-85D8-15B5B68AF22A"/>
+    </dmn:informationRequirement>
+    <dmn:informationRequirement id="_AEC4AA5F-50C3-4FED-A0C2-261F90290731">
+      <dmn:requiredDecision href="#_4055D956-1C47-479C-B3F4-BAEB61F1C929"/>
+    </dmn:informationRequirement>
+    <dmn:decisionTable id="_DADF0E8B-DD97-4B1A-BECC-B767E54AC382" 
hitPolicy="UNIQUE" preferredOrientation="Rule-as-Row">
+      <dmn:input id="_D09ABFAD-70D9-4DA9-AD41-428D79F6743B">
+        <dmn:inputExpression id="_61619DF0-0F95-405E-B478-5D98B8F7F7B8" 
typeRef="number">
+          <dmn:text>Driver.Points</dmn:text>
+        </dmn:inputExpression>
+      </dmn:input>
+      <dmn:output id="_EC5E832D-6BDB-4688-8ADA-C53E29855BBD" name="Suspended" 
typeRef="string"/>
+      <dmn:output id="_5FCF6CCE-D2FB-48AB-A3CA-460A32E1F53F" 
name="ValidLicense" typeRef="boolean"/>
+      <dmn:annotation name=""/>
+      <dmn:rule id="_ED7227BE-9943-4EE5-B8E1-50291952F6A4">
+        <dmn:inputEntry id="_328516FE-62FA-4774-8546-68ED4D7B3730">
+          <dmn:text>&lt; 20</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_6CA9E17C-D596-4A4F-99DF-2C6410B47431">
+          <dmn:text>"yes"</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_3A293217-F17E-43B1-89DF-B9CCD64C43B5">
+          <dmn:text>false</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+      <dmn:rule id="_B5424E50-62D3-4535-A55E-B55D7C41235F">
+        <dmn:inputEntry id="_CF5CDBFC-A15B-41F6-B96D-DC9CE7BCAC26">
+          <dmn:text>= 20</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_2A45948F-008C-4C24-9BDD-C3020CA2D0F1">
+          <dmn:text>"no"</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_886E5F7E-913C-4F57-B1EA-3595C8060EE0">
+          <dmn:text>true</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+      <dmn:rule id="_1A61415B-FB65-4423-BCEC-365609D4567D">
+        <dmn:inputEntry id="_A075DB28-4E22-4681-814A-62EF273095FA">
+          <dmn:text>&gt; 20</dmn:text>
+        </dmn:inputEntry>
+        <dmn:outputEntry id="_70D6A183-AB5B-4FBD-8FE5-9E05491F9FEB">
+          <dmn:text>"no"</dmn:text>
+        </dmn:outputEntry>
+        <dmn:outputEntry id="_B5DC1F55-0F53-4B85-9A18-BB21B8C9C1DB">
+          <dmn:text>true</dmn:text>
+        </dmn:outputEntry>
+        <dmn:annotationEntry>
+          <dmn:text/>
+        </dmn:annotationEntry>
+      </dmn:rule>
+    </dmn:decisionTable>
+  </dmn:decision>
+  <dmndi:DMNDI>
+    <dmndi:DMNDiagram id="_3FEB9053-0E6B-4880-A6AE-85FAB5072161" name="DRG">
+      <di:extension>
+        <kie:ComponentsWidthsExtension>
+          <kie:ComponentWidths 
dmnElementRef="_C8F7F579-E06C-4A2F-8485-65FAFAC3FE6A">
+            <kie:width>50</kie:width>
+            <kie:width>254</kie:width>
+            <kie:width>329</kie:width>
+            <kie:width>119</kie:width>
+            <kie:width>100</kie:width>
+            <kie:width>186</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_DADF0E8B-DD97-4B1A-BECC-B767E54AC382">
+            <kie:width>50</kie:width>
+            <kie:width>329</kie:width>
+            <kie:width>100</kie:width>
+            <kie:width>119</kie:width>
+            <kie:width>186</kie:width>
+          </kie:ComponentWidths>
+        </kie:ComponentsWidthsExtension>
+      </di:extension>
+      <dmndi:DMNShape id="dmnshape-drg-_1929CBD5-40E0-442D-B909-49CEDE0101DC" 
dmnElementRef="_1929CBD5-40E0-442D-B909-49CEDE0101DC" isCollapsed="false">
+        <dmndi:DMNStyle>
+          <dmndi:FillColor red="255" green="255" blue="255"/>
+          <dmndi:StrokeColor red="0" green="0" blue="0"/>
+          <dmndi:FontColor red="0" green="0" blue="0"/>
+        </dmndi:DMNStyle>
+        <dc:Bounds x="708" y="350" width="100" height="50"/>
+        <dmndi:DMNLabel/>
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="dmnshape-drg-_4055D956-1C47-479C-B3F4-BAEB61F1C929" 
dmnElementRef="_4055D956-1C47-479C-B3F4-BAEB61F1C929" isCollapsed="false">
+        <dmndi:DMNStyle>
+          <dmndi:FillColor red="255" green="255" blue="255"/>
+          <dmndi:StrokeColor red="0" green="0" blue="0"/>
+          <dmndi:FontColor red="0" green="0" blue="0"/>
+        </dmndi:DMNStyle>
+        <dc:Bounds x="709" y="210" width="100" height="50"/>
+        <dmndi:DMNLabel/>
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="dmnshape-drg-_1F9350D7-146D-46F1-85D8-15B5B68AF22A" 
dmnElementRef="_1F9350D7-146D-46F1-85D8-15B5B68AF22A" isCollapsed="false">
+        <dmndi:DMNStyle>
+          <dmndi:FillColor red="255" green="255" blue="255"/>
+          <dmndi:StrokeColor red="0" green="0" blue="0"/>
+          <dmndi:FontColor red="0" green="0" blue="0"/>
+        </dmndi:DMNStyle>
+        <dc:Bounds x="369" y="344" width="100" height="50"/>
+        <dmndi:DMNLabel/>
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="dmnshape-drg-_4780A053-F62F-4245-9297-31A788132083" 
dmnElementRef="_4780A053-F62F-4245-9297-31A788132083" isCollapsed="false">
+        <dmndi:DMNStyle>
+          <dmndi:FillColor red="255" green="255" blue="255"/>
+          <dmndi:StrokeColor red="0" green="0" blue="0"/>
+          <dmndi:FontColor red="0" green="0" blue="0"/>
+        </dmndi:DMNStyle>
+        <dc:Bounds x="540" y="76" width="100" height="50"/>
+        <dmndi:DMNLabel/>
+      </dmndi:DMNShape>
+      <dmndi:DMNEdge id="dmnedge-drg-_800A3BBB-90A3-4D9D-BA5E-A311DED0134F" 
dmnElementRef="_800A3BBB-90A3-4D9D-BA5E-A311DED0134F">
+        <di:waypoint x="758" y="375"/>
+        <di:waypoint x="759" y="235"/>
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge 
id="dmnedge-drg-_982211B1-5246-49CD-BE85-3211F71253CF-AUTO-TARGET" 
dmnElementRef="_982211B1-5246-49CD-BE85-3211F71253CF">
+        <di:waypoint x="419" y="369"/>
+        <di:waypoint x="590" y="126"/>
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="dmnedge-drg-_AEC4AA5F-50C3-4FED-A0C2-261F90290731" 
dmnElementRef="_AEC4AA5F-50C3-4FED-A0C2-261F90290731">
+        <di:waypoint x="759" y="235"/>
+        <di:waypoint x="590" y="126"/>
+      </dmndi:DMNEdge>
+    </dmndi:DMNDiagram>
+  </dmndi:DMNDI>
+</dmn:definitions>
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties
new file mode 100644
index 000000000..c8d01d3a5
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+server.address=0.0.0.0
+kogito.generate.rest.decisions=true
+kogito.generate.rest.processes=true
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn
new file mode 100644
index 000000000..1ddb14979
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"; 
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"; 
xmlns:bpsim="http://www.bpsim.org/schemas/1.0"; 
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"; 
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"; 
xmlns:drools="http://www.jboss.org/drools"; id="_FcMNgJTYEDuJVMby5BR7SQ" 
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd 
http://www. [...]
+  <bpmn2:itemDefinition id="_driverIdItem" structureRef="String"/>
+  <bpmn2:itemDefinition id="_violationItem" 
structureRef="org.kie.kogito.traffic.Violation"/>
+  <bpmn2:itemDefinition id="_driverItem" 
structureRef="org.kie.kogito.traffic.licensevalidation.Driver"/>
+  <bpmn2:itemDefinition id="_fineItem" 
structureRef="org.kie.kogito.traffic.Fine"/>
+  <bpmn2:itemDefinition id="_validatedItem" 
structureRef="org.kie.kogito.traffic.licensevalidated.Validated"/>
+  <bpmn2:itemDefinition 
id="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputXItem" 
structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition 
id="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputXItem" 
structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition 
id="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputXItem" 
structureRef="org.kie.kogito.traffic.Violation"/>
+  <bpmn2:itemDefinition 
id="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidation.Driver"/>
+  <bpmn2:itemDefinition 
id="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidated.Validated"/>
+  <bpmn2:itemDefinition 
id="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputXItem" 
structureRef="org.kie.kogito.traffic.Fine"/>
+  <bpmn2:itemDefinition 
id="__93FFD317-476E-4624-84EF-994617572560_driverIdInputXItem" 
structureRef="String"/>
+  <bpmn2:itemDefinition 
id="__93FFD317-476E-4624-84EF-994617572560_responseOutputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidation.Driver"/>
+  <bpmn2:itemDefinition 
id="__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_namespaceInputXItem" 
structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition 
id="__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_modelInputXItem" 
structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition 
id="__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidation.Driver"/>
+  <bpmn2:itemDefinition 
id="__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidation.Driver"/>
+  <bpmn2:itemDefinition 
id="__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_namespaceInputXItem" 
structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition 
id="__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_modelInputXItem" 
structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition 
id="__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidated.Validated"/>
+  <bpmn2:itemDefinition 
id="__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputXItem" 
structureRef="org.kie.kogito.traffic.licensevalidated.Validated"/>
+  <bpmn2:interface id="_93FFD317-476E-4624-84EF-994617572560_ServiceInterface" 
name="org.kie.kogito.traffic.DriverService" 
implementationRef="org.kie.kogito.traffic.DriverService">
+    <bpmn2:operation 
id="_93FFD317-476E-4624-84EF-994617572560_ServiceOperation" name="getDriver" 
implementationRef="getDriver"/>
+  </bpmn2:interface>
+  <bpmn2:collaboration id="_835BF56B-F802-4ABD-8F1A-F6110E669D6C" 
name="Default Collaboration">
+    <bpmn2:participant id="_12DAED3F-4A2C-40B1-9716-A16BA1A05F2D" name="Pool 
Participant" processRef="traffic"/>
+  </bpmn2:collaboration>
+  <bpmn2:process id="traffic" drools:packageName="com.example" 
drools:version="1.0" drools:adHoc="false" name="traffic" isExecutable="true" 
processType="Public">
+    <bpmn2:property id="driverId" itemSubjectRef="_driverIdItem" 
name="driverId"/>
+    <bpmn2:property id="violation" itemSubjectRef="_violationItem" 
name="violation"/>
+    <bpmn2:property id="driver" itemSubjectRef="_driverItem" name="driver"/>
+    <bpmn2:property id="fine" itemSubjectRef="_fineItem" name="fine"/>
+    <bpmn2:property id="validated" itemSubjectRef="_validatedItem" 
name="validated"/>
+    <bpmn2:sequenceFlow id="_044AA388-325A-45DE-B783-4F48421B788B" 
name="license is expired" sourceRef="_7229480F-BC4D-4406-B27C-8FF46C5C9042" 
targetRef="_E2A8304B-68A0-4CCC-8D47-1FA9352D4853">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[license is expired]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" 
language="http://www.java.com/java";><![CDATA[return 
!driver.isValidLicense();]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_D3E2F4B7-7739-452F-8D55-0C4F169D4A44" 
sourceRef="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5" 
targetRef="_7229480F-BC4D-4406-B27C-8FF46C5C9042">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_A19108FE-08A2-4E80-B7A8-0254C49209A6" 
sourceRef="_93FFD317-476E-4624-84EF-994617572560" 
targetRef="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5"/>
+    <bpmn2:sequenceFlow id="_1287C97D-3568-458A-A907-0123A64A93BE" 
sourceRef="_298312AB-7A3D-478B-BD9B-B260CE847645" 
targetRef="_67972C63-8A06-42C5-A3FF-A843EFB4D07B">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.source">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_249EB7E9-5847-47C9-8B4D-8BEFED257600" name="yes" 
sourceRef="_8A66FABC-E538-4F50-9DAC-BC9069D19942" 
targetRef="_298312AB-7A3D-478B-BD9B-B260CE847645">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[yes]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" 
language="http://www.java.com/java";><![CDATA[return 
validated.isValidLicense();]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_E7EF578E-3735-42D9-BF0C-8CCBF398D41C" 
sourceRef="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C" 
targetRef="_8A66FABC-E538-4F50-9DAC-BC9069D19942">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_521A00FC-6A79-44ED-8485-45DB97A621F2" 
sourceRef="_DDD02AFB-D927-47BC-9C0C-523B602B5CD2" 
targetRef="_418CD980-670D-4FC5-B492-A271A61B1477">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.source">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6" name="no" 
sourceRef="_8A66FABC-E538-4F50-9DAC-BC9069D19942" 
targetRef="_DDD02AFB-D927-47BC-9C0C-523B602B5CD2">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[no]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" 
language="http://www.java.com/java";><![CDATA[return 
!validated.isValidLicense();]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_BB963FF4-CF17-4CA0-A727-9AFC2BE17C29" 
sourceRef="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941" 
targetRef="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C"/>
+    <bpmn2:sequenceFlow id="_D2252EFF-5EC4-4D61-B797-653F71652627" 
sourceRef="_7229480F-BC4D-4406-B27C-8FF46C5C9042" 
targetRef="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" 
language="http://www.java.com/java";><![CDATA[return 
driver.isValidLicense();]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="_2C2FFD79-4241-4F9E-A486-2482F817595E" 
sourceRef="_905F0834-19CC-423B-B90E-B38C6D80329F" 
targetRef="_93FFD317-476E-4624-84EF-994617572560">
+      <bpmn2:extensionElements>
+        <drools:metaData name="isAutoConnection.target">
+          <drools:metaValue><![CDATA[true]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+    </bpmn2:sequenceFlow>
+    <bpmn2:businessRuleTask id="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C" 
drools:ruleFlowGroup="unit:org.kie.kogito.traffic.licensevalidated.LicenseValidatedService"
 name="LicenseValidated&#10;DRL" 
implementation="http://www.jboss.org/drools/rule";>
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[LicenseValidated
+DRL]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_BB963FF4-CF17-4CA0-A727-9AFC2BE17C29</bpmn2:incoming>
+      <bpmn2:outgoing>_E7EF578E-3735-42D9-BF0C-8CCBF398D41C</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput 
id="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidated.Validated" 
itemSubjectRef="__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputXItem" 
name="validated"/>
+        <bpmn2:dataOutput 
id="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidated.Validated" 
itemSubjectRef="__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputXItem" 
name="validated"/>
+        <bpmn2:inputSet>
+          
<bpmn2:dataInputRefs>_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          
<bpmn2:dataOutputRefs>_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>validated</bpmn2:sourceRef>
+        
<bpmn2:targetRef>_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        
<bpmn2:sourceRef>_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>validated</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+    </bpmn2:businessRuleTask>
+    <bpmn2:endEvent id="_E2A8304B-68A0-4CCC-8D47-1FA9352D4853">
+      <bpmn2:incoming>_044AA388-325A-45DE-B783-4F48421B788B</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:exclusiveGateway id="_7229480F-BC4D-4406-B27C-8FF46C5C9042" 
name="Exclusive Gateway 1" gatewayDirection="Diverging">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Exclusive Gateway 1]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_D3E2F4B7-7739-452F-8D55-0C4F169D4A44</bpmn2:incoming>
+      <bpmn2:outgoing>_D2252EFF-5EC4-4D61-B797-653F71652627</bpmn2:outgoing>
+      <bpmn2:outgoing>_044AA388-325A-45DE-B783-4F48421B788B</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:businessRuleTask id="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5" 
drools:ruleFlowGroup="unit:org.kie.kogito.traffic.licensevalidation.LicenseValidationService"
 name="LicenseValidation&#10;DRL" 
implementation="http://www.jboss.org/drools/rule";>
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[LicenseValidation
+DRL]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_A19108FE-08A2-4E80-B7A8-0254C49209A6</bpmn2:incoming>
+      <bpmn2:outgoing>_D3E2F4B7-7739-452F-8D55-0C4F169D4A44</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput 
id="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidation.Driver" 
itemSubjectRef="__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputXItem" 
name="driver"/>
+        <bpmn2:dataOutput 
id="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidation.Driver" 
itemSubjectRef="__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputXItem" 
name="driver"/>
+        <bpmn2:inputSet>
+          
<bpmn2:dataInputRefs>_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          
<bpmn2:dataOutputRefs>_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>driver</bpmn2:sourceRef>
+        
<bpmn2:targetRef>_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        
<bpmn2:sourceRef>_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>driver</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+    </bpmn2:businessRuleTask>
+    <bpmn2:serviceTask id="_93FFD317-476E-4624-84EF-994617572560" 
drools:serviceimplementation="Java" 
drools:serviceinterface="org.kie.kogito.traffic.DriverService" 
drools:serviceoperation="getDriver" name="Get Driver Details" 
implementation="Java" 
operationRef="_93FFD317-476E-4624-84EF-994617572560_ServiceOperation">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Get Driver Details]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_2C2FFD79-4241-4F9E-A486-2482F817595E</bpmn2:incoming>
+      <bpmn2:outgoing>_A19108FE-08A2-4E80-B7A8-0254C49209A6</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput 
id="_93FFD317-476E-4624-84EF-994617572560_driverIdInputX" drools:dtype="String" 
itemSubjectRef="__93FFD317-476E-4624-84EF-994617572560_driverIdInputXItem" 
name="driverId"/>
+        <bpmn2:dataOutput 
id="_93FFD317-476E-4624-84EF-994617572560_responseOutputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidation.Driver" 
itemSubjectRef="__93FFD317-476E-4624-84EF-994617572560_responseOutputXItem" 
name="response"/>
+        <bpmn2:inputSet>
+          
<bpmn2:dataInputRefs>_93FFD317-476E-4624-84EF-994617572560_driverIdInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          
<bpmn2:dataOutputRefs>_93FFD317-476E-4624-84EF-994617572560_responseOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>driverId</bpmn2:sourceRef>
+        
<bpmn2:targetRef>_93FFD317-476E-4624-84EF-994617572560_driverIdInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        
<bpmn2:sourceRef>_93FFD317-476E-4624-84EF-994617572560_responseOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>driver</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+    </bpmn2:serviceTask>
+    <bpmn2:endEvent id="_67972C63-8A06-42C5-A3FF-A843EFB4D07B">
+      <bpmn2:incoming>_1287C97D-3568-458A-A907-0123A64A93BE</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="_298312AB-7A3D-478B-BD9B-B260CE847645" 
name="Suspended&#10;Task" scriptFormat="http://www.java.com/java";>
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Suspended
+Task]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_249EB7E9-5847-47C9-8B4D-8BEFED257600</bpmn2:incoming>
+      <bpmn2:outgoing>_1287C97D-3568-458A-A907-0123A64A93BE</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("Driver is suspended!");</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:exclusiveGateway id="_8A66FABC-E538-4F50-9DAC-BC9069D19942" 
name="Exclusive Gateway 2" gatewayDirection="Diverging">
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Exclusive Gateway 2]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_E7EF578E-3735-42D9-BF0C-8CCBF398D41C</bpmn2:incoming>
+      <bpmn2:outgoing>_19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6</bpmn2:outgoing>
+      <bpmn2:outgoing>_249EB7E9-5847-47C9-8B4D-8BEFED257600</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:endEvent id="_418CD980-670D-4FC5-B492-A271A61B1477">
+      <bpmn2:incoming>_521A00FC-6A79-44ED-8485-45DB97A621F2</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="_DDD02AFB-D927-47BC-9C0C-523B602B5CD2" name="Not 
Suspended&#10; Task" scriptFormat="http://www.java.com/java";>
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[Not Suspended
+ Task]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6</bpmn2:incoming>
+      <bpmn2:outgoing>_521A00FC-6A79-44ED-8485-45DB97A621F2</bpmn2:outgoing>
+      <bpmn2:script>System.out.println("Driver is NOT 
suspended!");</bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:businessRuleTask id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941" 
name="TrafficViolation&#10;DMN" 
implementation="http://www.jboss.org/drools/dmn";>
+      <bpmn2:extensionElements>
+        <drools:metaData name="elementname">
+          <drools:metaValue><![CDATA[TrafficViolation
+DMN]]></drools:metaValue>
+        </drools:metaData>
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>_D2252EFF-5EC4-4D61-B797-653F71652627</bpmn2:incoming>
+      <bpmn2:outgoing>_BB963FF4-CF17-4CA0-A727-9AFC2BE17C29</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput 
id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX" 
drools:dtype="java.lang.String" 
itemSubjectRef="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputXItem" 
name="namespace"/>
+        <bpmn2:dataInput 
id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX" 
drools:dtype="java.lang.String" 
itemSubjectRef="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputXItem" 
name="model"/>
+        <bpmn2:dataInput 
id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX" 
drools:dtype="org.kie.kogito.traffic.Violation" 
itemSubjectRef="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputXItem" 
name="Violation"/>
+        <bpmn2:dataInput 
id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidation.Driver" 
itemSubjectRef="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputXItem" 
name="Driver"/>
+        <bpmn2:dataOutput 
id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX" 
drools:dtype="org.kie.kogito.traffic.licensevalidated.Validated" 
itemSubjectRef="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputXItem" 
name="Validated"/>
+        <bpmn2:dataOutput 
id="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX" 
drools:dtype="org.kie.kogito.traffic.Fine" 
itemSubjectRef="__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputXItem" 
name="Fine"/>
+        <bpmn2:inputSet>
+          
<bpmn2:dataInputRefs>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX</bpmn2:dataInputRefs>
+          
<bpmn2:dataInputRefs>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX</bpmn2:dataInputRefs>
+          
<bpmn2:dataInputRefs>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX</bpmn2:dataInputRefs>
+          
<bpmn2:dataInputRefs>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          
<bpmn2:dataOutputRefs>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX</bpmn2:dataOutputRefs>
+          
<bpmn2:dataOutputRefs>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        
<bpmn2:targetRef>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from 
xsi:type="bpmn2:tFormalExpression"><![CDATA[https://github.com/kiegroup/drools/kie-dmn/_A4BCA8B8-CF08-433F-93B2-A2598F19ECFF]]></bpmn2:from>
+          <bpmn2:to 
xsi:type="bpmn2:tFormalExpression"><![CDATA[_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        
<bpmn2:targetRef>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX</bpmn2:targetRef>
+        <bpmn2:assignment>
+          <bpmn2:from xsi:type="bpmn2:tFormalExpression"><![CDATA[Traffic 
Violation]]></bpmn2:from>
+          <bpmn2:to 
xsi:type="bpmn2:tFormalExpression"><![CDATA[_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX]]></bpmn2:to>
+        </bpmn2:assignment>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>violation</bpmn2:sourceRef>
+        
<bpmn2:targetRef>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>driver</bpmn2:sourceRef>
+        
<bpmn2:targetRef>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        
<bpmn2:sourceRef>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>validated</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+      <bpmn2:dataOutputAssociation>
+        
<bpmn2:sourceRef>_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>fine</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
+    </bpmn2:businessRuleTask>
+    <bpmn2:startEvent id="_905F0834-19CC-423B-B90E-B38C6D80329F">
+      <bpmn2:outgoing>_2C2FFD79-4241-4F9E-A486-2482F817595E</bpmn2:outgoing>
+    </bpmn2:startEvent>
+  </bpmn2:process>
+  <bpmndi:BPMNDiagram>
+    <bpmndi:BPMNPlane bpmnElement="traffic">
+      <bpmndi:BPMNShape id="shape__905F0834-19CC-423B-B90E-B38C6D80329F" 
bpmnElement="_905F0834-19CC-423B-B90E-B38C6D80329F">
+        <dc:Bounds height="56" width="56" x="79" y="227"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941" 
bpmnElement="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941">
+        <dc:Bounds height="98" width="216" x="782" y="205"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__DDD02AFB-D927-47BC-9C0C-523B602B5CD2" 
bpmnElement="_DDD02AFB-D927-47BC-9C0C-523B602B5CD2">
+        <dc:Bounds height="100" width="181" x="1429.5" y="354"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__418CD980-670D-4FC5-B492-A271A61B1477" 
bpmnElement="_418CD980-670D-4FC5-B492-A271A61B1477">
+        <dc:Bounds height="56" width="56" x="1719" y="377"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__8A66FABC-E538-4F50-9DAC-BC9069D19942" 
bpmnElement="_8A66FABC-E538-4F50-9DAC-BC9069D19942">
+        <dc:Bounds height="56" width="56" x="1351" y="228"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__298312AB-7A3D-478B-BD9B-B260CE847645" 
bpmnElement="_298312AB-7A3D-478B-BD9B-B260CE847645">
+        <dc:Bounds height="102" width="178" x="1445" y="77"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__67972C63-8A06-42C5-A3FF-A843EFB4D07B" 
bpmnElement="_67972C63-8A06-42C5-A3FF-A843EFB4D07B">
+        <dc:Bounds height="56" width="56" x="1719" y="100"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__93FFD317-476E-4624-84EF-994617572560" 
bpmnElement="_93FFD317-476E-4624-84EF-994617572560">
+        <dc:Bounds height="102" width="154" x="195" y="205"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5" 
bpmnElement="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5">
+        <dc:Bounds height="101.09090909090912" width="177.63636363636363" 
x="409" y="205.45454545454544"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__7229480F-BC4D-4406-B27C-8FF46C5C9042" 
bpmnElement="_7229480F-BC4D-4406-B27C-8FF46C5C9042">
+        <dc:Bounds height="56" width="56" x="637" y="227"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__E2A8304B-68A0-4CCC-8D47-1FA9352D4853" 
bpmnElement="_E2A8304B-68A0-4CCC-8D47-1FA9352D4853">
+        <dc:Bounds height="56" width="56" x="637" y="416"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="shape__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C" 
bpmnElement="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C">
+        <dc:Bounds height="103" width="227" x="1032" y="204.11691542288554"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge 
id="edge_shape__905F0834-19CC-423B-B90E-B38C6D80329F_to_shape__93FFD317-476E-4624-84EF-994617572560"
 bpmnElement="_2C2FFD79-4241-4F9E-A486-2482F817595E">
+        <di:waypoint x="107" y="255"/>
+        <di:waypoint x="272" y="205"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__7229480F-BC4D-4406-B27C-8FF46C5C9042_to_shape__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941"
 bpmnElement="_D2252EFF-5EC4-4D61-B797-653F71652627">
+        <di:waypoint x="665" y="255"/>
+        <di:waypoint x="782" y="254"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_to_shape__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C"
 bpmnElement="_BB963FF4-CF17-4CA0-A727-9AFC2BE17C29">
+        <di:waypoint x="890" y="254"/>
+        <di:waypoint x="1032" y="255.61691542288554"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__8A66FABC-E538-4F50-9DAC-BC9069D19942_to_shape__DDD02AFB-D927-47BC-9C0C-523B602B5CD2"
 bpmnElement="_19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6">
+        <di:waypoint x="1379" y="256"/>
+        <di:waypoint x="1378.951928980325" y="406.2250892494252"/>
+        <di:waypoint x="1520" y="404"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__DDD02AFB-D927-47BC-9C0C-523B602B5CD2_to_shape__418CD980-670D-4FC5-B492-A271A61B1477"
 bpmnElement="_521A00FC-6A79-44ED-8485-45DB97A621F2">
+        <di:waypoint x="1520" y="354"/>
+        <di:waypoint x="1747" y="433"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_to_shape__8A66FABC-E538-4F50-9DAC-BC9069D19942"
 bpmnElement="_E7EF578E-3735-42D9-BF0C-8CCBF398D41C">
+        <di:waypoint x="1259" y="255.61691542288554"/>
+        <di:waypoint x="1351" y="256"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__8A66FABC-E538-4F50-9DAC-BC9069D19942_to_shape__298312AB-7A3D-478B-BD9B-B260CE847645"
 bpmnElement="_249EB7E9-5847-47C9-8B4D-8BEFED257600">
+        <di:waypoint x="1379" y="256"/>
+        <di:waypoint x="1378.9581298828125" y="128"/>
+        <di:waypoint x="1534" y="179"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__298312AB-7A3D-478B-BD9B-B260CE847645_to_shape__67972C63-8A06-42C5-A3FF-A843EFB4D07B"
 bpmnElement="_1287C97D-3568-458A-A907-0123A64A93BE">
+        <di:waypoint x="1623" y="128"/>
+        <di:waypoint x="1719" y="128"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__93FFD317-476E-4624-84EF-994617572560_to_shape__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5"
 bpmnElement="_A19108FE-08A2-4E80-B7A8-0254C49209A6">
+        <di:waypoint x="272" y="256"/>
+        <di:waypoint x="409" y="256"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_to_shape__7229480F-BC4D-4406-B27C-8FF46C5C9042"
 bpmnElement="_D3E2F4B7-7739-452F-8D55-0C4F169D4A44">
+        <di:waypoint x="497.8181818181818" y="256"/>
+        <di:waypoint x="637" y="255"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge 
id="edge_shape__7229480F-BC4D-4406-B27C-8FF46C5C9042_to_shape__E2A8304B-68A0-4CCC-8D47-1FA9352D4853"
 bpmnElement="_044AA388-325A-45DE-B783-4F48421B788B">
+        <di:waypoint x="665" y="255"/>
+        <di:waypoint x="665" y="444"/>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+  <bpmn2:relationship type="BPSimData">
+    <bpmn2:extensionElements>
+      <bpsim:BPSimData>
+        <bpsim:Scenario id="default" name="Simulationscenario">
+          <bpsim:ScenarioParameters/>
+          <bpsim:ElementParameters 
elementRef="_905F0834-19CC-423B-B90E-B38C6D80329F">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters 
elementRef="_B076DF7E-91A5-47C7-B3FC-2C2EC06E5941">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters 
elementRef="_DDD02AFB-D927-47BC-9C0C-523B602B5CD2">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters 
elementRef="_298312AB-7A3D-478B-BD9B-B260CE847645">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters 
elementRef="_93FFD317-476E-4624-84EF-994617572560">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters 
elementRef="_95EFED1F-73F8-47E7-9604-A81EFE5DE8F5">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters 
elementRef="_3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Availability>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:Quantity>
+            </bpsim:ResourceParameters>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
+              </bpsim:UnitCost>
+            </bpsim:CostParameters>
+          </bpsim:ElementParameters>
+        </bpsim:Scenario>
+      </bpsim:BPSimData>
+    </bpmn2:extensionElements>
+    <bpmn2:source>_FcMNgJTYEDuJVMby5BR7SQ</bpmn2:source>
+    <bpmn2:target>_FcMNgJTYEDuJVMby5BR7SQ</bpmn2:target>
+  </bpmn2:relationship>
+</bpmn2:definitions>
\ No newline at end of file
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java
new file mode 100644
index 000000000..3deb40925
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.web.server.LocalServerPort;
+
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.ValidatableResponse;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.nullValue;
+
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, 
classes = KogitoApplication.class)
+public class TrafficProcessIT {
+
+    public static final BigDecimal SPEED_LIMIT = new BigDecimal(100);
+
+    static {
+        RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
+    }
+
+    @LocalServerPort
+    int randomServerPort;
+
+    @BeforeEach
+    void setup() {
+        RestAssured.port = randomServerPort;
+    }
+
+    @Test
+    void testTrafficViolationEmbeddedDecisionOnSpringBoot() {
+        testTrafficProcess("traffic", "12-345", 120d, "no", true, true);
+        testTrafficProcess("traffic", "12-15", 140d, "yes", true, false);
+        testTrafficProcess("traffic", "0-150", 140d, null, false, false);
+    }
+
+    private void testTrafficProcess(String processId, String driverId, Double 
speed, String suspended, boolean validLicense, boolean validatedLicense) {
+        Map<String, Object> request = new HashMap<>();
+        request.put("driverId", driverId);
+        request.put("violation", new Violation("speed", SPEED_LIMIT, new 
BigDecimal(speed)));
+        ValidatableResponse body = given()
+                .body(request)
+                .contentType(ContentType.JSON)
+                .when()
+                .post("/" + processId)
+                .then()
+                .statusCode(201)
+                .body("driver.ValidLicense", is(validLicense));
+        if (suspended != null) {
+            body.body("validated.ValidLicense", is(validatedLicense))
+                    .body("validated.Suspended", is(suspended));
+        } else {
+            body.body("validated", nullValue());
+        }
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java
new file mode 100644
index 000000000..65d2c79fd
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.kie.kogito.traffic.licensevalidated.Validated;
+import org.kie.kogito.traffic.licensevalidation.Driver;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.web.server.LocalServerPort;
+
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.Matchers.is;
+
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, 
classes = KogitoApplication.class)
+class TrafficValidationIT {
+
+    static {
+        RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
+    }
+
+    @LocalServerPort
+    int randomServerPort;
+
+    @BeforeEach
+    void setup() {
+        RestAssured.port = randomServerPort;
+    }
+
+    @Test
+    void testTrafficValidationOnSpringBoot() {
+        Map<String, Object> request = new HashMap<>();
+        request.put("driver", new Driver("12-345", "Arthur", "SP", "Campinas", 
2, 30, new Date()));
+        request.put("currentTime", new Date());
+        given()
+                .body(request)
+                .contentType(ContentType.JSON)
+                .when()
+                .post("/validation")
+                .then()
+                .statusCode(200)
+                .body("ValidLicense[0]", is(false));
+    }
+
+    @Test
+    void testTrafficValidateOnSpringBoot() {
+        Map<String, Object> request = new HashMap<>();
+        request.put("validated", new Validated("no"));
+        request.put("currentTime", new Date());
+        given()
+                .body(request)
+                .contentType(ContentType.JSON)
+                .when()
+                .post("/validate")
+                .then()
+                .statusCode(200)
+                .body("ValidLicense[0]", is(true));
+    }
+}
diff --git 
a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java
 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java
new file mode 100644
index 000000000..bab22036c
--- /dev/null
+++ 
b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.kie.kogito.traffic;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.web.server.LocalServerPort;
+
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.Matchers.is;
+
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, 
classes = KogitoApplication.class)
+class TrafficViolationIT {
+
+    static {
+        RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
+    }
+
+    @LocalServerPort
+    int randomServerPort;
+
+    @BeforeEach
+    void setup() {
+        RestAssured.port = randomServerPort;
+    }
+
+    @Test
+    void testTrafficViolationEmbeddedDecisionOnSpringBoot() {
+        given()
+                .body("{\n" +
+                        "    \"Driver\": {\n" +
+                        "        \"Points\": 2\n" +
+                        "    },\n" +
+                        "    \"Violation\": {\n" +
+                        "        \"Type\": \"speed\",\n" +
+                        "        \"Actual Speed\": 120,\n" +
+                        "        \"Speed Limit\": 100\n" +
+                        "    }\n" +
+                        "}")
+                .contentType(ContentType.JSON)
+                .when()
+                .post("/Traffic Violation")
+                .then()
+                .statusCode(200)
+                .body("Validated.Suspended", is("yes"));
+    }
+}
diff --git a/gradle-examples/pom.xml b/gradle-examples/pom.xml
new file mode 100644
index 000000000..eeae23404
--- /dev/null
+++ b/gradle-examples/pom.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.kie.kogito.examples</groupId>
+    <artifactId>kogito-examples</artifactId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+  <artifactId>gradle-examples</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Gradle Examples</name>
+  <description>Kogito Examples built with Gradle</description>
+  <modules>
+    <module>kogito-springboot-gradle-examples</module>
+    <module>kogito-quarkus-gradle-examples</module>
+  </modules>
+
+</project>
\ No newline at end of file
diff --git 
a/kogito-springboot-examples/process-decisions-rules-springboot/pom.xml 
b/kogito-springboot-examples/process-decisions-rules-springboot/pom.xml
index 5bfd126f4..67dcc0a2f 100644
--- a/kogito-springboot-examples/process-decisions-rules-springboot/pom.xml
+++ b/kogito-springboot-examples/process-decisions-rules-springboot/pom.xml
@@ -98,7 +98,6 @@
         <version>${version.org.kie.kogito}</version>
         <executions>
           <execution>
-            <phase>compile</phase>
             <goals>
               <goal>generateModel</goal>
             </goals>
diff --git a/pom.xml b/pom.xml
index fba27c9a9..e253acb93 100755
--- a/pom.xml
+++ b/pom.xml
@@ -141,6 +141,7 @@
         <module>kogito-quarkus-examples</module>
         <module>kogito-springboot-examples</module>
         <module>serverless-workflow-examples</module>
+        <module>gradle-examples</module>
       </modules>
     </profile>
   </profiles>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to