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 85ae603c8e [NO ISSUE] Remove getknowledgebase usages (#6440)
85ae603c8e is described below
commit 85ae603c8e17b3f56ad9d5a01962c7bc69b77e6b
Author: Paolo Bizzarri <[email protected]>
AuthorDate: Thu Sep 4 08:13:00 2025 +0200
[NO ISSUE] Remove getknowledgebase usages (#6440)
* First set of removals
* More removals for getKnowledgeBase
* Inlined method and removed parameter
* Partial revert - maybe we have issues with serialization
---
.../java/org/drools/core/common/AgendaFactory.java | 3 ++-
.../drools/core/common/AgendaGroupsManager.java | 25 ++++++++++------------
.../org/drools/core/common/EntryPointFactory.java | 5 +++--
.../java/org/drools/core/common/ReteEvaluator.java | 4 +---
.../core/concurrent/AbstractGroupEvaluator.java | 10 ++++++---
.../core/concurrent/ParallelGroupEvaluator.java | 5 +++--
.../core/concurrent/SequentialGroupEvaluator.java | 5 +++--
.../drools/core/impl/ActivationsManagerImpl.java | 8 +++----
.../org/drools/core/phreak/PropagationEntry.java | 9 +++++---
.../kiesession/agenda/CompositeDefaultAgenda.java | 7 +++---
.../drools/kiesession/agenda/DefaultAgenda.java | 16 ++++++--------
.../kiesession/agenda/DefaultAgendaFactory.java | 9 ++++----
.../agenda/PartitionedDefaultAgenda.java | 6 ++++--
.../kiesession/entrypoints/NamedEntryPoint.java | 11 +++++-----
.../entrypoints/NamedEntryPointFactory.java | 9 ++++----
.../entrypoints/NamedEntryPointsManager.java | 6 +++---
.../session/StatefulKnowledgeSessionImpl.java | 6 +++---
.../java/org/drools/mvel/field/ClassFieldImpl.java | 9 --------
.../drools/reliability/core/ReliableAgenda.java | 5 +++--
.../reliability/core/ReliableAgendaFactory.java | 5 +++--
.../reliability/core/ReliableNamedEntryPoint.java | 5 +++--
.../core/ReliableNamedEntryPointFactory.java | 7 +++---
.../impl/sessions/RuleUnitExecutorImpl.java | 11 +++++++---
.../protobuf/FactHandleMarshallingTest.java | 5 +++--
.../compiler/integrationtests/IndexingTest.java | 2 +-
.../drools/mvel/integrationtests/QueryTest.java | 3 ++-
.../traits/core/common/TraitEntryPointFactory.java | 5 +++--
.../traits/core/common/TraitNamedEntryPoint.java | 4 +++-
28 files changed, 109 insertions(+), 96 deletions(-)
diff --git
a/drools-core/src/main/java/org/drools/core/common/AgendaFactory.java
b/drools-core/src/main/java/org/drools/core/common/AgendaFactory.java
index 51228d0a00..e7c598bed5 100644
--- a/drools-core/src/main/java/org/drools/core/common/AgendaFactory.java
+++ b/drools-core/src/main/java/org/drools/core/common/AgendaFactory.java
@@ -18,8 +18,9 @@
*/
package org.drools.core.common;
+import org.drools.core.impl.InternalRuleBase;
public interface AgendaFactory {
- InternalAgenda createAgenda(InternalWorkingMemory workingMemory);
+ InternalAgenda createAgenda(InternalRuleBase kieBase,
InternalWorkingMemory workingMemory);
}
diff --git
a/drools-core/src/main/java/org/drools/core/common/AgendaGroupsManager.java
b/drools-core/src/main/java/org/drools/core/common/AgendaGroupsManager.java
index 0bb3bcb9eb..a475e384c5 100644
--- a/drools-core/src/main/java/org/drools/core/common/AgendaGroupsManager.java
+++ b/drools-core/src/main/java/org/drools/core/common/AgendaGroupsManager.java
@@ -79,9 +79,8 @@ public interface AgendaGroupsManager extends Externalizable {
InternalAgendaGroup getMainAgendaGroup();
- static AgendaGroupsManager create(InternalWorkingMemory workingMemory) {
- InternalRuleBase kBase = workingMemory.getKnowledgeBase();
- return kBase.hasMultipleAgendaGroups() ||
!kBase.getProcesses().isEmpty() ? new StackedAgendaGroupsManager(workingMemory)
: new SimpleAgendaGroupsManager(workingMemory);
+ static AgendaGroupsManager create(InternalRuleBase kieBase,
InternalWorkingMemory workingMemory) {
+ return kieBase.hasMultipleAgendaGroups() ||
!kieBase.getProcesses().isEmpty() ? new StackedAgendaGroupsManager(kieBase,
workingMemory) : new SimpleAgendaGroupsManager(kieBase, workingMemory);
}
class SimpleAgendaGroupsManager implements AgendaGroupsManager {
@@ -90,9 +89,9 @@ public interface AgendaGroupsManager extends Externalizable {
public SimpleAgendaGroupsManager() { }
- public SimpleAgendaGroupsManager(ReteEvaluator reteEvaluator) {
+ public SimpleAgendaGroupsManager(InternalRuleBase kieBase,
ReteEvaluator reteEvaluator) {
this.reteEvaluator = reteEvaluator;
- this.mainAgendaGroup =
RuntimeComponentFactory.get().getAgendaGroupFactory().createAgendaGroup(InternalAgendaGroup.MAIN,
reteEvaluator.getKnowledgeBase());
+ this.mainAgendaGroup =
RuntimeComponentFactory.get().getAgendaGroupFactory().createAgendaGroup(InternalAgendaGroup.MAIN,
kieBase);
this.mainAgendaGroup.setReteEvaluator(reteEvaluator);
}
@@ -248,15 +247,19 @@ public interface AgendaGroupsManager extends
Externalizable {
private Deque<InternalAgendaGroup> focusStack = new ArrayDeque<>();
private InternalAgendaGroup mainAgendaGroup;
private InternalWorkingMemory workingMemory;
+ private InternalRuleBase kieBase;
public StackedAgendaGroupsManager() { }
- public StackedAgendaGroupsManager(InternalWorkingMemory workingMemory)
{
+ public StackedAgendaGroupsManager(InternalRuleBase kieBase,
InternalWorkingMemory workingMemory) {
this.agendaGroupFactory =
RuntimeComponentFactory.get().getAgendaGroupFactory();
+ this.kieBase = kieBase;
// stacked agenda groups are supported only for
InternalWorkingMemory
this.workingMemory = workingMemory;
if (this.mainAgendaGroup == null) {
- initMainAgendaGroup(workingMemory.getKnowledgeBase());
+ this.mainAgendaGroup = agendaGroupFactory.createAgendaGroup(
InternalAgendaGroup.MAIN, kieBase);
+ this.agendaGroups.put(
InternalAgendaGroup.MAIN, this.mainAgendaGroup );
+ this.focusStack.add( this.mainAgendaGroup );
}
this.mainAgendaGroup.setReteEvaluator( workingMemory );
}
@@ -266,12 +269,6 @@ public interface AgendaGroupsManager extends
Externalizable {
return mainAgendaGroup;
}
- private void initMainAgendaGroup(InternalRuleBase kBase) {
- this.mainAgendaGroup = agendaGroupFactory.createAgendaGroup(
InternalAgendaGroup.MAIN, kBase);
- this.agendaGroups.put( InternalAgendaGroup.MAIN,
this.mainAgendaGroup );
- this.focusStack.add( this.mainAgendaGroup );
- }
-
private boolean isEmpty() {
return focusStack.isEmpty();
}
@@ -401,7 +398,7 @@ public interface AgendaGroupsManager extends Externalizable
{
@Override
public InternalAgendaGroup getAgendaGroup(final String name) {
- return getAgendaGroup( name, workingMemory == null ? null :
workingMemory.getKnowledgeBase() );
+ return getAgendaGroup( name, workingMemory == null ? null :
kieBase);
}
@Override
diff --git
a/drools-core/src/main/java/org/drools/core/common/EntryPointFactory.java
b/drools-core/src/main/java/org/drools/core/common/EntryPointFactory.java
index 0c00b878ab..24a37acbc0 100644
--- a/drools-core/src/main/java/org/drools/core/common/EntryPointFactory.java
+++ b/drools-core/src/main/java/org/drools/core/common/EntryPointFactory.java
@@ -20,11 +20,12 @@ package org.drools.core.common;
import org.drools.base.rule.EntryPointId;
import org.drools.core.EntryPointsManager;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.EntryPointNode;
public interface EntryPointFactory {
- InternalWorkingMemoryEntryPoint createEntryPoint(EntryPointNode addedNode,
EntryPointId id, ReteEvaluator reteEvaluator);
+ InternalWorkingMemoryEntryPoint createEntryPoint(InternalRuleBase
ruleBase, ReteEvaluator reteEvaluator, EntryPointId id, EntryPointNode
addedNode);
- EntryPointsManager createEntryPointsManager(ReteEvaluator reteEvaluator);
+ EntryPointsManager createEntryPointsManager(InternalRuleBase ruleBase,
ReteEvaluator reteEvaluator);
}
diff --git
a/drools-core/src/main/java/org/drools/core/common/ReteEvaluator.java
b/drools-core/src/main/java/org/drools/core/common/ReteEvaluator.java
index 0df83ed40d..e74f0610a4 100644
--- a/drools-core/src/main/java/org/drools/core/common/ReteEvaluator.java
+++ b/drools-core/src/main/java/org/drools/core/common/ReteEvaluator.java
@@ -114,9 +114,7 @@ public interface ReteEvaluator extends ValueResolver {
SessionClock getSessionClock();
- default boolean isSequential() {
- return getKnowledgeBase().getRuleBaseConfiguration().isSequential();
- }
+ boolean isSequential();
default void startOperation(InternalOperationType operationType) { }
default void endOperation(InternalOperationType operationType) { }
diff --git
a/drools-core/src/main/java/org/drools/core/concurrent/AbstractGroupEvaluator.java
b/drools-core/src/main/java/org/drools/core/concurrent/AbstractGroupEvaluator.java
index 227a263ae5..50d91ed4f7 100644
---
a/drools-core/src/main/java/org/drools/core/concurrent/AbstractGroupEvaluator.java
+++
b/drools-core/src/main/java/org/drools/core/concurrent/AbstractGroupEvaluator.java
@@ -20,6 +20,7 @@ package org.drools.core.concurrent;
import org.drools.core.common.ActivationsManager;
import org.drools.core.common.InternalAgendaGroup;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.phreak.RuleAgendaItem;
import org.drools.core.rule.consequence.KnowledgeHelper;
import org.kie.api.runtime.rule.AgendaFilter;
@@ -33,9 +34,12 @@ public abstract class AbstractGroupEvaluator implements
GroupEvaluator {
private boolean haltEvaluation;
- public AbstractGroupEvaluator(ActivationsManager activationsManager) {
- this.activationsManager = activationsManager;
- this.sequential =
activationsManager.getReteEvaluator().getKnowledgeBase().getRuleBaseConfiguration().isSequential();
+ private InternalRuleBase ruleBase;
+
+ public AbstractGroupEvaluator(InternalRuleBase ruleBase,
ActivationsManager activationsManager) {
+ this.ruleBase = ruleBase;
+ this.activationsManager = activationsManager;
+ this.sequential = ruleBase.getRuleBaseConfiguration().isSequential();
this.knowledgeHelper = newKnowledgeHelper();
}
diff --git
a/drools-core/src/main/java/org/drools/core/concurrent/ParallelGroupEvaluator.java
b/drools-core/src/main/java/org/drools/core/concurrent/ParallelGroupEvaluator.java
index 8530a64873..e1250ff520 100644
---
a/drools-core/src/main/java/org/drools/core/concurrent/ParallelGroupEvaluator.java
+++
b/drools-core/src/main/java/org/drools/core/concurrent/ParallelGroupEvaluator.java
@@ -26,6 +26,7 @@ import java.util.stream.Collectors;
import org.drools.base.common.RuleBasePartitionId;
import org.drools.core.common.ActivationsManager;
import org.drools.core.common.InternalAgendaGroup;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.phreak.RuleAgendaItem;
import static org.drools.base.common.PartitionsManager.MIN_PARALLEL_THRESHOLD;
@@ -33,8 +34,8 @@ import static
org.drools.base.common.PartitionsManager.doOnForkJoinPool;
public class ParallelGroupEvaluator extends AbstractGroupEvaluator {
- public ParallelGroupEvaluator(ActivationsManager activationsManager ) {
- super(activationsManager);
+ public ParallelGroupEvaluator(InternalRuleBase ruleBase,
ActivationsManager activationsManager ) {
+ super(ruleBase, activationsManager);
}
protected void startEvaluation(InternalAgendaGroup group) {
diff --git
a/drools-core/src/main/java/org/drools/core/concurrent/SequentialGroupEvaluator.java
b/drools-core/src/main/java/org/drools/core/concurrent/SequentialGroupEvaluator.java
index e68fc8507c..e3b8125fc5 100644
---
a/drools-core/src/main/java/org/drools/core/concurrent/SequentialGroupEvaluator.java
+++
b/drools-core/src/main/java/org/drools/core/concurrent/SequentialGroupEvaluator.java
@@ -19,11 +19,12 @@
package org.drools.core.concurrent;
import org.drools.core.common.ActivationsManager;
+import org.drools.core.impl.InternalRuleBase;
public class SequentialGroupEvaluator extends AbstractGroupEvaluator {
- public SequentialGroupEvaluator(ActivationsManager activationsManager) {
- super(activationsManager);
+ public SequentialGroupEvaluator(InternalRuleBase ruleBase,
ActivationsManager activationsManager) {
+ super(ruleBase, activationsManager);
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/impl/ActivationsManagerImpl.java
b/drools-core/src/main/java/org/drools/core/impl/ActivationsManagerImpl.java
index f794e5594a..45aced1828 100644
--- a/drools-core/src/main/java/org/drools/core/impl/ActivationsManagerImpl.java
+++ b/drools-core/src/main/java/org/drools/core/impl/ActivationsManagerImpl.java
@@ -82,12 +82,12 @@ public class ActivationsManagerImpl implements
ActivationsManager {
private List<PropagationContext> expirationContexts;
- public ActivationsManagerImpl(ReteEvaluator reteEvaluator) {
+ public ActivationsManagerImpl(InternalRuleBase ruleBase, ReteEvaluator
reteEvaluator) {
this.reteEvaluator = reteEvaluator;
- this.agendaGroupsManager = new
AgendaGroupsManager.SimpleAgendaGroupsManager(reteEvaluator);
+ this.agendaGroupsManager = new
AgendaGroupsManager.SimpleAgendaGroupsManager(ruleBase, reteEvaluator);
this.propagationList = new SynchronizedPropagationList(reteEvaluator);
- this.groupEvaluator = new SequentialGroupEvaluator( this );
- if
(reteEvaluator.getKnowledgeBase().getRuleBaseConfiguration().getEventProcessingMode()
== EventProcessingOption.STREAM) {
+ this.groupEvaluator = new SequentialGroupEvaluator( ruleBase, this );
+ if (ruleBase.getRuleBaseConfiguration().getEventProcessingMode() ==
EventProcessingOption.STREAM) {
expirationContexts = new ArrayList<>();
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/PropagationEntry.java
b/drools-core/src/main/java/org/drools/core/phreak/PropagationEntry.java
index b15bd92ba3..2e2772fcdb 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/PropagationEntry.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/PropagationEntry.java
@@ -30,6 +30,7 @@ import org.drools.core.common.DefaultEventHandle;
import org.drools.core.common.InternalFactHandle;
import org.drools.core.common.PropagationContext;
import org.drools.core.common.ReteEvaluator;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.impl.WorkingMemoryReteExpireAction;
import org.drools.core.reteoo.ClassObjectTypeConf;
import org.drools.core.reteoo.CompositePartitionAwareObjectSinkAdapter;
@@ -156,9 +157,11 @@ public interface PropagationEntry {
private final InternalFactHandle handle;
private final PropagationContext pCtx;
private final boolean calledFromRHS;
+ private InternalRuleBase ruleBase;
- public ExecuteQuery(String queryName, DroolsQueryImpl queryObject,
InternalFactHandle handle, PropagationContext pCtx, boolean calledFromRHS) {
- this.queryName = queryName;
+ public ExecuteQuery(InternalRuleBase ruleBase, String queryName,
DroolsQueryImpl queryObject, InternalFactHandle handle, PropagationContext
pCtx, boolean calledFromRHS) {
+ this.ruleBase = ruleBase;
+ this.queryName = queryName;
this.queryObject = queryObject;
this.handle = handle;
this.pCtx = pCtx;
@@ -167,7 +170,7 @@ public interface PropagationEntry {
@Override
public void internalExecute(ReteEvaluator reteEvaluator ) {
- QueryTerminalNode[] tnodes =
reteEvaluator.getKnowledgeBase().getReteooBuilder().getTerminalNodesForQuery(
queryName );
+ QueryTerminalNode[] tnodes =
ruleBase.getReteooBuilder().getTerminalNodesForQuery( queryName );
if ( tnodes == null ) {
throw new RuntimeException( "Query '" + queryName + "' does
not exist" );
}
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/CompositeDefaultAgenda.java
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/CompositeDefaultAgenda.java
index 94f2661b74..77227c501d 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/CompositeDefaultAgenda.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/CompositeDefaultAgenda.java
@@ -70,11 +70,10 @@ public class CompositeDefaultAgenda implements
Externalizable, InternalAgenda {
public CompositeDefaultAgenda() { }
- public CompositeDefaultAgenda(InternalWorkingMemory workingMemory) {
- InternalRuleBase kBase = workingMemory.getKnowledgeBase();
- this.agendas = new
DefaultAgenda[kBase.getParallelEvaluationSlotsCount()];
+ public CompositeDefaultAgenda(InternalRuleBase kieBase,
InternalWorkingMemory workingMemory) {
+ this.agendas = new
DefaultAgenda[kieBase.getParallelEvaluationSlotsCount()];
for ( int i = 0; i < this.agendas.length; i++ ) {
- agendas[i] = new PartitionedDefaultAgenda(workingMemory,
executionStateMachine, i);
+ agendas[i] = new PartitionedDefaultAgenda(kieBase, workingMemory,
executionStateMachine, i);
}
// this composite agenda and the first partitioned one share the same
propagation list
this.propagationList = agendas[0].getPropagationList();
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgenda.java
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgenda.java
index c79a9482ae..359e623736 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgenda.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgenda.java
@@ -127,14 +127,14 @@ public class DefaultAgenda implements InternalAgenda {
// Constructors
// ------------------------------------------------------------
- public DefaultAgenda(InternalWorkingMemory workingMemory) {
- this(workingMemory, null);
+ public DefaultAgenda(InternalRuleBase kieBase, InternalWorkingMemory
workingMemory) {
+ this(kieBase, workingMemory, null);
}
- DefaultAgenda(InternalWorkingMemory workingMemory, ExecutionStateMachine
executionStateMachine) {
+ DefaultAgenda(InternalRuleBase kieBase, InternalWorkingMemory
workingMemory, ExecutionStateMachine executionStateMachine) {
this.workingMemory = workingMemory;
- this.agendaGroupsManager = AgendaGroupsManager.create(workingMemory);
+ this.agendaGroupsManager = AgendaGroupsManager.create(kieBase,
workingMemory);
this.activationGroups = new HashMap<>();
if (executionStateMachine != null) {
@@ -144,9 +144,7 @@ public class DefaultAgenda implements InternalAgenda {
new ConcurrentExecutionStateMachine() :
new UnsafeExecutionStateMachine();
}
-
- InternalRuleBase kBase = workingMemory.getKnowledgeBase();
- RuleBaseConfiguration ruleBaseConf = kBase.getRuleBaseConfiguration();
+ RuleBaseConfiguration ruleBaseConf =
kieBase.getRuleBaseConfiguration();
Object object = ComponentsFactory.createConsequenceExceptionHandler(
ruleBaseConf.getConsequenceExceptionHandler(),
ruleBaseConf.getClassLoader() );
if ( object instanceof ConsequenceExceptionHandler ) {
@@ -161,8 +159,8 @@ public class DefaultAgenda implements InternalAgenda {
// for fully parallel execution the parallelism is implemented at the
level of CompositeDefaultAgenda
this.groupEvaluator = ruleBaseConf.isParallelEvaluation() &&
!ruleBaseConf.isParallelExecution() ?
- new ParallelGroupEvaluator( this ) :
- new SequentialGroupEvaluator( this );
+ new ParallelGroupEvaluator( kieBase, this ) :
+ new SequentialGroupEvaluator( kieBase, this );
this.propagationList = createPropagationList();
}
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgendaFactory.java
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgendaFactory.java
index 3b1d170d88..9d3b038acd 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgendaFactory.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/DefaultAgendaFactory.java
@@ -22,6 +22,7 @@ package org.drools.kiesession.agenda;
import org.drools.core.common.AgendaFactory;
import org.drools.core.common.InternalAgenda;
import org.drools.core.common.InternalWorkingMemory;
+import org.drools.core.impl.InternalRuleBase;
import java.io.Serializable;
@@ -35,9 +36,9 @@ public class DefaultAgendaFactory implements AgendaFactory,
Serializable {
private DefaultAgendaFactory() { }
- public InternalAgenda createAgenda(InternalWorkingMemory workingMemory) {
- return
workingMemory.getKnowledgeBase().getRuleBaseConfiguration().isParallelExecution()
?
- new CompositeDefaultAgenda( workingMemory ) :
- new DefaultAgenda( workingMemory );
+ public InternalAgenda createAgenda(InternalRuleBase kieBase,
InternalWorkingMemory workingMemory) {
+ return kieBase.getRuleBaseConfiguration().isParallelExecution() ?
+ new CompositeDefaultAgenda( kieBase, workingMemory ) :
+ new DefaultAgenda(kieBase, workingMemory );
}
}
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/PartitionedDefaultAgenda.java
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/PartitionedDefaultAgenda.java
index 2cf3c1546e..fe3c63d704 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/agenda/PartitionedDefaultAgenda.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/agenda/PartitionedDefaultAgenda.java
@@ -21,16 +21,18 @@ package org.drools.kiesession.agenda;
import org.drools.core.common.InternalFactHandle;
import org.drools.core.common.InternalWorkingMemory;
import org.drools.core.common.PropagationContext;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.ObjectTypeNode;
public class PartitionedDefaultAgenda extends DefaultAgenda {
private final int partition;
- PartitionedDefaultAgenda(InternalWorkingMemory workingMemory,
+ PartitionedDefaultAgenda(InternalRuleBase kieBase,
+ InternalWorkingMemory workingMemory,
ExecutionStateMachine executionStateMachine,
int partition) {
- super(workingMemory, executionStateMachine);
+ super(kieBase, workingMemory, executionStateMachine);
this.partition = partition;
}
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPoint.java
b/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPoint.java
index f346c50ac2..b4f7b33ac4 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPoint.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPoint.java
@@ -103,13 +103,14 @@ public class NamedEntryPoint implements
InternalWorkingMemoryEntryPoint, Propert
reteEvaluator = null;
}
- public NamedEntryPoint(EntryPointId entryPoint,
- EntryPointNode entryPointNode,
- ReteEvaluator reteEvaluator) {
+ public NamedEntryPoint(InternalRuleBase ruleBase,
+ ReteEvaluator reteEvaluator,
+ EntryPointId entryPoint,
+ EntryPointNode entryPointNode) {
+ this.ruleBase = ruleBase;
+ this.reteEvaluator = reteEvaluator;
this.entryPoint = entryPoint;
this.entryPointNode = entryPointNode;
- this.reteEvaluator = reteEvaluator;
- this.ruleBase = this.reteEvaluator.getKnowledgeBase();
this.lock = reteEvaluator.getRuleSessionConfiguration().isThreadSafe()
? new ReentrantLock() : null;
this.handleFactory = this.reteEvaluator.getFactHandleFactory();
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointFactory.java
b/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointFactory.java
index cc4f9afb46..2d6f23e338 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointFactory.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointFactory.java
@@ -20,17 +20,18 @@ package org.drools.kiesession.entrypoints;
import org.drools.core.common.EntryPointFactory;
import org.drools.core.common.ReteEvaluator;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.EntryPointNode;
import org.drools.base.rule.EntryPointId;
public class NamedEntryPointFactory implements EntryPointFactory {
@Override
- public NamedEntryPoint createEntryPoint(EntryPointNode addedNode,
EntryPointId id, ReteEvaluator reteEvaluator) {
- return new NamedEntryPoint(id, addedNode, reteEvaluator);
+ public NamedEntryPoint createEntryPoint(InternalRuleBase ruleBase,
ReteEvaluator reteEvaluator, EntryPointId id, EntryPointNode addedNode) {
+ return new NamedEntryPoint(ruleBase, reteEvaluator, id, addedNode);
}
- public NamedEntryPointsManager createEntryPointsManager(ReteEvaluator
reteEvaluator) {
- return new NamedEntryPointsManager(reteEvaluator);
+ public NamedEntryPointsManager createEntryPointsManager(InternalRuleBase
ruleBase, ReteEvaluator reteEvaluator) {
+ return new NamedEntryPointsManager(ruleBase, reteEvaluator);
}
}
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointsManager.java
b/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointsManager.java
index 4e2aa04898..6bb91b8678 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointsManager.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/entrypoints/NamedEntryPointsManager.java
@@ -40,9 +40,9 @@ public class NamedEntryPointsManager implements
EntryPointsManager {
private final Map<String, WorkingMemoryEntryPoint> entryPoints = new
ConcurrentHashMap<>();
- public NamedEntryPointsManager(ReteEvaluator reteEvaluator) {
+ public NamedEntryPointsManager(InternalRuleBase ruleBase, ReteEvaluator
reteEvaluator) {
this.reteEvaluator = reteEvaluator;
- this.ruleBase = reteEvaluator.getKnowledgeBase();
+ this.ruleBase = ruleBase;
initDefaultEntryPoint();
updateEntryPointsCache();
}
@@ -60,7 +60,7 @@ public class NamedEntryPointsManager implements
EntryPointsManager {
}
private InternalWorkingMemoryEntryPoint
createNamedEntryPoint(EntryPointNode addedNode) {
- return
RuntimeComponentFactory.get().getEntryPointFactory().createEntryPoint(addedNode,
addedNode.getEntryPoint(), reteEvaluator);
+ return
RuntimeComponentFactory.get().getEntryPointFactory().createEntryPoint(ruleBase,
reteEvaluator, addedNode.getEntryPoint(), addedNode);
}
public void updateEntryPointsCache() {
diff --git
a/drools-kiesession/src/main/java/org/drools/kiesession/session/StatefulKnowledgeSessionImpl.java
b/drools-kiesession/src/main/java/org/drools/kiesession/session/StatefulKnowledgeSessionImpl.java
index 429f8ce719..841022347b 100644
---
a/drools-kiesession/src/main/java/org/drools/kiesession/session/StatefulKnowledgeSessionImpl.java
+++
b/drools-kiesession/src/main/java/org/drools/kiesession/session/StatefulKnowledgeSessionImpl.java
@@ -339,9 +339,9 @@ public class StatefulKnowledgeSessionImpl extends
AbstractRuntime
RuleBaseConfiguration conf = kBase.getRuleBaseConfiguration();
this.pctxFactory =
RuntimeComponentFactory.get().getPropagationContextFactory();
- this.agenda = RuntimeComponentFactory.get().getAgendaFactory( config
).createAgenda(this);
+ this.agenda = RuntimeComponentFactory.get().getAgendaFactory( config
).createAgenda(kBase, this);
- this.entryPointsManager = (NamedEntryPointsManager)
RuntimeComponentFactory.get().getEntryPointFactory().createEntryPointsManager(this);
+ this.entryPointsManager = (NamedEntryPointsManager)
RuntimeComponentFactory.get().getEntryPointFactory().createEntryPointsManager(kBase,
this);
this.sequential = conf.isSequential();
@@ -713,7 +713,7 @@ public class StatefulKnowledgeSessionImpl extends
AbstractRuntime
}
private QueryTerminalNode[] evalQuery(final String queryName, final
DroolsQueryImpl queryObject, final InternalFactHandle handle, final
PropagationContext pCtx, final boolean isCalledFromRHS) {
- PropagationEntry.ExecuteQuery executeQuery = new
PropagationEntry.ExecuteQuery( queryName, queryObject, handle, pCtx,
isCalledFromRHS);
+ PropagationEntry.ExecuteQuery executeQuery = new
PropagationEntry.ExecuteQuery( kBase, queryName, queryObject, handle, pCtx,
isCalledFromRHS);
addPropagation( executeQuery );
return executeQuery.getResult();
}
diff --git
a/drools-mvel/src/main/java/org/drools/mvel/field/ClassFieldImpl.java
b/drools-mvel/src/main/java/org/drools/mvel/field/ClassFieldImpl.java
index 4c7e10d6a6..393bad3c55 100644
--- a/drools-mvel/src/main/java/org/drools/mvel/field/ClassFieldImpl.java
+++ b/drools-mvel/src/main/java/org/drools/mvel/field/ClassFieldImpl.java
@@ -66,15 +66,6 @@ public class ClassFieldImpl implements FieldValue,
Externalizable {
return type;
}
- public Object resolve( InternalWorkingMemory workingMemory ) {
- try {
- type =
workingMemory.getKnowledgeBase().getRootClassLoader().loadClass( className );
- } catch (Exception e) {
-
- }
- return type;
- }
-
@Override
public int hashCode() {
return className.hashCode();
diff --git
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgenda.java
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgenda.java
index c22766a6e0..91282d81eb 100644
---
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgenda.java
+++
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgenda.java
@@ -20,6 +20,7 @@ package org.drools.reliability.core;
import org.drools.core.common.InternalWorkingMemory;
import org.drools.core.common.Storage;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.phreak.PropagationList;
import org.drools.kiesession.agenda.DefaultAgenda;
@@ -27,8 +28,8 @@ import static
org.drools.reliability.core.ReliablePropagationList.PROPAGATION_LI
public class ReliableAgenda extends DefaultAgenda {
- public ReliableAgenda(InternalWorkingMemory workingMemory) {
- super( workingMemory );
+ public ReliableAgenda(InternalRuleBase kieBase, InternalWorkingMemory
workingMemory) {
+ super( kieBase, workingMemory );
}
@Override
diff --git
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgendaFactory.java
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgendaFactory.java
index ec57a1e6c9..de808314cb 100644
---
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgendaFactory.java
+++
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableAgendaFactory.java
@@ -22,6 +22,7 @@ package org.drools.reliability.core;
import org.drools.core.common.AgendaFactory;
import org.drools.core.common.InternalAgenda;
import org.drools.core.common.InternalWorkingMemory;
+import org.drools.core.impl.InternalRuleBase;
import java.io.Serializable;
@@ -35,7 +36,7 @@ public class ReliableAgendaFactory implements AgendaFactory,
Serializable {
private ReliableAgendaFactory() { }
- public InternalAgenda createAgenda(InternalWorkingMemory workingMemory) {
- return new ReliableAgenda( workingMemory );
+ public InternalAgenda createAgenda(InternalRuleBase kieBase,
InternalWorkingMemory workingMemory) {
+ return new ReliableAgenda( kieBase, workingMemory );
}
}
diff --git
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPoint.java
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPoint.java
index cd06e45245..e4abe4e506 100644
---
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPoint.java
+++
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPoint.java
@@ -21,6 +21,7 @@ package org.drools.reliability.core;
import org.drools.core.RuleBaseConfiguration;
import org.drools.core.common.ObjectStore;
import org.drools.core.common.ReteEvaluator;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.EntryPointNode;
import org.drools.base.rule.EntryPointId;
import org.drools.kiesession.entrypoints.NamedEntryPoint;
@@ -28,8 +29,8 @@ import org.kie.api.runtime.conf.PersistedSessionOption;
public class ReliableNamedEntryPoint extends NamedEntryPoint {
- public ReliableNamedEntryPoint(EntryPointId entryPoint, EntryPointNode
entryPointNode, ReteEvaluator reteEvaluator) {
- super(entryPoint, entryPointNode, reteEvaluator);
+ public ReliableNamedEntryPoint(EntryPointId entryPoint, EntryPointNode
entryPointNode, InternalRuleBase ruleBase, ReteEvaluator reteEvaluator) {
+ super(ruleBase, reteEvaluator, entryPoint, entryPointNode);
}
@Override
diff --git
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPointFactory.java
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPointFactory.java
index 55bc141fa8..9c7d0b42c2 100644
---
a/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPointFactory.java
+++
b/drools-reliability/drools-reliability-core/src/main/java/org/drools/reliability/core/ReliableNamedEntryPointFactory.java
@@ -19,6 +19,7 @@
package org.drools.reliability.core;
import org.drools.core.common.ReteEvaluator;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.EntryPointNode;
import org.drools.base.rule.EntryPointId;
import org.drools.kiesession.entrypoints.NamedEntryPoint;
@@ -27,10 +28,10 @@ import
org.drools.kiesession.entrypoints.NamedEntryPointFactory;
public class ReliableNamedEntryPointFactory extends NamedEntryPointFactory {
@Override
- public NamedEntryPoint createEntryPoint(EntryPointNode addedNode,
EntryPointId id, ReteEvaluator reteEvaluator) {
+ public NamedEntryPoint createEntryPoint(InternalRuleBase ruleBase,
ReteEvaluator reteEvaluator, EntryPointId id, EntryPointNode addedNode) {
if
(!reteEvaluator.getSessionConfiguration().hasPersistedSessionOption()) {
- return super.createEntryPoint(addedNode, id, reteEvaluator);
+ return super.createEntryPoint(ruleBase, reteEvaluator, id,
addedNode);
}
- return new ReliableNamedEntryPoint(id, addedNode, reteEvaluator);
+ return new ReliableNamedEntryPoint(id, addedNode, ruleBase,
reteEvaluator);
}
}
diff --git
a/drools-ruleunits/drools-ruleunits-impl/src/main/java/org/drools/ruleunits/impl/sessions/RuleUnitExecutorImpl.java
b/drools-ruleunits/drools-ruleunits-impl/src/main/java/org/drools/ruleunits/impl/sessions/RuleUnitExecutorImpl.java
index 35dc82361c..076b34b6b4 100644
---
a/drools-ruleunits/drools-ruleunits-impl/src/main/java/org/drools/ruleunits/impl/sessions/RuleUnitExecutorImpl.java
+++
b/drools-ruleunits/drools-ruleunits-impl/src/main/java/org/drools/ruleunits/impl/sessions/RuleUnitExecutorImpl.java
@@ -130,8 +130,8 @@ public class RuleUnitExecutorImpl implements ReteEvaluator {
this.handleFactory = knowledgeBase.newFactHandleFactory();
this.nodeMemories = new ConcurrentNodeMemories(ruleBase);
- this.activationsManager = new ActivationsManagerImpl(this);
- this.entryPointsManager =
RuntimeComponentFactory.get().getEntryPointFactory().createEntryPointsManager(this);
+ this.activationsManager = new ActivationsManagerImpl(ruleBase, this);
+ this.entryPointsManager =
RuntimeComponentFactory.get().getEntryPointFactory().createEntryPointsManager(ruleBase,
this);
this.timerService = sessionConfiguration.createTimerService();
initInitialFact(ruleBase);
@@ -317,7 +317,7 @@ public class RuleUnitExecutorImpl implements ReteEvaluator {
final PropagationContext pCtx = new
PhreakPropagationContext(getNextPropagationIdCounter(),
PropagationContext.Type.INSERTION, null, null, handle,
getDefaultEntryPointId());
- PropagationEntry.ExecuteQuery executeQuery = new
PropagationEntry.ExecuteQuery( queryName, queryObject, handle, pCtx, false);
+ PropagationEntry.ExecuteQuery executeQuery = new
PropagationEntry.ExecuteQuery( ruleBase, queryName, queryObject, handle, pCtx,
false);
addPropagation( executeQuery );
TerminalNode[] terminalNodes = executeQuery.getResult();
@@ -354,6 +354,11 @@ public class RuleUnitExecutorImpl implements ReteEvaluator
{
return tmsEnabled;
}
+ @Override
+ public boolean isSequential() {
+ return ruleBase.getRuleBaseConfiguration().isSequential();
+ }
+
@Override
public KnowledgeHelper createKnowledgeHelper() {
return new RuleUnitKnowledgeHelper((DefaultKnowledgeHelper)
ReteEvaluator.super.createKnowledgeHelper(), this);
diff --git
a/drools-serialization-protobuf/src/test/java/org/drools/serialization/protobuf/FactHandleMarshallingTest.java
b/drools-serialization-protobuf/src/test/java/org/drools/serialization/protobuf/FactHandleMarshallingTest.java
index 208883221e..d5977a9104 100644
---
a/drools-serialization-protobuf/src/test/java/org/drools/serialization/protobuf/FactHandleMarshallingTest.java
+++
b/drools-serialization-protobuf/src/test/java/org/drools/serialization/protobuf/FactHandleMarshallingTest.java
@@ -27,6 +27,7 @@ import org.drools.core.common.DefaultFactHandle;
import org.drools.core.common.InternalFactHandle;
import org.drools.core.common.QueryElementFactHandle;
import org.drools.core.impl.EnvironmentFactory;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.impl.RuleBaseFactory;
import org.drools.core.marshalling.MarshallerReaderContext;
import org.drools.core.reteoo.CoreComponentFactory;
@@ -70,7 +71,7 @@ public class FactHandleMarshallingTest {
return KnowledgeBaseFactory.newKnowledgeBase( config );
}
- private InternalFactHandle
createEventFactHandle(StatefulKnowledgeSessionImpl wm, InternalKnowledgeBase
kBase) {
+ private InternalFactHandle
createEventFactHandle(StatefulKnowledgeSessionImpl wm, InternalRuleBase kBase) {
// EntryPointNode
Rete rete = kBase.getRete();
@@ -78,7 +79,7 @@ public class FactHandleMarshallingTest {
RuleBasePartitionId partionId = RuleBasePartitionId.MAIN_PARTITION;
EntryPointNode entryPointNode = nFacotry.buildEntryPointNode(1,
partionId, rete , EntryPointId.DEFAULT);
- WorkingMemoryEntryPoint wmEntryPoint = new NamedEntryPoint(
EntryPointId.DEFAULT, entryPointNode, wm);
+ WorkingMemoryEntryPoint wmEntryPoint = new NamedEntryPoint(kBase, wm,
EntryPointId.DEFAULT, entryPointNode);
DefaultEventHandle factHandle = new DefaultEventHandle(1, new
Person(), 0, (new Date()).getTime(), 0, wmEntryPoint);
diff --git
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/IndexingTest.java
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/IndexingTest.java
index ef5d638517..546b0c20fb 100644
---
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/IndexingTest.java
+++
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/IndexingTest.java
@@ -883,7 +883,7 @@ public class IndexingTest {
InternalWorkingMemory wm = (InternalWorkingMemory)
kbase.newKieSession();
try {
- final ObjectTypeNode node =
KieUtil.getObjectTypeNode(wm.getKnowledgeBase(), Person.class);
+ final ObjectTypeNode node = KieUtil.getObjectTypeNode(kbase,
Person.class);
assertThat(node).isNotNull();
final LeftInputAdapterNode liaNode = (LeftInputAdapterNode)
node.getObjectSinkPropagator().getSinks()[0];
final JoinNode j2 = (JoinNode)
liaNode.getSinkPropagator().getSinks()[0];
diff --git
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/QueryTest.java
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/QueryTest.java
index a88366f86d..15175cabe6 100644
---
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/QueryTest.java
+++
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/QueryTest.java
@@ -24,6 +24,7 @@ import org.drools.base.base.ObjectType;
import org.drools.commands.runtime.FlatQueryResults;
import org.drools.core.QueryResultsImpl;
import org.drools.core.common.InternalFactHandle;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.EntryPointNode;
import org.drools.core.reteoo.ObjectTypeNode;
import org.drools.core.reteoo.ReteDumper;
@@ -421,7 +422,7 @@ public class QueryTest {
StatefulKnowledgeSessionImpl sessionImpl =
(StatefulKnowledgeSessionImpl) ksession;
- Collection<EntryPointNode> entryPointNodes =
sessionImpl.getKnowledgeBase().getRete().getEntryPointNodes().values();
+ Collection<EntryPointNode> entryPointNodes =
((InternalRuleBase)kbase).getRete().getEntryPointNodes().values();
EntryPointNode defaultEntryPointNode = null;
for ( EntryPointNode epNode : entryPointNodes ) {
diff --git
a/drools-traits/src/main/java/org/drools/traits/core/common/TraitEntryPointFactory.java
b/drools-traits/src/main/java/org/drools/traits/core/common/TraitEntryPointFactory.java
index a552328844..65a0a283e8 100644
---
a/drools-traits/src/main/java/org/drools/traits/core/common/TraitEntryPointFactory.java
+++
b/drools-traits/src/main/java/org/drools/traits/core/common/TraitEntryPointFactory.java
@@ -21,6 +21,7 @@ package org.drools.traits.core.common;
import org.drools.kiesession.entrypoints.NamedEntryPoint;
import org.drools.core.common.EntryPointFactory;
import org.drools.core.common.ReteEvaluator;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.core.reteoo.EntryPointNode;
import org.drools.base.rule.EntryPointId;
import org.drools.kiesession.entrypoints.NamedEntryPointFactory;
@@ -28,7 +29,7 @@ import
org.drools.kiesession.entrypoints.NamedEntryPointFactory;
public class TraitEntryPointFactory extends NamedEntryPointFactory implements
EntryPointFactory {
@Override
- public NamedEntryPoint createEntryPoint(EntryPointNode addedNode,
EntryPointId id, ReteEvaluator reteEvaluator) {
- return new TraitNamedEntryPoint(id, addedNode, reteEvaluator);
+ public NamedEntryPoint createEntryPoint(InternalRuleBase ruleBase,
ReteEvaluator reteEvaluator, EntryPointId id, EntryPointNode addedNode) {
+ return new TraitNamedEntryPoint(id, addedNode, ruleBase,
reteEvaluator);
}
}
diff --git
a/drools-traits/src/main/java/org/drools/traits/core/common/TraitNamedEntryPoint.java
b/drools-traits/src/main/java/org/drools/traits/core/common/TraitNamedEntryPoint.java
index 3cd87a1665..4889d1179f 100644
---
a/drools-traits/src/main/java/org/drools/traits/core/common/TraitNamedEntryPoint.java
+++
b/drools-traits/src/main/java/org/drools/traits/core/common/TraitNamedEntryPoint.java
@@ -23,6 +23,7 @@ import org.drools.core.common.InternalFactHandle;
import org.drools.core.common.InternalWorkingMemoryActions;
import org.drools.core.common.PropagationContext;
import org.drools.core.common.ReteEvaluator;
+import org.drools.core.impl.InternalRuleBase;
import org.drools.base.definitions.rule.impl.RuleImpl;
import org.drools.base.factmodel.traits.TraitableBean;
import org.drools.core.reteoo.EntryPointNode;
@@ -39,8 +40,9 @@ public class TraitNamedEntryPoint extends NamedEntryPoint {
public TraitNamedEntryPoint(EntryPointId entryPoint,
EntryPointNode entryPointNode,
+ InternalRuleBase ruleBase,
ReteEvaluator reteEvaluator) {
- super(entryPoint, entryPointNode, reteEvaluator);
+ super(ruleBase, reteEvaluator, entryPoint, entryPointNode);
this.traitHelper = new TraitHelperImpl((InternalWorkingMemoryActions)
reteEvaluator, this);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]