Add clonning of values in fact logging to keep initial values - debug
This commit is contained in:
parent
998eb9980f
commit
760ae20f49
35 changed files with 82 additions and 43 deletions
|
|
@ -115,7 +115,7 @@ public class DroolsChtijbugRulesExecutionService {
|
||||||
Object result = null;
|
Object result = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
messageHandlerResolver.setClassLoader(chtijbugObjectRequest.getObjectRequest().getClass().getClassLoader());
|
||||||
RuleBasePackage ruleBasePackage = this.ruleBasePackages.get(kci.getResource().getContainerId());
|
RuleBasePackage ruleBasePackage = this.ruleBasePackages.get(kci.getResource().getContainerId());
|
||||||
if (ruleBasePackage != null) {
|
if (ruleBasePackage != null) {
|
||||||
Date startTime = new Date();
|
Date startTime = new Date();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtime.impl;
|
package org.chtijbug.drools.runtime.impl;
|
||||||
|
|
||||||
import com.rits.cloning.Cloner;
|
import com.rits.cloning.Cloner;
|
||||||
|
import com.rits.cloning.ObjenesisInstantiationStrategy;
|
||||||
import com.thoughtworks.xstream.XStream;
|
import com.thoughtworks.xstream.XStream;
|
||||||
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
|
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
|
||||||
import org.chtijbug.drools.common.reflection.ReflectionUtils;
|
import org.chtijbug.drools.common.reflection.ReflectionUtils;
|
||||||
|
|
@ -384,8 +385,13 @@ public class RuleBaseStatefulSession implements RuleBaseSession {
|
||||||
Object inputObjectClone;
|
Object inputObjectClone;
|
||||||
if (inputObject != null) {
|
if (inputObject != null) {
|
||||||
this.insertByReflection(inputObject);
|
this.insertByReflection(inputObject);
|
||||||
Cloner cloner = new Cloner();
|
inputObject.getClass().getClassLoader();
|
||||||
|
Thread currentThread = Thread.currentThread();
|
||||||
|
ClassLoader old = currentThread.getContextClassLoader();
|
||||||
|
currentThread.setContextClassLoader(inputObject.getClass().getClassLoader());
|
||||||
|
Cloner cloner = new Cloner(new ObjenesisInstantiationStrategy());
|
||||||
inputObjectClone=cloner.deepClone(inputObject);
|
inputObjectClone=cloner.deepClone(inputObject);
|
||||||
|
currentThread.setContextClassLoader(old);
|
||||||
inputDroolsObject = DroolsFactObjectFactory.createFactObject(inputObjectClone);
|
inputDroolsObject = DroolsFactObjectFactory.createFactObject(inputObjectClone);
|
||||||
}
|
}
|
||||||
if (processName != null && processName.length() > 0) {
|
if (processName != null && processName.length() > 0) {
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.github.kostaskougios</groupId>
|
<groupId>io.github.kostaskougios</groupId>
|
||||||
<artifactId>cloning</artifactId>
|
<artifactId>cloning</artifactId>
|
||||||
<version>1.10.3</version>
|
<version>1.O.O-chtijbug</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-io</groupId>
|
<groupId>commons-io</groupId>
|
||||||
|
|
|
||||||
|
|
@ -36,13 +36,17 @@ public class HistoryEvent implements Serializable {
|
||||||
private Long sessionId;
|
private Long sessionId;
|
||||||
private DroolsChtijbugException droolsChtijbugException;
|
private DroolsChtijbugException droolsChtijbugException;
|
||||||
private ArrayList<KnowledgeResource> knowledgeResources = new ArrayList<KnowledgeResource>();
|
private ArrayList<KnowledgeResource> knowledgeResources = new ArrayList<KnowledgeResource>();
|
||||||
|
private ClassLoader businessClassLoader;
|
||||||
/**
|
/**
|
||||||
* Mandatory for GWT Serialization
|
* Mandatory for GWT Serialization
|
||||||
*/
|
*/
|
||||||
public HistoryEvent() {
|
public HistoryEvent() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setBusinessClassLoader(ClassLoader businessClassLoader) {
|
||||||
|
this.businessClassLoader = businessClassLoader;
|
||||||
|
}
|
||||||
|
|
||||||
public HistoryEvent(Long eventID, Date dateEvent, TypeEvent typeEvent) {
|
public HistoryEvent(Long eventID, Date dateEvent, TypeEvent typeEvent) {
|
||||||
|
|
||||||
this.eventID = eventID;
|
this.eventID = eventID;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.chtijbug.drools.runtimeevent;
|
package org.chtijbug.drools.runtimeevent;
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
|
|
||||||
|
|
@ -8,9 +9,10 @@ import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
*/
|
*/
|
||||||
public interface AbstractMemoryEventHandlerStrategy {
|
public interface AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
public abstract void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext);
|
public abstract void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner);
|
||||||
|
|
||||||
public abstract boolean isEventSupported(HistoryEvent historyEvent);
|
public abstract boolean isEventSupported(HistoryEvent historyEvent);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package org.chtijbug.drools.runtimeevent;
|
package org.chtijbug.drools.runtimeevent;
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
|
import com.rits.cloning.ObjenesisInstantiationStrategy;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.runtimeevent.impl.fact.*;
|
import org.chtijbug.drools.runtimeevent.impl.fact.*;
|
||||||
|
|
@ -39,6 +41,8 @@ public class MessageHandlerResolver {
|
||||||
@Resource
|
@Resource
|
||||||
private List<AbstractMemoryEventHandlerStrategy> allMemoryStrategies = new ArrayList<>();
|
private List<AbstractMemoryEventHandlerStrategy> allMemoryStrategies = new ArrayList<>();
|
||||||
|
|
||||||
|
private ClassLoader classLoader;
|
||||||
|
|
||||||
public MessageHandlerResolver() {
|
public MessageHandlerResolver() {
|
||||||
allMemoryStrategies.add(new DeleteFactEventStrategy());
|
allMemoryStrategies.add(new DeleteFactEventStrategy());
|
||||||
allMemoryStrategies.add(new InsertedByRelectionFactEndEventStrategy());
|
allMemoryStrategies.add(new InsertedByRelectionFactEndEventStrategy());
|
||||||
|
|
@ -68,16 +72,19 @@ public class MessageHandlerResolver {
|
||||||
allMemoryStrategies.add(new AfterRuleflowGroupDeactivatedEventStrategy());
|
allMemoryStrategies.add(new AfterRuleflowGroupDeactivatedEventStrategy());
|
||||||
allMemoryStrategies.add(new BeforeRuleFiredEventStrategy());
|
allMemoryStrategies.add(new BeforeRuleFiredEventStrategy());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SessionContext getSessionFromHistoryEvent(List<HistoryEvent> historyEvents) {
|
public SessionContext getSessionFromHistoryEvent(List<HistoryEvent> historyEvents) {
|
||||||
|
Thread currentThread = Thread.currentThread();
|
||||||
|
ClassLoader old = currentThread.getContextClassLoader();
|
||||||
|
currentThread.setContextClassLoader(classLoader);
|
||||||
SessionContext sessionContext = new SessionContext();
|
SessionContext sessionContext = new SessionContext();
|
||||||
|
Cloner cloner=new Cloner(new ObjenesisInstantiationStrategy());
|
||||||
for (HistoryEvent historyEvent : historyEvents) {
|
for (HistoryEvent historyEvent : historyEvents) {
|
||||||
AbstractMemoryEventHandlerStrategy strategy = this.resolveMessageHandlerMemory(historyEvent);
|
AbstractMemoryEventHandlerStrategy strategy = this.resolveMessageHandlerMemory(historyEvent);
|
||||||
if (strategy != null) {
|
if (strategy != null) {
|
||||||
try {
|
try {
|
||||||
strategy.handleMessageInternally(historyEvent, sessionContext);
|
strategy.handleMessageInternally(historyEvent, sessionContext,cloner);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
logger.error("MessageHandle for class" + historyEvent.getClass().toString(), historyEvent, e);
|
logger.error("MessageHandle for class" + historyEvent.getClass().toString(), historyEvent, e);
|
||||||
}
|
}
|
||||||
|
|
@ -85,6 +92,7 @@ public class MessageHandlerResolver {
|
||||||
}
|
}
|
||||||
|
|
||||||
sessionContext.getRuleflowGroups().clear();
|
sessionContext.getRuleflowGroups().clear();
|
||||||
|
currentThread.setContextClassLoader(old);
|
||||||
return sessionContext;
|
return sessionContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,4 +103,8 @@ public class MessageHandlerResolver {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setClassLoader(ClassLoader classLoader) {
|
||||||
|
this.classLoader=classLoader;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,14 +28,12 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
|
|
||||||
public class DeleteFactEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class DeleteFactEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext,Cloner cloner) {
|
||||||
DeletedFactHistoryEvent deletedFactHistoryEvent = (DeletedFactHistoryEvent) historyEvent;
|
DeletedFactHistoryEvent deletedFactHistoryEvent = (DeletedFactHistoryEvent) historyEvent;
|
||||||
Fact fact = new Fact();
|
Fact fact = new Fact();
|
||||||
fact.setFullClassName(deletedFactHistoryEvent.getDeletedObject().getFullClassName());
|
fact.setFullClassName(deletedFactHistoryEvent.getDeletedObject().getFullClassName());
|
||||||
fact.setObjectVersion(deletedFactHistoryEvent.getDeletedObject().getObjectVersion());
|
fact.setObjectVersion(deletedFactHistoryEvent.getDeletedObject().getObjectVersion());
|
||||||
Cloner cloner = new Cloner();
|
|
||||||
fact.setRealFact(cloner.deepClone(deletedFactHistoryEvent.getDeletedObject().getRealObject()));
|
fact.setRealFact(cloner.deepClone(deletedFactHistoryEvent.getDeletedObject().getRealObject()));
|
||||||
fact.setModificationDate(deletedFactHistoryEvent.getDateEvent());
|
fact.setModificationDate(deletedFactHistoryEvent.getDateEvent());
|
||||||
fact.setFactType(FactType.DELETED);
|
fact.setFactType(FactType.DELETED);
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.fact;
|
package org.chtijbug.drools.runtimeevent.impl.fact;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.fact.InsertedByReflectionFactEndHistoryEvent;
|
import org.chtijbug.drools.entity.history.fact.InsertedByReflectionFactEndHistoryEvent;
|
||||||
|
|
@ -26,7 +27,7 @@ public class InsertedByRelectionFactEndEventStrategy implements AbstractMemoryEv
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.fact;
|
package org.chtijbug.drools.runtimeevent.impl.fact;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.fact.InsertedByReflectionFactStartHistoryEvent;
|
import org.chtijbug.drools.entity.history.fact.InsertedByReflectionFactStartHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
|
|
||||||
public class InsertedByRelectionFactStartEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class InsertedByRelectionFactStartEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,11 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class InsertedFactEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class InsertedFactEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext,Cloner cloner) {
|
||||||
InsertedFactHistoryEvent insertedFactHistoryEvent = (InsertedFactHistoryEvent) historyEvent;
|
InsertedFactHistoryEvent insertedFactHistoryEvent = (InsertedFactHistoryEvent) historyEvent;
|
||||||
Fact fact = new Fact();
|
Fact fact = new Fact();
|
||||||
fact.setFullClassName(insertedFactHistoryEvent.getInsertedObject().getFullClassName());
|
fact.setFullClassName(insertedFactHistoryEvent.getInsertedObject().getFullClassName());
|
||||||
fact.setObjectVersion(insertedFactHistoryEvent.getInsertedObject().getObjectVersion());
|
fact.setObjectVersion(insertedFactHistoryEvent.getInsertedObject().getObjectVersion());
|
||||||
Cloner cloner = new Cloner();
|
|
||||||
fact.setRealFact(cloner.deepClone(insertedFactHistoryEvent.getInsertedObject().getRealObject()));
|
fact.setRealFact(cloner.deepClone(insertedFactHistoryEvent.getInsertedObject().getRealObject()));
|
||||||
fact.setModificationDate(insertedFactHistoryEvent.getDateEvent());
|
fact.setModificationDate(insertedFactHistoryEvent.getDateEvent());
|
||||||
fact.setFactType(FactType.INSERTED);
|
fact.setFactType(FactType.INSERTED);
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,8 @@ public class UpdatedFactEventStrategy implements AbstractMemoryEventHandlerStrat
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext,Cloner cloner) {
|
||||||
UpdatedFactHistoryEvent updatedFactHistoryEvent = (UpdatedFactHistoryEvent) historyEvent;
|
UpdatedFactHistoryEvent updatedFactHistoryEvent = (UpdatedFactHistoryEvent) historyEvent;
|
||||||
Cloner cloner=new Cloner();
|
|
||||||
Fact factOldValue = new Fact();
|
Fact factOldValue = new Fact();
|
||||||
factOldValue.setFullClassName(updatedFactHistoryEvent.getObjectOldValue().getFullClassName());
|
factOldValue.setFullClassName(updatedFactHistoryEvent.getObjectOldValue().getFullClassName());
|
||||||
factOldValue.setObjectVersion(updatedFactHistoryEvent.getObjectOldValue().getObjectVersion());
|
factOldValue.setObjectVersion(updatedFactHistoryEvent.getObjectOldValue().getObjectVersion());
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionCreatedEvent;
|
import org.chtijbug.drools.entity.history.session.SessionCreatedEvent;
|
||||||
|
|
@ -29,7 +30,7 @@ public class KnowledgeSessionCreateEventStrategy implements AbstractMemoryEventH
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
SessionExecution sessionExecution = new SessionExecution();
|
SessionExecution sessionExecution = new SessionExecution();
|
||||||
SessionCreatedEvent sessionCreatedEvent = (SessionCreatedEvent) historyEvent;
|
SessionCreatedEvent sessionCreatedEvent = (SessionCreatedEvent) historyEvent;
|
||||||
sessionExecution.setProcessingStartDate(new Date());
|
sessionExecution.setProcessingStartDate(new Date());
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionDisposedEvent;
|
import org.chtijbug.drools.entity.history.session.SessionDisposedEvent;
|
||||||
|
|
@ -29,7 +30,7 @@ public class KnowledgeSessionDisposeEventStrategy implements AbstractMemoryEvent
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
SessionDisposedEvent sessionDisposedEvent = (SessionDisposedEvent) historyEvent;
|
SessionDisposedEvent sessionDisposedEvent = (SessionDisposedEvent) historyEvent;
|
||||||
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
||||||
existingSessionRutime.setEndDate(sessionDisposedEvent.getDateEvent());
|
existingSessionRutime.setEndDate(sessionDisposedEvent.getDateEvent());
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext,Cloner cloner) {
|
||||||
SessionFireAllRulesAndStartProcess sessionFireAllRulesAndStartProcess = (SessionFireAllRulesAndStartProcess) historyEvent;
|
SessionFireAllRulesAndStartProcess sessionFireAllRulesAndStartProcess = (SessionFireAllRulesAndStartProcess) historyEvent;
|
||||||
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
||||||
|
|
||||||
|
|
@ -40,7 +40,6 @@ public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements
|
||||||
inputFact.setEventid(sessionContext.getSessionExecution().getStartEventID());
|
inputFact.setEventid(sessionContext.getSessionExecution().getStartEventID());
|
||||||
inputFact.setFactType(FactType.INPUTDATA);
|
inputFact.setFactType(FactType.INPUTDATA);
|
||||||
inputFact.setFullClassName(inputObject.getFullClassName());
|
inputFact.setFullClassName(inputObject.getFullClassName());
|
||||||
Cloner cloner=new Cloner();
|
|
||||||
inputFact.setRealFact(cloner.deepClone(inputObject.getRealObject()));
|
inputFact.setRealFact(cloner.deepClone(inputObject.getRealObject()));
|
||||||
inputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
|
inputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
|
||||||
inputFact.setObjectVersion(inputObject.getObjectVersion());
|
inputFact.setObjectVersion(inputObject.getObjectVersion());
|
||||||
|
|
@ -52,7 +51,6 @@ public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements
|
||||||
outputFact.setEventid(sessionContext.getSessionExecution().getStopEventID());
|
outputFact.setEventid(sessionContext.getSessionExecution().getStopEventID());
|
||||||
outputFact.setFactType(FactType.OUTPUTDATA);
|
outputFact.setFactType(FactType.OUTPUTDATA);
|
||||||
outputFact.setFullClassName(outputObject.getFullClassName());
|
outputFact.setFullClassName(outputObject.getFullClassName());
|
||||||
Cloner cloner=new Cloner();
|
|
||||||
outputFact.setRealFact(cloner.deepClone(outputObject.getRealObject()));
|
outputFact.setRealFact(cloner.deepClone(outputObject.getRealObject()));
|
||||||
outputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
|
outputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
|
||||||
outputFact.setObjectVersion(outputObject.getObjectVersion());
|
outputFact.setObjectVersion(outputObject.getObjectVersion());
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionFireAllRulesBeginEvent;
|
import org.chtijbug.drools.entity.history.session.SessionFireAllRulesBeginEvent;
|
||||||
|
|
@ -27,7 +28,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class KnowledgeSessionFireAllRulesBeginEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class KnowledgeSessionFireAllRulesBeginEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
SessionFireAllRulesBeginEvent sessionFireAllRulesBeginEvent = (SessionFireAllRulesBeginEvent) historyEvent;
|
SessionFireAllRulesBeginEvent sessionFireAllRulesBeginEvent = (SessionFireAllRulesBeginEvent) historyEvent;
|
||||||
|
|
||||||
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionFireAllRulesEndEvent;
|
import org.chtijbug.drools.entity.history.session.SessionFireAllRulesEndEvent;
|
||||||
|
|
@ -26,7 +27,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class KnowledgeSessionFireAllRulesEndEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class KnowledgeSessionFireAllRulesEndEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
SessionFireAllRulesEndEvent sessionFireAllRulesEndEvent = (SessionFireAllRulesEndEvent) historyEvent;
|
SessionFireAllRulesEndEvent sessionFireAllRulesEndEvent = (SessionFireAllRulesEndEvent) historyEvent;
|
||||||
FireAllRulesExecution fireAllRulesExecution = sessionContext.getFireAllRulesExecution();
|
FireAllRulesExecution fireAllRulesExecution = sessionContext.getFireAllRulesExecution();
|
||||||
fireAllRulesExecution.setStopEventID(sessionFireAllRulesEndEvent.getEventID());
|
fireAllRulesExecution.setStopEventID(sessionFireAllRulesEndEvent.getEventID());
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionFireAllRulesMaxNumberReachedEvent;
|
import org.chtijbug.drools.entity.history.session.SessionFireAllRulesMaxNumberReachedEvent;
|
||||||
|
|
@ -25,7 +26,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
|
|
||||||
public class KnowledgeSessionFireAllRulesMaxRulesEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class KnowledgeSessionFireAllRulesMaxRulesEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
SessionFireAllRulesMaxNumberReachedEvent sessionFireAllRulesMaxNumberReachedEvent = (SessionFireAllRulesMaxNumberReachedEvent) historyEvent;
|
SessionFireAllRulesMaxNumberReachedEvent sessionFireAllRulesMaxNumberReachedEvent = (SessionFireAllRulesMaxNumberReachedEvent) historyEvent;
|
||||||
FireAllRulesExecution fireAllRulesExecution = sessionContext.getFireAllRulesExecution();
|
FireAllRulesExecution fireAllRulesExecution = sessionContext.getFireAllRulesExecution();
|
||||||
fireAllRulesExecution.setMaxRulesEventID(sessionFireAllRulesMaxNumberReachedEvent.getEventID());
|
fireAllRulesExecution.setMaxRulesEventID(sessionFireAllRulesMaxNumberReachedEvent.getEventID());
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionStartProcessBeginEvent;
|
import org.chtijbug.drools.entity.history.session.SessionStartProcessBeginEvent;
|
||||||
|
|
@ -23,7 +24,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
|
|
||||||
public class KnowledgeSessionProcessBeginEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class KnowledgeSessionProcessBeginEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.session.SessionStartProcessEndEvent;
|
import org.chtijbug.drools.entity.history.session.SessionStartProcessEndEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class KnowledgeSessionProcessEndEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class KnowledgeSessionProcessEndEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.DroolsNodeType;
|
import org.chtijbug.drools.entity.DroolsNodeType;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
|
|
@ -28,7 +29,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterNodeInstanceTriggeredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterNodeInstanceTriggeredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
AfterNodeInstanceTriggeredHistoryEvent afterNodeInstanceTriggeredHistoryEvent = (AfterNodeInstanceTriggeredHistoryEvent) historyEvent;
|
AfterNodeInstanceTriggeredHistoryEvent afterNodeInstanceTriggeredHistoryEvent = (AfterNodeInstanceTriggeredHistoryEvent) historyEvent;
|
||||||
if (afterNodeInstanceTriggeredHistoryEvent.getNodeInstance().getNode().getNodeType() == DroolsNodeType.RuleNode) {
|
if (afterNodeInstanceTriggeredHistoryEvent.getNodeInstance().getNode().getNodeType() == DroolsNodeType.RuleNode) {
|
||||||
String ruleFLowName = afterNodeInstanceTriggeredHistoryEvent.getNodeInstance().getNode().getRuleflowGroupName();
|
String ruleFLowName = afterNodeInstanceTriggeredHistoryEvent.getNodeInstance().getNode().getRuleflowGroupName();
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.DroolsNodeType;
|
import org.chtijbug.drools.entity.DroolsNodeType;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
|
|
@ -27,7 +28,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterNodeLeftEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterNodeLeftEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
AfterNodeLeftHistoryEvent afterNodeLeftHistoryEvent = (AfterNodeLeftHistoryEvent) historyEvent;
|
AfterNodeLeftHistoryEvent afterNodeLeftHistoryEvent = (AfterNodeLeftHistoryEvent) historyEvent;
|
||||||
if (afterNodeLeftHistoryEvent.getNodeInstance().getNode().getNodeType() == DroolsNodeType.RuleNode) {
|
if (afterNodeLeftHistoryEvent.getNodeInstance().getNode().getNodeType() == DroolsNodeType.RuleNode) {
|
||||||
String ruleFlowName = afterNodeLeftHistoryEvent.getNodeInstance().getNode().getRuleflowGroupName();
|
String ruleFlowName = afterNodeLeftHistoryEvent.getNodeInstance().getNode().getRuleflowGroupName();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.AfterProcessEndHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.AfterProcessEndHistoryEvent;
|
||||||
|
|
@ -26,7 +27,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterProcessEndHistoryEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterProcessEndHistoryEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
AfterProcessEndHistoryEvent afterProcessEndHistoryEvent = (AfterProcessEndHistoryEvent) historyEvent;
|
AfterProcessEndHistoryEvent afterProcessEndHistoryEvent = (AfterProcessEndHistoryEvent) historyEvent;
|
||||||
|
|
||||||
ProcessExecution processExecution = sessionContext.getProcessExecution();
|
ProcessExecution processExecution = sessionContext.getProcessExecution();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.AfterProcessStartHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.AfterProcessStartHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterProcessStartEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterProcessStartEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.AfterVariableChangeChangedHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.AfterVariableChangeChangedHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterVariableChangeEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterVariableChangeEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.BeforeNodeInstanceTriggeredHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.BeforeNodeInstanceTriggeredHistoryEvent;
|
||||||
|
|
@ -23,7 +24,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class BeforeNodeInstanceTriggeredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class BeforeNodeInstanceTriggeredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.BeforeNodeLeftHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.BeforeNodeLeftHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class BeforeNodeLeftEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class BeforeNodeLeftEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.BeforeProcessEndHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.BeforeProcessEndHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class BeforeProcessEndEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class BeforeProcessEndEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.BeforeProcessStartHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.BeforeProcessStartHistoryEvent;
|
||||||
|
|
@ -26,7 +27,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class BeforeProcessStartEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class BeforeProcessStartEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
BeforeProcessStartHistoryEvent beforeProcessStartHistoryEvent = (BeforeProcessStartHistoryEvent) historyEvent;
|
BeforeProcessStartHistoryEvent beforeProcessStartHistoryEvent = (BeforeProcessStartHistoryEvent) historyEvent;
|
||||||
|
|
||||||
ProcessExecution processExecution = new ProcessExecution();
|
ProcessExecution processExecution = new ProcessExecution();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.process;
|
package org.chtijbug.drools.runtimeevent.impl.process;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.process.BeforeVariableChangeChangedHistoryEvent;
|
import org.chtijbug.drools.entity.history.process.BeforeVariableChangeChangedHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class BeforeVariableChangeEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class BeforeVariableChangeEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.rule;
|
package org.chtijbug.drools.runtimeevent.impl.rule;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.rule.AfterRuleFiredHistoryEvent;
|
import org.chtijbug.drools.entity.history.rule.AfterRuleFiredHistoryEvent;
|
||||||
|
|
@ -25,7 +26,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterRuleFiredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterRuleFiredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
AfterRuleFiredHistoryEvent afterRuleFiredHistoryEvent = (AfterRuleFiredHistoryEvent) historyEvent;
|
AfterRuleFiredHistoryEvent afterRuleFiredHistoryEvent = (AfterRuleFiredHistoryEvent) historyEvent;
|
||||||
|
|
||||||
RuleExecution ruleExecution = sessionContext.getRuleExecution();
|
RuleExecution ruleExecution = sessionContext.getRuleExecution();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.rule;
|
package org.chtijbug.drools.runtimeevent.impl.rule;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.rule.AfterRuleFlowActivatedHistoryEvent;
|
import org.chtijbug.drools.entity.history.rule.AfterRuleFlowActivatedHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterRuleflowGroupActivatedEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterRuleflowGroupActivatedEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
package org.chtijbug.drools.runtimeevent.impl.rule;
|
package org.chtijbug.drools.runtimeevent.impl.rule;
|
||||||
|
|
||||||
|
|
||||||
|
import com.rits.cloning.Cloner;
|
||||||
import org.chtijbug.drools.SessionContext;
|
import org.chtijbug.drools.SessionContext;
|
||||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||||
import org.chtijbug.drools.entity.history.rule.AfterRuleFlowDeactivatedHistoryEvent;
|
import org.chtijbug.drools.entity.history.rule.AfterRuleFlowDeactivatedHistoryEvent;
|
||||||
|
|
@ -24,7 +25,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class AfterRuleflowGroupDeactivatedEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class AfterRuleflowGroupDeactivatedEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext, Cloner cloner) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ import org.chtijbug.drools.runtimeevent.AbstractMemoryEventHandlerStrategy;
|
||||||
public class BeforeRuleFiredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
public class BeforeRuleFiredEventStrategy implements AbstractMemoryEventHandlerStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext,Cloner cloner) {
|
||||||
BeforeRuleFiredHistoryEvent beforeRuleFiredHistoryEvent = (BeforeRuleFiredHistoryEvent) historyEvent;
|
BeforeRuleFiredHistoryEvent beforeRuleFiredHistoryEvent = (BeforeRuleFiredHistoryEvent) historyEvent;
|
||||||
RuleExecution ruleExecution = new RuleExecution();
|
RuleExecution ruleExecution = new RuleExecution();
|
||||||
sessionContext.setRuleExecution(ruleExecution);
|
sessionContext.setRuleExecution(ruleExecution);
|
||||||
|
|
@ -50,7 +50,6 @@ public class BeforeRuleFiredEventStrategy implements AbstractMemoryEventHandlerS
|
||||||
ruleExecution.setRuleName(beforeRuleFiredHistoryEvent.getRule().getRuleName());
|
ruleExecution.setRuleName(beforeRuleFiredHistoryEvent.getRule().getRuleName());
|
||||||
ruleExecution.setPackageName(beforeRuleFiredHistoryEvent.getRule().getRulePackageName());
|
ruleExecution.setPackageName(beforeRuleFiredHistoryEvent.getRule().getRulePackageName());
|
||||||
ruleExecution.setStartEventID(beforeRuleFiredHistoryEvent.getEventID());
|
ruleExecution.setStartEventID(beforeRuleFiredHistoryEvent.getEventID());
|
||||||
Cloner cloner = new Cloner();
|
|
||||||
for (DroolsFactObject droolsFactObject : beforeRuleFiredHistoryEvent.getWhenObjects()) {
|
for (DroolsFactObject droolsFactObject : beforeRuleFiredHistoryEvent.getWhenObjects()) {
|
||||||
if (droolsFactObject != null) {
|
if (droolsFactObject != null) {
|
||||||
Fact fact = new Fact();
|
Fact fact = new Fact();
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.google.guava:guava:13.0.1" level="project" />
|
<orderEntry type="library" name="Maven: com.google.guava:guava:13.0.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.1" level="project" />
|
<orderEntry type="library" name="Maven: commons-io:commons-io:2.1" level="project" />
|
||||||
<orderEntry type="module" module-name="cloning" />
|
<orderEntry type="library" name="Maven: io.github.kostaskougios:cloning:1.10.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.objenesis:objenesis:3.0.1" level="project" />
|
<orderEntry type="library" name="Maven: org.objenesis:objenesis:3.0.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.3" level="project" />
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.3" level="project" />
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.3" level="project" />
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:2.1" level="project" />
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:2.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.google.guava:guava:13.0.1" level="project" />
|
<orderEntry type="library" name="Maven: com.google.guava:guava:13.0.1" level="project" />
|
||||||
<orderEntry type="module" module-name="cloning" />
|
<orderEntry type="library" name="Maven: io.github.kostaskougios:cloning:1.10.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.objenesis:objenesis:3.0.1" level="project" />
|
<orderEntry type="library" name="Maven: org.objenesis:objenesis:3.0.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.3" level="project" />
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.3" level="project" />
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.3" level="project" />
|
||||||
|
|
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue