Copilot commented on code in PR #2203:
URL:
https://github.com/apache/incubator-kie-kogito-examples/pull/2203#discussion_r3091836252
##
kogito-springboot-examples/process-decisions-rules-springboot-yaml/README.md:
##
@@ -0,0 +1,316 @@
+# Process with Decisions Integration through Business Rule Task
+
+## Description
+
+This is an example project that shows the usage of decisions within processes.
Decisions can be expressed in different domains or assets, such as DMN and DRL.
+The focus here is to show how to integrate decisions in an embedded way using
Business Rule Task where they must be deployed together with the process, in
the same application. All assets(bpmn, dmn, drl) must be under the
[resources](src/main/resources/).
+
+This example covers the following items:
+
+* DMN to define a decision service
+* DRL to define rules decision service
+* How to integrate the process with decisions using Business Rule Task
+
+### The Traffic Process example:
+
+It is based on the traffic violation evaluation process, where it is required
to fetch Driver information, and based on this, it is first performed the
license validation to check if the driver has a valid license (using a RuleUnit
in a DRL) after the license validation it is then executed the violation
evaluation defined as a DMN decision and following, it is checked in the
process if the output contains information whether the driver was suspended or
not, completing the process.
+
+ Process using Business Rule Task
+
+
+
+This is a declarative approach, it does not require to have any extra
implementation, the interaction with decisions is executed out-of-the-box by
the engine. The information needed to execute the decision evaluation should be
set in the Data Assignments in the Business Rule Task.
+
+The BPMN file where this process is declared is
[traffic-rules-dmn.bpmn](src/main/resources/traffic-rules-dmn.bpmn).
+
+---
+
+* Process Properties
+
+
+These are the properties defined for the process, the most important one in
this section to pay attention is the ID because it is used in the REST endpoint
generation referring to the path to interact with this process.
+
+* Proces Variables
+
+The variables used in the process itself, but the focus in this example are
the classes that are used to define the POJOs to interact the process with
decisions, that are the
[Violation](src/main/java/org/kie/kogito/traffic/Violation.java),
[Driver](src/main/java/org/kie/kogito/traffic/Driver.java),
[Fine](src/main/java/org/kie/kogito/traffic/Fine.java).
+
+
+
+**Mapping data from Process to/from DMN**
+
+It is important to mention DMN for instance can define the Data Type in its
structure, but we can align all attributes names in a Java class that is used
as process variables, in case the attribute names contain spaces or are not
following java conventions we can use
[Jackson](https://github.com/FasterXML/jackson) annotations to make the process
variable POJOs aligned with DMN data types, for instance in the
[Violation](src/main/java/org/kie/kogito/traffic/Violation.java) class, where
it is mapped the `speedLimit` attribute as `Speed Limit` using `@JsonProperty`
annotation, in this case, this attribute from the process variable with
Violation can be seamlessly integrated Violation Data Type defined in DMN.
+
+**Violation Data Type in DMN**
+
+
+
+
+* Get Driver Task
+
+Fetch for driver information, in this implementation it is just mocking a
result, that simply fill with an expired license date in case the `driverId` is
an odd number and with a valid date in case of an even number. In a real use
case, it could be performing an external call to a service or a database to get
this information.
+
+The service task implementation is done in the
[DriverService](src/main/java/org/kie/kogito/traffic/DriverService.java) class.
+
+In the data assignment the input is the `driverId` and output is the `driver`
variable, filled with all driver information.
+
+* License Validation Task (DRL)
+
+Represents the task to do the call to the DRL service.
+
+
+
+The properties to be set are mainly the `Rule Language`that should be set as
`DRL` and the `Rule Flow Group` with `unit:` + `[the FQCN of the Rule Unit Data
class]`, in this case
[org.kie.kogito.traffic.LicenseValidationService](src/main/java/org/kie/kogito/traffic/LicenseValidationService.java).
+
+
+
+The input and output mapping for this task is just the driver variable that is
filled with license validation information.
+
+
+
+
+* Traffic Violation Task (DMN)
+Similar to the License Validation Task, but it represents the task to do the
call to the DMN service.
+
+
+
+The properties to be set are mainly the `Rule Language`that should be set as
`DMN` and the `Namespace` and `DMN Model Name` must b