Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d1b804a
Bump nanoid (#2088)
dependabot[bot] Feb 18, 2026
401145a
Bump braces (#2089)
dependabot[bot] Feb 18, 2026
a3dbc05
Bump json5 (#2087)
dependabot[bot] Feb 18, 2026
0043698
Bump socket.io-parser (#2090)
dependabot[bot] Feb 18, 2026
22dc53e
Bump js-yaml (#2140)
dependabot[bot] Feb 18, 2026
e775610
Bump actions/checkout from 3 to 6 (#2141)
dependabot[bot] Feb 18, 2026
1fc32e1
Bump zulip/github-actions-zulip (#2143)
dependabot[bot] Feb 18, 2026
84c3137
Bump form-data (#2144)
dependabot[bot] Feb 18, 2026
3ddc562
Bump js-yaml (#2145)
dependabot[bot] Feb 18, 2026
a53ad6f
Bump js-yaml (#2151)
dependabot[bot] Feb 18, 2026
67fb4d6
Bump form-data (#2150)
dependabot[bot] Feb 18, 2026
4ae748e
Bump axios (#2166)
dependabot[bot] Feb 18, 2026
bb5164a
NO_ISSUE: Fix outdated pull request template (#2176)
domhanak Feb 18, 2026
bdb4721
NO_ISSUE: Update .asf.yaml for examples (#2175)
domhanak Feb 18, 2026
22bef10
Delegate in kogito-bom for testcontainers version (#2173)
gmunozfe Feb 18, 2026
18ab764
Bump qs (#2168)
dependabot[bot] Feb 18, 2026
9f99e29
Fix OpenTelemetry tests by setting otel.metrics.exporter to none (#2171)
gmunozfe Feb 18, 2026
7d0239e
[incubator-kie-issues#1839] Implement GRADLE examples - Springboot (…
gitgabrio Feb 19, 2026
c233c45
[incubator-kie-issues-2204] Quarkus upgrade 3.27.2 and Spring Boot to…
jeejz Feb 19, 2026
acdcec9
Bump ajv and faas-js-runtime (#2178)
dependabot[bot] Feb 20, 2026
ca10e57
[incubator-kie-issues#2257] Implement GRADLE examples - Quarkus (#2177)
gitgabrio Feb 20, 2026
a08be60
[incubator-kie-issues#2259] Dumping dependency trees to different fil…
gitgabrio Feb 23, 2026
2e83928
Fix OpenTelemetry tests in CI by setting metrics exporter to none (#2…
gmunozfe Feb 23, 2026
26d1bfe
[incubator-kie-issues#2262] Create dmn +scesim + gradle example (#2183)
gitgabrio Mar 3, 2026
ff4feb8
Merge upstream/main and preserve excluded paths
kie-ci Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
# 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.

github:
description: Apache KIE Examples repository with showcases on how to use Kogito, Drools, SonataFlow
homepage: https://kie.apache.org
labels:
- apache
- java
- example
- getting-started
- workflow
- workflow-engine
- spring-boot
- quarkus
- kogito
- knative
- cloud-native
- cloudevents
- kubernetes
- hacktoberfest
- drools
- bpmn
- dmn
- pmml
- optaplanner
features:
issues: true
7 changes: 7 additions & 0 deletions .ci/jenkins/dsl/jobs.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,13 @@ Map getMultijobPRConfig(JenkinsFolder jobFolder) {
env : [
KOGITO_EXAMPLES_SUBFOLDER_POM: 'serverless-workflow-examples/',
]
],
[
id: 'kogito-gradle-examples',
primary: true,
env : [
KOGITO_EXAMPLES_SUBFOLDER_POM: 'gradle-examples/',
]
]
]
]
Expand Down
87 changes: 3 additions & 84 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,91 +2,10 @@ Many thanks for submitting your Pull Request :heart:!

Please make sure that your PR meets the following requirements:

**WARNING! Please make sure you are opening your PR against `main` branch!**

- [ ] You have read the [contributors guide](https://github.com/apache/incubator-kie-kogito-runtimes#contributing-to-kogito)
- [ ] Pull Request title is properly formatted: `KOGITO-XYZ Subject`
- [ ] Pull Request title contains the target branch if not targeting main: `[0.9.x] KOGITO-XYZ Subject`
- [ ] Pull Request contains link to the JIRA issue
- [ ] Pull Request title is properly formatted: `ISSUE-XYZ: <PR Title>`
- [ ] Pull Request title contains the target branch if not targeting main: `[10.0.x] ISSUE-XYZ <PR Title>`
- [ ] Pull Request contains link to the GitHub issue
- [ ] Pull Request contains link to any dependent or related Pull Request
- [ ] Pull Request contains description of the issue
- [ ] Pull Request does not include fixes for issues other than the main ticket

<details>
<summary>
How to replicate CI configuration locally?
</summary>

Build Chain tool does "simple" maven build(s), the builds are just Maven commands, but because the repositories relates and depends on each other and any change in API or class method could affect several of those repositories there is a need to use [build-chain tool](https://github.com/kiegroup/github-action-build-chain) to handle cross repository builds and be sure that we always use latest version of the code for each repository.

[build-chain tool](https://github.com/kiegroup/github-action-build-chain) is a build tool which can be used on command line locally or in Github Actions workflow(s), in case you need to change multiple repositories and send multiple dependent pull requests related with a change you can easily reproduce the same build by executing it on Github hosted environment or locally in your development environment. See [local execution](https://github.com/kiegroup/github-action-build-chain#local-execution) details to get more information about it.
</details>

<details>
<summary>
How to retest this PR or trigger a specific build:
</summary>

- for <b>pull request checks</b>
Please add comment: <b>Jenkins retest this</b>

- for a <b>specific pull request check</b>
Please add comment: <b>Jenkins (re)run [kogito-examples] tests</b>

- for <b>quarkus branch checks</b>
Run checks against Quarkus current used branch
Please add comment: <b>Jenkins run quarkus-branch</b>

- for a <b>quarkus branch specific check</b>
Run checks against Quarkus current used branch
Please add comment: <b>Jenkins (re)run [kogito-examples] quarkus-branch</b>

- for <b>quarkus main checks</b>
Run checks against Quarkus main branch
Please add comment: <b>Jenkins run quarkus-main</b>

- for a <b>specific quarkus main check</b>
Run checks against Quarkus main branch
Please add comment: <b>Jenkins (re)run [kogito-examples] quarkus-main</b>

- for <b>quarkus lts checks</b>
Run checks against Quarkus lts branch
Please add comment: <b>Jenkins run quarkus-lts</b>

- for a <b>specific quarkus lts check</b>
Run checks against Quarkus lts branch
Please add comment: <b>Jenkins (re)run [kogito-examples] quarkus-lts</b>

- for <b>native checks</b>
Run native checks
Please add comment: <b>Jenkins run native</b>

- for a <b>specific native check</b>
Run native checks
Please add comment: <b>Jenkins (re)run [kogito-examples] native</b>

- for <b>native lts checks</b>
Run native checks against quarkus lts branch
Please add comment: <b>Jenkins run native-lts</b>

- for a <b>specific native lts check</b>
Run native checks against quarkus lts branch
Please add comment: <b>Jenkins (re)run [kogito-examples] native-lts</b>

</details>

<details>
<summary>
How to backport a pull request to a different branch?
</summary>

In order to automatically create a **backporting pull request** please add one or more labels having the following format `backport-<branch-name>`, where `<branch-name>` is the name of the branch where the pull request must be backported to (e.g., `backport-7.67.x` to backport the original PR to the `7.67.x` branch).

> **NOTE**: **backporting** is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another.

Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.

If something goes wrong, the author will be notified and at this point a manual backporting is needed.

> **NOTE**: this automated backporting is triggered whenever a pull request on `main` branch is labeled or closed, but both conditions must be satisfied to get the new PR created.
</details>
4 changes: 2 additions & 2 deletions .github/workflows/issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ jobs:
message:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Send a stream message
uses: zulip/github-actions-zulip/send-message@e71e15b429b0e79cc7b63e4e3dad0146443fab6f
uses: zulip/github-actions-zulip/send-message@d49c9ccdadd884e5b0caf7d4d3955d2bfe510273
env:
CONTENT: "I have detected a new issue on ${{ github.event.repo.name }}.\nLink: ${{ github.event.issue.html_url }}\nThis is an automatically relayed message. Don't reply to me directly.\n-- Issue description:\n${{ github.event.issue.body }}"
with:
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/pr-kogito-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
timeout-minutes: 180
strategy:
matrix:
job_name: [ kogito-quarkus-examples, serverless-workflow-examples ]
job_name: [ kogito-java-examples, kogito-quarkus-examples, kogito-springboot-examples, serverless-workflow-examples, kogito-gradle-examples ]
os: [ubuntu-latest]
java-version: [17]
maven-version: ['3.9.11']
Expand All @@ -37,9 +37,14 @@ jobs:
- job_name: serverless-workflow-examples
repository: incubator-kie-kogito-examples
env_KOGITO_EXAMPLES_SUBFOLDER_POM: serverless-workflow-examples/
- job_name: kogito-gradle-examples
repository: incubator-kie-kogito-examples
env_KOGITO_EXAMPLES_SUBFOLDER_POM: gradle-examples/
fail-fast: false
runs-on: ${{ matrix.os }}
name: ${{ matrix.job_name }} (${{ matrix.os }} / Java-${{ matrix.java-version }} / Maven-${{ matrix.maven-version }})
env:
DEPENDENCY_TREE_FILE: 'mvn_dependency_tree_${{ matrix.job_name }}_${{ matrix.os }}.txt'
steps:
- name: Clean Disk Space
uses: kiegroup/kie-ci/.ci/actions/ubuntu-disk-space@main
Expand All @@ -66,3 +71,9 @@ jobs:
if: ${{ always() }}
with:
report_paths: '**/*-reports/TEST-*.xml'
- name: Upload Dependency Trees
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: dependency-trees-logs_${{ matrix.job_name }}_${{ matrix.os }}
path: '**/${{ env.DEPENDENCY_TREE_FILE }}'
122 changes: 122 additions & 0 deletions gradle-examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<!--
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 Examples

This modules contains quarkus and springboot kogito examples built with gradle.
This module, and its children, also contains pom.xml files so that they can be built and tested inside maven-based CI.

To avoid duplication of the same folder, all the concrete examples uses the same gradle executables [gradlew](./gradlew) or [gradlew.bat](./gradlew.bat) and relates to the same [gradle-wrapper](./gradle) directory.

## CI Integration
This module, and its children, also contains pom.xml files so that they can be built and tested inside maven-based CI.

Maven compilation is disabled, in the actual examples, with this snippet in the pom.xml

```xml
<!-- 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>
```

while the next one is used to fire gradle test tasks from maven (featuring the "exec-maven-plugin"):

```xml
<!-- execute Gradle command -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>gradle</id>
<phase>test</phase>
<configuration>
<executable>${gradle.executable}</executable>
<arguments>
<argument>clean</argument>
<argument>test</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
```

The maven-clean-plugin is also configured to include the gradle-specific `build` directory:

```xml
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>${project.basedir}/build</directory>
</fileset>
</filesets>
</configuration>
</plugin>
```

The executed gradle script (`gradlew` vs `gradlew.bat`) is selected at execution time depending on the underlying OS; by default is `gradlew`, but the following snippet adapt it on Windows systems:

```xml
<profile>
<id>WINDOWS</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<gradle.executable>${project.parent.parent.basedir}/gradlew.bat</gradle.executable>
</properties>
</profile>
```



## GRADLE Profiles
GRADLE does not offer the concept of profile out of the box, as MAVEN.
TO achieve that, the steps to follow are described [here](https://docs.gradle.org/current/userguide/migrating_from_maven.html#migmvn:profiles_and_properties)

1. inside GRADLE, we'll call them `buildProfile`
2. create a `build.gradle` file with all common settings
3. for each `buildProfile`, create a `profile-${buildProfile}.gradle` file, containing only the profile-specific settings
4. add the following snippet in the `build.gradle`, to load the `buildProfile` specific building script
```groovy
if (!hasProperty('buildProfile')) ext.buildProfile = 'prod'
apply from: "profile-${buildProfile}.gradle"
```
(here, we are assuming that, by default, the buildProfile will be `prod`)



Binary file added gradle-examples/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle-examples/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -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
Loading
Loading