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]


Reply via email to