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

tzimanyi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new 35ba0a144f [kie-issues#1154] Make KieSession auto-closeable (#5890)
35ba0a144f is described below

commit 35ba0a144f1b077c0a85bfaf7b142559b67e5c85
Author: Tibor Zimányi <[email protected]>
AuthorDate: Tue May 7 12:36:07 2024 +0200

    [kie-issues#1154] Make KieSession auto-closeable (#5890)
---
 .../drools/ancompiler/AlphaNetworkCompilerTest.java |  5 +----
 .../drools/ancompiler/LargeAlphaNetworkTest.java    | 21 +++++++++------------
 .../org/drools/ancompiler/MixedConstraintsTest.java | 21 +++++++++------------
 .../MultipleIndexableConstraintsTest.java           | 21 +++++++++------------
 .../main/java/org/kie/api/runtime/KieSession.java   | 11 ++++++++++-
 5 files changed, 38 insertions(+), 41 deletions(-)

diff --git 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/AlphaNetworkCompilerTest.java
 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/AlphaNetworkCompilerTest.java
index 2a7b1c483a..4491f39eac 100644
--- 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/AlphaNetworkCompilerTest.java
+++ 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/AlphaNetworkCompilerTest.java
@@ -453,12 +453,9 @@ public class AlphaNetworkCompilerTest extends 
BaseModelTest {
                         "then\n" +
                         "end";
 
-        KieSession ksession = getKieSession(str);
-        try {
+        try (KieSession ksession = getKieSession(str)) {
             ksession.insert(new Person("Mario", 45));
             assertThat(ksession.fireAllRules()).isEqualTo(0);
-        } finally {
-            ksession.dispose();
         }
     }
 
diff --git 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/LargeAlphaNetworkTest.java
 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/LargeAlphaNetworkTest.java
index 39cf059f7f..ce1bb10992 100644
--- 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/LargeAlphaNetworkTest.java
+++ 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/LargeAlphaNetworkTest.java
@@ -43,21 +43,18 @@ public class LargeAlphaNetworkTest extends BaseModelTest {
             rule.append(ruleWithIndex(i));
         }
 
-        KieSession ksession = getKieSession(rule.toString());
-        ArrayList<Object> results = new ArrayList<>();
-        ksession.setGlobal("results", results);
-        Person a = new Person("a", 1);
-        Person b = new Person("b", 0);
-        Person c = new Person("a", 7);
-        ksession.insert(a);
-        ksession.insert(b);
-        ksession.insert(c);
+        try (KieSession ksession = getKieSession(rule.toString())) {
+            ArrayList<Object> results = new ArrayList<>();
+            ksession.setGlobal("results", results);
+            Person a = new Person("a", 1);
+            Person b = new Person("b", 0);
+            Person c = new Person("a", 7);
+            ksession.insert(a);
+            ksession.insert(b);
+            ksession.insert(c);
 
-        try {
             ksession.fireAllRules();
             assertThat(results).contains(a, b, c);
-        } finally {
-            ksession.dispose();
         }
     }
 
diff --git 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MixedConstraintsTest.java
 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MixedConstraintsTest.java
index 86a5691de7..ac6321acca 100644
--- 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MixedConstraintsTest.java
+++ 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MixedConstraintsTest.java
@@ -46,21 +46,18 @@ public class MixedConstraintsTest extends BaseModelTest {
             rule.append(ruleWithIndex(i));
         }
 
-        KieSession ksession = getKieSession(rule.toString());
-        ArrayList<Object> results = new ArrayList<>();
-        ksession.setGlobal("results", results);
-        Person a = new Person("a", 1);
-        Person b = new Person("b", 0);
-        Person c = new Person("a", 7);
-        ksession.insert(a);
-        ksession.insert(b);
-        ksession.insert(c);
+        try (KieSession ksession = getKieSession(rule.toString())) {
+            ArrayList<Object> results = new ArrayList<>();
+            ksession.setGlobal("results", results);
+            Person a = new Person("a", 1);
+            Person b = new Person("b", 0);
+            Person c = new Person("a", 7);
+            ksession.insert(a);
+            ksession.insert(b);
+            ksession.insert(c);
 
-        try {
             ksession.fireAllRules();
             assertThat(results).contains(a, b, c);
-        } finally {
-            ksession.dispose();
         }
     }
 
diff --git 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MultipleIndexableConstraintsTest.java
 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MultipleIndexableConstraintsTest.java
index 9f5765d3b5..431c4bce88 100644
--- 
a/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MultipleIndexableConstraintsTest.java
+++ 
b/drools-alphanetwork-compiler/src/test/java/org/drools/ancompiler/MultipleIndexableConstraintsTest.java
@@ -45,21 +45,18 @@ public class MultipleIndexableConstraintsTest extends 
BaseModelTest {
             rule.append(ruleWithIndex(i));
         }
 
-        KieSession ksession = getKieSession(rule.toString());
-        ArrayList<Object> results = new ArrayList<>();
-        ksession.setGlobal("results", results);
-        Person a = new Person("a", 1);
-        Person b = new Person("b", 0);
-        Person c = new Person("a", 7);
-        ksession.insert(a);
-        ksession.insert(b);
-        ksession.insert(c);
+        try (KieSession ksession = getKieSession(rule.toString())) {
+            ArrayList<Object> results = new ArrayList<>();
+            ksession.setGlobal("results", results);
+            Person a = new Person("a", 1);
+            Person b = new Person("b", 0);
+            Person c = new Person("a", 7);
+            ksession.insert(a);
+            ksession.insert(b);
+            ksession.insert(c);
 
-        try {
             ksession.fireAllRules();
             assertThat(results).contains(a, b, c);
-        } finally {
-            ksession.dispose();
         }
     }
 
diff --git a/kie-api/src/main/java/org/kie/api/runtime/KieSession.java 
b/kie-api/src/main/java/org/kie/api/runtime/KieSession.java
index 7c6267f377..13d6d4ad10 100644
--- a/kie-api/src/main/java/org/kie/api/runtime/KieSession.java
+++ b/kie-api/src/main/java/org/kie/api/runtime/KieSession.java
@@ -94,7 +94,8 @@ public interface KieSession
         StatefulRuleSession,
         StatefulProcessSession,
         CommandExecutor,
-        KieRuntime {
+        KieRuntime,
+        AutoCloseable {
 
     /**
      * Deprecated. use {@link #getIdentifier()} instead
@@ -114,6 +115,14 @@ public interface KieSession
      */
     void dispose();
 
+    /**
+     * Disposes the KieSession when used as AutoClosable. Wrapper method that 
calls {@link #dispose()}.
+     * To see more details, please see documentation on the method {@link 
#dispose()}.
+     */
+    @Override
+    default void close() {
+        dispose();
+    }
 
     /**
      * Destroys session permanently. In case of session state being persisted 
in data store


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

Reply via email to