Skip to content

kie-issues#1914: remove Infinispan persistence related modules and dependencies#2297

Open
porcelli wants to merge 3 commits intoapache:mainfrom
porcelli:updated-ispn-removal
Open

kie-issues#1914: remove Infinispan persistence related modules and dependencies#2297
porcelli wants to merge 3 commits intoapache:mainfrom
porcelli:updated-ispn-removal

Conversation

@porcelli
Copy link
Copy Markdown
Member

@porcelli porcelli commented Jan 12, 2026

Remove Infinispan as a persistence option as agreed in ML discussion.

Maintaining Infinispan support has become an unnecessary toll - dealing with API changes, upgrades, and transitive dependency security vulnerabilities outweighs its benefits. This simplifies maintenance and allows focus on better-supported options (PostgreSQL, MongoDB).

Related issue: apache/incubator-kie-issues#1914

Ensamble:

apache/incubator-kie-kogito-runtimes#4165
#2297
apache/incubator-kie-kogito-examples#2153
apache/incubator-kie-kogito-pipelines#1294

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@pefernan
Copy link
Copy Markdown
Contributor

pefernan commented Jan 15, 2026

Hey @porcelli sorry for the late review! I'm +1 on this PR but I see there are a lot of reds in the CI

I saw this error:

026-01-12T23:02:41.6261464Z [WARNING] 
2026-01-12T23:02:41.6486021Z [ERROR] [ERROR] Could not find the selected project in the reactor: org.kie.kogito:integration-tests-springboot-processes-infinispan @ 
2026-01-12T23:02:41.6497928Z [ERROR] Could not find the selected project in the reactor: org.kie.kogito:integration-tests-springboot-processes-infinispan -> [Help 1]
2026-01-12T23:02:41.6503548Z org.apache.maven.MavenExecutionException: Could not find the selected project in the reactor: org.kie.kogito:integration-tests-springboot-processes-infinispan
2026-01-12T23:02:41.6505413Z     at org.apache.maven.graph.DefaultGraphBuilder.trimExcludedProjects (DefaultGraphBuilder.java:219)

which makes me think that the actual pr still has a reference to org.kie.kogito:integration-tests-springboot-processes-infinispan somewhere in kogito-runtimes.

Also there are some problems in the RAT exclusions.

…re jitexecutor-native

Delete empty Infinispan-related test files that were missed in the
initial removal, causing Apache RAT license header checks to fail:

- DataIndexInfinispanContainer.java
- DataIndexInfinispanHttpQuarkusTestResource.java
- DataIndexInfinispanHttpResource.java
- DataIndexInfinispanKafkaResource.java
- DataIndexInfinispanQuarkusKafkaTestResource.java

Restore jitexecutor-native module that was incorrectly removed
(not related to Infinispan persistence).
@porcelli
Copy link
Copy Markdown
Member Author

porcelli commented Feb 4, 2026

@pefernan did a new push, tomorrow I'll check back. sorry for taking longer

Update README files to reflect the removal of Infinispan persistence:
- data-index: remove infinispan from supported storage list
- persistence-commons: remove persistence-commons-infinispan module reference
- trusty: update to reference PostgreSQL/Redis instead of Infinispan
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 153 out of 154 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (4)

trusty/trusty-service/trusty-service-infinispan/src/main/resources/application.properties:1

  • This configuration previously set default Infinispan credentials in quarkus.infinispan-client.username and quarkus.infinispan-client.password using values like admin, which constitutes hardcoded credentials. If these defaults are ever used in non-test environments (for example when the corresponding environment variables are not overridden), an attacker who can reach the Infinispan service can authenticate with full privileges. Removing this configuration and requiring credentials to be supplied securely at deploy time mitigates this risk; ensure no other production configs ship with similar built‑in secrets.
    trusty/trusty-service/trusty-service-infinispan/src/main/resources/application.properties:1
  • The property quarkus.infinispan-client.sasl-mechanism here defaulted to DIGEST-MD5, which relies on MD5 and is considered a weak and deprecated authentication mechanism. An attacker who can capture the SASL handshake can perform efficient offline dictionary attacks against MD5 digests, significantly weakening protection of the Infinispan credentials. Removing this default and requiring a stronger SASL mechanism (such as a SCRAM-SHA variant) reduces the risk of credential compromise.
    jobs-service/jobs-service-infinispan/src/main/resources/application.properties:1
  • This file previously configured default Infinispan credentials in quarkus.infinispan-client.username and quarkus.infinispan-client.password (for example admin / password), which are hardcoded secrets. If deployed without overriding these values, anyone who can reach the Infinispan endpoint can authenticate with these known credentials and gain unauthorized access to jobs data. Deleting this configuration removes the embedded credentials; ensure that any replacement configuration requires secrets to be injected securely rather than baked into source.
    jobs-service/jobs-service-infinispan/src/main/resources/application.properties:1
  • The quarkus.infinispan-client.sasl-mechanism property here used a default of DIGEST-MD5, a SASL mechanism based on the weak MD5 hash function. Attackers who can observe authentication traffic can leverage MD5 weaknesses to mount efficient offline password guessing attacks against these digests. By removing this configuration and avoiding DIGEST-MD5, the authentication flow no longer depends on a deprecated and weak algorithm and can rely on stronger mechanisms instead.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 26 to 31
public class InfinispanKafkaTestProfile implements QuarkusTestProfile {

@Override
public List<TestResourceEntry> testResources() {
return Arrays.asList(new TestResourceEntry(KogitoServiceRandomPortQuarkusKafkaTestResource.class),
new TestResourceEntry(DataIndexInfinispanQuarkusKafkaTestResource.class));
return Arrays.asList(new TestResourceEntry(KogitoServiceRandomPortQuarkusKafkaTestResource.class));
}
Copy link

Copilot AI Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

InfinispanKafkaTestProfile no longer provisions any Infinispan-related test resources (it only registers KogitoServiceRandomPortQuarkusKafkaTestResource). The class name is now misleading and the file appears unused in the codebase. Consider either deleting it, or renaming it to reflect what it actually configures (and updating any references if they exist).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@kie-ci3
Copy link
Copy Markdown
Contributor

kie-ci3 commented Feb 4, 2026

PR job #3 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer

build-chain build full_downstream -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-apps -u #2297 --skipParallelCheckout

NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-apps-pr/job/PR-2297/3/display/redirect

Test results:

  • PASSED: 673
  • FAILED: 26

Those are the test failures:

org.kie.kogito.index.mongodb.query.DomainQueryIT.test java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.query.JobQueryIT.testJobQuery java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.query.ProcessDefinitionQueryIT.testProcessDefinitionQuery java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.query.ProcessIdQueryIT.testProcessIdQuery java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.query.ProcessInstanceQueryIT.testProcessInstanceQuery java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.query.UserTaskInstanceQueryIT.testUserTaskInstanceQuery java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.storage.DomainStorageIT.testCache java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.storage.JobStorageIT.testCache java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.storage.MongoModelServiceImplIT.testInit java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.storage.ProcessDefinitionStorageIT.testCache java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.storage.ProcessIdStorageIT.testCache java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.index.mongodb.storage.ProcessIndexObserverIT.testOnProcessIndexEvent java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.jobs.service.messaging.MongoDBMessagingApiTest.cancelJob java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.jobs.service.repository.mongodb.MongoDBJobRepositoryTest.testSaveAndGet java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.jobs.service.resource.KeycloakMongoDBJobServiceTest.(?) java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.jobs.service.resource.MongoDBJobResourceTest.cancelRunningNonPeriodicJobTest java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.jobs.service.resource.v2.http.recipient.MongoDBHttpRecipientPayloadTypesTest.httpRecipientWithStringPayloadData java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.jobs.service.resource.v2.sink.recipient.MongoDBSinkRecipientPayloadTypesTest.sinkRecipientStructuredModeWithBinaryPayloadData java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.HealthCheckIT.testHealthCheck java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.client.MongoClientManagerIT.testGetCollection java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.index.IndexManagerIT.(?) java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.query.MongoQueryIT.testExecute java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.storage.MongoStorageIT.testGet java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.storage.MongoStorageManagerIT.testGetCache java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.storage.StorageListenerIT.testObjectUpdatedListener java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
org.kie.kogito.persistence.mongodb.storage.StorageUtilsIT.testWatchCollection_delete java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants