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]