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

mariofusco 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 7d11b928a4 [KIE-1492] Allow KieRuntimeBuilder to also create and 
provide StatelessKieSession (#6103)
7d11b928a4 is described below

commit 7d11b928a43b3f47bda6aac9ae4f79000d3ece72
Author: Mario Fusco <[email protected]>
AuthorDate: Fri Sep 27 09:24:03 2024 +0200

    [KIE-1492] Allow KieRuntimeBuilder to also create and provide 
StatelessKieSession (#6103)
---
 .../model/codegen/execmodel/ModelSourceClass.java  |  4 ++
 .../codegen/project/ProjectRuntimeGenerator.java   | 30 +++++++------
 .../rules/ProjectRuntimeJavaTemplate.java          | 18 +++++++-
 .../rules/ProjectRuntimeQuarkusTemplate.java       | 18 +++++++-
 .../rules/ProjectRuntimeSpringTemplate.java        | 18 +++++++-
 .../quarkus/deployment/DroolsAssetsProcessor.java  |  3 ++
 .../drools-quarkus-integration-test/pom.xml        |  4 ++
 .../src/main/resources/application.properties      |  6 ++-
 .../java/org/drools/quarkus/test/RuntimeTest.java  | 50 +++++++++++++++++----
 .../main/java/org/kie/api/command/KieCommands.java |  6 +++
 .../main/java/org/kie/api/runtime/KieRuntime.java  | 32 +-------------
 .../org/kie/api/runtime/KieRuntimeBuilder.java     |  3 ++
 .../{KieRuntime.java => RuntimeSession.java}       | 51 ++++++++++------------
 .../org/kie/api/runtime/StatelessKieSession.java   | 50 +--------------------
 kie-dmn/kie-dmn-core-jsr223/pom.xml                | 21 +++------
 .../kie-dmn-pmml-tests-trusty/pom.xml              | 20 +++------
 .../kie-pmml-compiler-api/pom.xml                  | 20 ++-------
 17 files changed, 171 insertions(+), 183 deletions(-)

diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java
index 164eb57f9e..d5fd40b2e3 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java
@@ -211,6 +211,10 @@ public class ModelSourceClass {
             return defaultKieSessionName;
         }
 
+        public String getDefaultKieStatelessSessionName() {
+            return defaultKieStatelessSessionName;
+        }
+
         public Map<String, BlockStmt> getkSessionConfs() {
             return kSessionConfs;
         }
diff --git 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java
 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java
index 053a3161c3..5bb12d525e 100644
--- 
a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java
+++ 
b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java
@@ -90,31 +90,33 @@ public class ProjectRuntimeGenerator {
     }
 
     private void writeGetDefaultKieBaseMethod(ClassOrInterfaceDeclaration 
clazz) {
-        MethodDeclaration getDefaultKieBaseMethod = 
clazz.findAll(MethodDeclaration.class).stream()
-                .filter(m -> m.getNameAsString().equals("getKieBase"))
-                .filter(m -> m.getParameters().isEmpty())
-                .findFirst()
-                .orElseThrow(() -> new InvalidTemplateException(generator, 
"Cannot find getKieBase method"));
-
         if (modelMethod.getDefaultKieBaseName() != null) {
-            getDefaultKieBaseMethod.findFirst(StringLiteralExpr.class)
+            findDefaultKieMethod(clazz, 
"getKieBase").findFirst(StringLiteralExpr.class)
                     .orElseThrow(() -> new InvalidTemplateException(generator, 
"Cannot find string inside getKieBase method"))
                     .setString(modelMethod.getDefaultKieBaseName());
         }
     }
 
     private void writeNewDefaultKieSessionMethod(ClassOrInterfaceDeclaration 
clazz) {
-        MethodDeclaration newDefaultKieSessionMethod = 
clazz.findAll(MethodDeclaration.class).stream()
-                .filter(m -> m.getNameAsString().equals("newKieSession"))
-                .filter(m -> m.getParameters().isEmpty())
-                .findFirst()
-                .orElseThrow(() -> new InvalidTemplateException(generator, 
"Cannot find newKieSession method"));
-
         if (modelMethod.getDefaultKieSessionName() != null) {
-            newDefaultKieSessionMethod.findFirst(StringLiteralExpr.class)
+            findDefaultKieMethod(clazz, 
"newKieSession").findFirst(StringLiteralExpr.class)
                     .orElseThrow(() -> new InvalidTemplateException(generator, 
"Cannot find string inside newKieSession method"))
                     .setString(modelMethod.getDefaultKieSessionName());
         }
+
+        if (modelMethod.getDefaultKieStatelessSessionName() != null) {
+            findDefaultKieMethod(clazz, 
"newStatelessKieSession").findFirst(StringLiteralExpr.class)
+                    .orElseThrow(() -> new InvalidTemplateException(generator, 
"Cannot find string inside newStatelessKieSession method"))
+                    
.setString(modelMethod.getDefaultKieStatelessSessionName());
+        }
+    }
+
+    private MethodDeclaration findDefaultKieMethod(ClassOrInterfaceDeclaration 
clazz, String methodName) {
+        return clazz.findAll(MethodDeclaration.class).stream()
+                .filter(m -> m.getNameAsString().equals(methodName))
+                .filter(m -> m.getParameters().isEmpty())
+                .findFirst()
+                .orElseThrow(() -> new InvalidTemplateException(generator, 
"Cannot find " + methodName + " method"));
     }
 
     private void writeGetKieBaseForSessionMethod(ClassOrInterfaceDeclaration 
clazz) {
diff --git 
a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java
 
b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java
index 90edc28323..f6363b63c4 100644
--- 
a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java
+++ 
b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java
@@ -25,6 +25,7 @@ import org.drools.core.SessionConfiguration;
 import org.kie.api.KieBase;
 import org.kie.api.runtime.KieSession;
 import org.kie.api.runtime.KieRuntimeBuilder;
+import org.kie.api.runtime.StatelessKieSession;
 import org.drools.modelcompiler.KieBaseBuilder;
 
 public class ProjectRuntime implements KieRuntimeBuilder {
@@ -62,8 +63,21 @@ public class ProjectRuntime implements KieRuntimeBuilder {
         if (kbase == null) {
             throw new RuntimeException("Unknown KieSession with name '" + 
sessionName + "'");
         }
-        KieSession ksession = 
kbase.newKieSession(getConfForSession(sessionName), null);
-        return ksession;
+        return kbase.newKieSession(getConfForSession(sessionName), null);
+    }
+
+    @Override
+    public StatelessKieSession newStatelessKieSession() {
+        return newStatelessKieSession("$defaultStatelessKieSession$");
+    }
+
+    @Override
+    public StatelessKieSession newStatelessKieSession(String sessionName) {
+        KieBase kbase = getKieBaseForSession(sessionName);
+        if (kbase == null) {
+            throw new RuntimeException("Unknown StatelessKieSession with name 
'" + sessionName + "'");
+        }
+        return kbase.newStatelessKieSession(getConfForSession(sessionName));
     }
 
     private KieBase getKieBaseForSession(String sessionName) {
diff --git 
a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java
 
b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java
index ee69deb295..5f4da3847b 100644
--- 
a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java
+++ 
b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java
@@ -25,6 +25,7 @@ import org.drools.core.SessionConfiguration;
 import org.kie.api.KieBase;
 import org.kie.api.runtime.KieSession;
 import org.kie.api.runtime.KieRuntimeBuilder;
+import org.kie.api.runtime.StatelessKieSession;
 import org.drools.modelcompiler.KieBaseBuilder;
 
 @jakarta.enterprise.context.ApplicationScoped
@@ -63,8 +64,21 @@ public class ProjectRuntime implements KieRuntimeBuilder {
         if (kbase == null) {
             throw new RuntimeException("Unknown KieSession with name '" + 
sessionName + "'");
         }
-        KieSession ksession = 
kbase.newKieSession(getConfForSession(sessionName), null);
-        return ksession;
+        return kbase.newKieSession(getConfForSession(sessionName), null);
+    }
+
+    @Override
+    public StatelessKieSession newStatelessKieSession() {
+        return newStatelessKieSession("$defaultStatelessKieSession$");
+    }
+
+    @Override
+    public StatelessKieSession newStatelessKieSession(String sessionName) {
+        KieBase kbase = getKieBaseForSession(sessionName);
+        if (kbase == null) {
+            throw new RuntimeException("Unknown StatelessKieSession with name 
'" + sessionName + "'");
+        }
+        return kbase.newStatelessKieSession(getConfForSession(sessionName));
     }
 
     private KieBase getKieBaseForSession(String sessionName) {
diff --git 
a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java
 
b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java
index 3bb8b50084..13ac7e0e26 100644
--- 
a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java
+++ 
b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java
@@ -25,6 +25,7 @@ import org.drools.core.SessionConfiguration;
 import org.kie.api.KieBase;
 import org.kie.api.runtime.KieSession;
 import org.kie.api.runtime.KieRuntimeBuilder;
+import org.kie.api.runtime.StatelessKieSession;
 import org.drools.modelcompiler.KieBaseBuilder;
 
 @org.springframework.stereotype.Component
@@ -63,8 +64,21 @@ public class ProjectRuntime implements KieRuntimeBuilder {
         if (kbase == null) {
             throw new RuntimeException("Unknown KieSession with name '" + 
sessionName + "'");
         }
-        KieSession ksession = 
kbase.newKieSession(getConfForSession(sessionName), null);
-        return ksession;
+        return kbase.newKieSession(getConfForSession(sessionName), null);
+    }
+
+    @Override
+    public StatelessKieSession newStatelessKieSession() {
+        return newStatelessKieSession("$defaultStatelessKieSession$");
+    }
+
+    @Override
+    public StatelessKieSession newStatelessKieSession(String sessionName) {
+        KieBase kbase = getKieBaseForSession(sessionName);
+        if (kbase == null) {
+            throw new RuntimeException("Unknown StatelessKieSession with name 
'" + sessionName + "'");
+        }
+        return kbase.newStatelessKieSession(getConfForSession(sessionName));
     }
 
     private KieBase getKieBaseForSession(String sessionName) {
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
index 08c68ad06d..32022f6389 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
+++ 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
@@ -205,6 +205,9 @@ public class DroolsAssetsProcessor {
                             case "default":
                                 kieSessionModel.setDefault( 
config.getValue(propertyName, Boolean.class) );
                                 break;
+                            case "stateless":
+                                kieSessionModel.setType( 
config.getValue(propertyName, Boolean.class) ? 
KieSessionModel.KieSessionType.STATELESS : 
KieSessionModel.KieSessionType.STATEFUL );
+                                break;
                             case "clockType":
                                 kieSessionModel.setClockType( 
ClockTypeOption.get(config.getValue(propertyName, String.class) ) );
                                 break;
diff --git a/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml 
b/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml
index 77e1fb06d0..1a4e3e1645 100644
--- a/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml
+++ b/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml
@@ -41,6 +41,10 @@
       <groupId>org.drools</groupId>
       <artifactId>drools-quarkus</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-commands</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-decisiontables</artifactId>
diff --git 
a/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties
 
b/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties
index b26fc31a18..e7193773be 100644
--- 
a/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties
+++ 
b/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties
@@ -21,12 +21,16 @@ drools.prototypes=allowed
 
 drools.kbase.canDrinkKB.packages=org.drools.drl
 drools.kbase.canDrinkKB.ksession.canDrinkKS.default=true
+drools.kbase.canDrinkKB.ksession.statelessCanDrinkKS.stateless=true
+drools.kbase.canDrinkKB.ksession.statelessCanDrinkKS.default=true
 
 drools.kbase.canDrinkKBDTable.packages=org.drools.dtable
-drools.kbase.canDrinkKBDTable.ksession=canDrinkKSDTable
+drools.kbase.canDrinkKBDTable.ksession.canDrinkKSDTable.stateless=false
+drools.kbase.canDrinkKBDTable.ksession.statelessCanDrinkKSDTable.stateless=true
 
 drools.kbase.canDrinkKBYaml.packages=org.drools.yaml
 drools.kbase.canDrinkKBYaml.ksession=canDrinkKSYaml
+drools.kbase.canDrinkKBYaml.ksession.statelessCanDrinkKSYaml.stateless=true
 
 drools.kbase.canDrinkKBPrototype.packages=org.drools.prototype
 drools.kbase.canDrinkKBPrototype.prototypes=allowed
diff --git 
a/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java
 
b/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java
index a6905fbdce..1ac971dafd 100644
--- 
a/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java
+++ 
b/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java
@@ -24,11 +24,16 @@ import java.util.stream.Collectors;
 import io.quarkus.test.junit.QuarkusTest;
 import jakarta.inject.Inject;
 import org.junit.jupiter.api.Test;
+import org.kie.api.KieServices;
+import org.kie.api.command.KieCommands;
 import org.kie.api.definition.KiePackage;
+import org.kie.api.internal.utils.KieService;
 import org.kie.api.prototype.PrototypeFact;
 import org.kie.api.prototype.PrototypeFactInstance;
 import org.kie.api.runtime.KieRuntimeBuilder;
 import org.kie.api.runtime.KieSession;
+import org.kie.api.runtime.RuntimeSession;
+import org.kie.api.runtime.StatelessKieSession;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.kie.api.prototype.PrototypeBuilder.prototype;
@@ -42,30 +47,59 @@ public class RuntimeTest {
     @Test
     public void testDrlEvaluation() {
         // canDrinkKS is the default session
-        testSimpleDrl(runtimeBuilder.newKieSession(), "org.drools.drl");
+        testSimpleDrl(runtimeBuilder.newKieSession(), "org.drools.drl", true);
     }
 
     @Test
     public void testDTableEvaluation() {
-        testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSDTable"), 
"org.drools.dtable");
+        testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSDTable"), 
"org.drools.dtable", true);
     }
 
     @Test
     public void testYamlEvaluation() {
-        testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSYaml"), 
"org.drools.yaml");
+        testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSYaml"), 
"org.drools.yaml", true);
     }
 
-    private void testSimpleDrl(KieSession ksession, String assetPackage) {
-        List<String> pkgNames = 
ksession.getKieBase().getKiePackages().stream().map(KiePackage::getName).collect(Collectors.toList());
+    @Test
+    public void testStatelessDrlEvaluation() {
+        // statelessCanDrinkKS is the default stateless session
+        testSimpleDrl(runtimeBuilder.newStatelessKieSession(), 
"org.drools.drl", false);
+    }
+
+    @Test
+    public void testStatelessDTableEvaluation() {
+        
testSimpleDrl(runtimeBuilder.newStatelessKieSession("statelessCanDrinkKSDTable"),
 "org.drools.dtable", false);
+    }
+
+    @Test
+    public void testStatelessYamlEvaluation() {
+        
testSimpleDrl(runtimeBuilder.newStatelessKieSession("statelessCanDrinkKSYaml"), 
"org.drools.yaml", false);
+    }
+
+    private void testSimpleDrl(RuntimeSession session, String assetPackage, 
boolean stateful) {
+        if (stateful) {
+            assertThat(session).isInstanceOf(KieSession.class);
+        } else {
+            assertThat(session).isInstanceOf(StatelessKieSession.class);
+        }
+
+        List<String> pkgNames = 
session.getKieBase().getKiePackages().stream().map(KiePackage::getName).collect(Collectors.toList());
         
         
assertThat(pkgNames).hasSize(2).containsExactlyInAnyOrder("org.drools.quarkus.test",
 assetPackage);
 
+        KieCommands kieCommands = KieServices.get().getCommands();
+
         Result result = new Result();
-        ksession.insert(result);
-        ksession.insert(new Person("Mark", 17));
-        ksession.fireAllRules();
+        session.execute( kieCommands.newBatchExecution(
+                kieCommands.newInsert(result),
+                kieCommands.newInsert(new Person("Mark", 17)),
+                kieCommands.newFireAllRules() ) );
 
         assertThat(result.toString()).isEqualTo("Mark can NOT drink");
+
+        if (stateful) {
+            ((KieSession) session).dispose();
+        }
     }
 
     @Test
diff --git a/kie-api/src/main/java/org/kie/api/command/KieCommands.java 
b/kie-api/src/main/java/org/kie/api/command/KieCommands.java
index afb5d8d2bb..9cb50473ad 100644
--- a/kie-api/src/main/java/org/kie/api/command/KieCommands.java
+++ b/kie-api/src/main/java/org/kie/api/command/KieCommands.java
@@ -29,6 +29,8 @@ import org.kie.api.runtime.ObjectFilter;
 import org.kie.api.runtime.process.WorkItemHandler;
 import org.kie.api.runtime.rule.FactHandle;
 
+import static java.util.Arrays.asList;
+
 /**
  * KieCommands is a factory for Commands that can be used by classes that 
implement CommandExecutor. Typically more than one Command
  * will want to be executed, where is where the BatchExecution comes in, which 
takes a List of commands, think of it as CompositeCommand.
@@ -115,6 +117,10 @@ public interface KieCommands extends KieService {
                      String name,
                      Object[] arguments);
 
+    default BatchExecutionCommand newBatchExecution(Command... commands) {
+        return newBatchExecution( asList(commands) );
+    }
+
     BatchExecutionCommand newBatchExecution(List< ? extends Command> commands);
 
     BatchExecutionCommand newBatchExecution(List< ? extends Command> commands, 
String lookup);
diff --git a/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java 
b/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java
index 1ea1669fc1..d8495f069c 100644
--- a/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java
+++ b/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java
@@ -18,53 +18,23 @@
  */
 package org.kie.api.runtime;
 
-import java.util.Map;
-
-import org.kie.api.KieBase;
 import org.kie.api.event.KieRuntimeEventManager;
-import org.kie.api.runtime.KieSessionConfiguration;
 import org.kie.api.runtime.process.ProcessRuntime;
 import org.kie.api.runtime.rule.RuleRuntime;
 import org.kie.api.time.SessionClock;
 
-public interface KieRuntime
-    extends
-    RuleRuntime,
-    ProcessRuntime,
-    KieRuntimeEventManager {
+public interface KieRuntime extends RuntimeSession, RuleRuntime, 
ProcessRuntime, KieRuntimeEventManager {
 
     /**
      * @return the session clock instance assigned to this session
      */
     <T extends SessionClock> T getSessionClock();
 
-    /**
-     * Sets a global value in this session
-     * @param identifier the global identifier
-     * @param value the value assigned to the global identifier
-     */
-    void setGlobal(String identifier,
-                   Object value);
-
     Object getGlobal(String identifier);
 
-    Globals getGlobals();
-
     Calendars getCalendars();
 
     Environment getEnvironment();
 
-    /**
-     * @return the KieBase reference from which this stateful session was 
created.
-     */
-    KieBase getKieBase();
-
-    void registerChannel(String name,
-                         Channel channel);
-
-    void unregisterChannel(String name);
-
-    Map< String, Channel> getChannels();
-
     KieSessionConfiguration getSessionConfiguration();
 }
diff --git a/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java 
b/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java
index 4628f816bb..9f4868fa10 100644
--- a/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java
+++ b/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java
@@ -27,6 +27,9 @@ public interface KieRuntimeBuilder {
     KieSession newKieSession();
     KieSession newKieSession(String sessionName);
 
+    StatelessKieSession newStatelessKieSession();
+    StatelessKieSession newStatelessKieSession(String sessionName);
+
     default KieSession newKieSession(KieSessionConfiguration conf) {
         return getKieBase().newKieSession(conf, null);
     }
diff --git a/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java 
b/kie-api/src/main/java/org/kie/api/runtime/RuntimeSession.java
similarity index 62%
copy from kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java
copy to kie-api/src/main/java/org/kie/api/runtime/RuntimeSession.java
index 1ea1669fc1..60ddf5a957 100644
--- a/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java
+++ b/kie-api/src/main/java/org/kie/api/runtime/RuntimeSession.java
@@ -18,53 +18,50 @@
  */
 package org.kie.api.runtime;
 
-import java.util.Map;
-
 import org.kie.api.KieBase;
-import org.kie.api.event.KieRuntimeEventManager;
-import org.kie.api.runtime.KieSessionConfiguration;
-import org.kie.api.runtime.process.ProcessRuntime;
-import org.kie.api.runtime.rule.RuleRuntime;
-import org.kie.api.time.SessionClock;
 
-public interface KieRuntime
-    extends
-    RuleRuntime,
-    ProcessRuntime,
-    KieRuntimeEventManager {
+import java.util.Map;
+
+public interface RuntimeSession extends CommandExecutor {
 
     /**
-     * @return the session clock instance assigned to this session
+     * @return the Globals store
      */
-    <T extends SessionClock> T getSessionClock();
+    Globals getGlobals();
 
     /**
-     * Sets a global value in this session
+     * Sets a global value on the globals store
+     *
      * @param identifier the global identifier
      * @param value the value assigned to the global identifier
      */
     void setGlobal(String identifier,
                    Object value);
 
-    Object getGlobal(String identifier);
-
-    Globals getGlobals();
-
-    Calendars getCalendars();
-
-    Environment getEnvironment();
 
     /**
-     * @return the KieBase reference from which this stateful session was 
created.
+     * Registers a channel with the given name
+     *
+     * @param name the name of the channel
+     * @param channel the channel instance. It has to be thread safe.
      */
-    KieBase getKieBase();
-
     void registerChannel(String name,
                          Channel channel);
 
+    /**
+     * Unregisters the channel with the given name
+     *
+     * @param name
+     */
     void unregisterChannel(String name);
 
-    Map< String, Channel> getChannels();
+    /**
+     * @return a map with all registered channels.
+     */
+    Map<String, Channel> getChannels();
 
-    KieSessionConfiguration getSessionConfiguration();
+    /**
+     * @return the KieBase reference from which this stateless session was 
created.
+     */
+    KieBase getKieBase();
 }
diff --git a/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java 
b/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java
index 4c7869eb1e..5f8460d6bb 100644
--- a/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java
+++ b/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java
@@ -18,9 +18,6 @@
  */
 package org.kie.api.runtime;
 
-import java.util.Map;
-
-import org.kie.api.KieBase;
 import org.kie.api.event.KieRuntimeEventManager;
 import org.kie.api.runtime.process.StatelessProcessSession;
 import org.kie.api.runtime.rule.StatelessRuleSession;
@@ -106,51 +103,6 @@ import org.kie.api.runtime.rule.StatelessRuleSession;
  * results.getValue( "Get People" );// returns the query as a QueryResults 
instance.
  * </pre>
  */
-public interface StatelessKieSession
-        extends
-        StatelessRuleSession,
-        StatelessProcessSession,
-        CommandExecutor,
-        KieRuntimeEventManager {
-
-    /**
-     * @return the Globals store
-     */
-    Globals getGlobals();
-
-    /**
-     * Sets a global value on the globals store
-     *
-     * @param identifier the global identifier
-     * @param value the value assigned to the global identifier
-     */
-    void setGlobal(String identifier,
-                   Object value);
-
-
-    /**
-     * Registers a channel with the given name
-     *
-     * @param name the name of the channel
-     * @param channel the channel instance. It has to be thread safe.
-     */
-    void registerChannel(String name,
-                         Channel channel);
-
-    /**
-     * Unregisters the channel with the given name
-     *
-     * @param name
-     */
-    void unregisterChannel(String name);
-
-    /**
-     * @return a map with all registered channels.
-     */
-    Map<String, Channel> getChannels();
+public interface StatelessKieSession extends StatelessRuleSession, 
StatelessProcessSession, RuntimeSession, KieRuntimeEventManager {
 
-    /**
-     * @return the KieBase reference from which this stateless session was 
created.
-     */
-    KieBase getKieBase();
 }
diff --git a/kie-dmn/kie-dmn-core-jsr223/pom.xml 
b/kie-dmn/kie-dmn-core-jsr223/pom.xml
index b0f93bc3ac..42c9feff4f 100644
--- a/kie-dmn/kie-dmn-core-jsr223/pom.xml
+++ b/kie-dmn/kie-dmn-core-jsr223/pom.xml
@@ -112,21 +112,10 @@
       <artifactId>kie-dmn-core-jsr223-jq</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.openjdk.nashorn</groupId>
+      <artifactId>nashorn-core</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
-  <profiles>
-    <profile>
-      <!-- prepare for JDK15 and JDK17+ -->
-      <id>add-jdk15plus-dependencies</id>
-      <activation>
-        <jdk>[15,)</jdk>
-      </activation>
-      <dependencies>
-        <dependency>
-            <groupId>org.openjdk.nashorn</groupId>
-            <artifactId>nashorn-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
 </project>
\ No newline at end of file
diff --git 
a/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml 
b/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml
index 8861992393..126cfd4e4b 100644
--- a/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml
+++ b/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml
@@ -152,6 +152,11 @@
       <scope>test</scope>
     </dependency>
 
+    <dependency>
+      <groupId>org.glassfish.jaxb</groupId>
+      <artifactId>jaxb-runtime</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>org.kie</groupId>
       <artifactId>kie-dmn-validation</artifactId>
@@ -188,19 +193,4 @@
       </plugin>
     </plugins>
   </build>
-
-  <profiles>
-    <profile>
-      <id>jdk11</id>
-      <activation>
-        <jdk>[11,)</jdk>
-      </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.glassfish.jaxb</groupId>
-          <artifactId>jaxb-runtime</artifactId>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
 </project>
diff --git a/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml 
b/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml
index bdbd389a05..e7921b7ce0 100644
--- a/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml
+++ b/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml
@@ -53,6 +53,10 @@
       <groupId>org.jpmml</groupId>
       <artifactId>pmml-model</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.glassfish.jaxb</groupId>
+      <artifactId>jaxb-runtime</artifactId>
+    </dependency>
     <!-- TEST -->
     <dependency>
       <groupId>org.kie</groupId>
@@ -74,20 +78,4 @@
       </exclusions>
     </dependency>
   </dependencies>
-
-  <profiles>
-    <profile>
-      <id>java11-pmml</id>
-      <activation>
-        <jdk>[11,)</jdk>
-      </activation>
-      <dependencies>
-        <dependency>
-          <groupId>org.glassfish.jaxb</groupId>
-          <artifactId>jaxb-runtime</artifactId>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
-
 </project>
\ No newline at end of file


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

Reply via email to