Réalisation indexer en cours
This commit is contained in:
parent
6f81acfb4c
commit
7798189414
16 changed files with 440 additions and 36 deletions
|
|
@ -1,14 +1,18 @@
|
|||
package org.chtijbug.drools.indexer.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.chtijbug.drools.SessionContext;
|
||||
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionAction;
|
||||
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionPersistence;
|
||||
import org.chtijbug.drools.indexer.persistence.model.EventType;
|
||||
import org.chtijbug.drools.indexer.persistence.repository.BusinessTransactionActionRepository;
|
||||
import org.chtijbug.drools.indexer.persistence.repository.BusinessTransactionPersistenceRepository;
|
||||
import org.chtijbug.drools.logging.SessionExecution;
|
||||
import org.chtijbug.drools.logging.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
|
||||
@Service("storeService")
|
||||
public class StoreLoggingService {
|
||||
|
|
@ -16,8 +20,10 @@ public class StoreLoggingService {
|
|||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
@Autowired
|
||||
private BusinessTransactionPersistenceRepository repository;
|
||||
private BusinessTransactionPersistenceRepository transactionRepository;
|
||||
|
||||
@Autowired
|
||||
private BusinessTransactionActionRepository actionRepository;
|
||||
|
||||
public void store(String fileName, String fileContent) {
|
||||
if (fileName!= null) {
|
||||
|
|
@ -40,16 +46,116 @@ public class StoreLoggingService {
|
|||
item.setSecond(second);
|
||||
item.setMillis(millis);
|
||||
item.setTransactionId(id);
|
||||
item.setId(UUID.randomUUID().toString());
|
||||
long ii=1;
|
||||
try {
|
||||
SessionExecution object = mapper.readValue(fileContent,SessionExecution.class);
|
||||
SessionContext sessionContext = mapper.readValue(fileContent,SessionContext.class);
|
||||
item.setContainerId(sessionContext.getContainerId());
|
||||
item.setGroupID(sessionContext.getGroupID());
|
||||
item.setArtefactID(sessionContext.getArtefactID());
|
||||
item.setVersion(sessionContext.getVersion());
|
||||
|
||||
item.setContent(object);
|
||||
item.setServerName(sessionContext.getServerName());
|
||||
Map<Long, BusinessTransactionAction> actions = new HashMap<>();
|
||||
SessionExecution sessionExecution = sessionContext.getSessionExecution();
|
||||
BusinessTransactionAction businessTransactionoutput=null;
|
||||
for (Fact fact : sessionExecution.getFacts()){
|
||||
BusinessTransactionAction businessTransactionAction = new BusinessTransactionAction();
|
||||
businessTransactionAction.setId(UUID.randomUUID().toString());
|
||||
businessTransactionAction.setBusinessTransactionId(item.getId());
|
||||
if (fact.getFactType().equals(FactType.INPUTDATA)){
|
||||
businessTransactionAction.setEventType(EventType.INPUT);
|
||||
businessTransactionAction.setInputData(fact);
|
||||
businessTransactionAction.setEventNumber(0);
|
||||
actions.put(businessTransactionAction.getEventNumber(),businessTransactionAction);
|
||||
}else if (fact.getFactType().equals(FactType.OUTPUTDATA)){
|
||||
businessTransactionAction.setEventType(EventType.OUPUT);
|
||||
businessTransactionAction.setOutputData(fact);
|
||||
businessTransactionoutput=businessTransactionAction;
|
||||
|
||||
}else if (fact.getFactType().equals(FactType.INSERTED)){
|
||||
businessTransactionAction.setEventType(EventType.INSERTFACT);
|
||||
businessTransactionAction.setFact(fact);
|
||||
businessTransactionAction.setEventNumber(ii++);
|
||||
actions.put(businessTransactionAction.getEventNumber(),businessTransactionAction);
|
||||
} else if (fact.getFactType().equals(FactType.UPDATED_NEWVALUE)){
|
||||
businessTransactionAction.setEventType(EventType.UPDATEFACTNEWVALUE);
|
||||
businessTransactionAction.setFact(fact);
|
||||
businessTransactionAction.setEventNumber(ii++);
|
||||
actions.put(businessTransactionAction.getEventNumber(),businessTransactionAction);
|
||||
}else if (fact.getFactType().equals(FactType.UPDATED_OLDVALUE)){
|
||||
businessTransactionAction.setEventType(EventType.UPDATEFACTOLDVALUE);
|
||||
businessTransactionAction.setFact(fact);
|
||||
businessTransactionAction.setEventNumber(ii++);
|
||||
actions.put(businessTransactionAction.getEventNumber(),businessTransactionAction);
|
||||
}else if (fact.getFactType().equals(FactType.DELETED)){
|
||||
businessTransactionAction.setEventType(EventType.RETRACTFACT);
|
||||
businessTransactionAction.setFact(fact);
|
||||
businessTransactionAction.setEventNumber(ii++);
|
||||
actions.put(businessTransactionAction.getEventNumber(),businessTransactionAction);
|
||||
}
|
||||
}
|
||||
for (ProcessExecution processExecution : sessionExecution.getProcessExecutions()){
|
||||
BusinessTransactionAction businessTransactionActionStart = new BusinessTransactionAction();
|
||||
|
||||
businessTransactionActionStart.setEventType(EventType.STARTPROCESS);
|
||||
businessTransactionActionStart.setProcessID(processExecution.getProcessId());
|
||||
businessTransactionActionStart.setBusinessTransactionId(item.getId());
|
||||
businessTransactionActionStart.setEventNumber(ii++);
|
||||
actions.put(businessTransactionActionStart.getEventNumber(),businessTransactionActionStart);
|
||||
for (RuleflowGroup rfg : processExecution.getRuleflowGroups()){
|
||||
BusinessTransactionAction businessTransactionActionStartRFG = new BusinessTransactionAction();
|
||||
|
||||
businessTransactionActionStartRFG.setBusinessTransactionId(item.getId());
|
||||
businessTransactionActionStartRFG.setEventType(EventType.STARTRULEFLOWGROUP);
|
||||
businessTransactionActionStartRFG.setRuleflowGroupName(rfg.getRuleflowGroup());
|
||||
businessTransactionActionStartRFG.setEventNumber(ii++);
|
||||
actions.put(businessTransactionActionStartRFG.getEventNumber(),businessTransactionActionStartRFG);
|
||||
for (RuleExecution ruleExecution : rfg.getRuleExecutionList()){
|
||||
BusinessTransactionAction businessTransactionActionRule = new BusinessTransactionAction();
|
||||
|
||||
businessTransactionActionRule.setEventType(EventType.RULE);
|
||||
businessTransactionActionRule.setRuleflowGroupName(rfg.getRuleflowGroup());
|
||||
businessTransactionActionRule.setRuleExecution(ruleExecution);
|
||||
businessTransactionActionRule.setBusinessTransactionId(item.getId());
|
||||
businessTransactionActionRule.setProcessID(processExecution.getProcessId());
|
||||
businessTransactionActionRule.setEventNumber(ii++);
|
||||
actions.put(businessTransactionActionRule.getEventNumber(),businessTransactionActionRule);
|
||||
}
|
||||
BusinessTransactionAction businessTransactionActionSTOPRFG = new BusinessTransactionAction();
|
||||
|
||||
businessTransactionActionSTOPRFG.setEventType(EventType.STOPTRULEFLOWGROUP);
|
||||
businessTransactionActionSTOPRFG.setRuleflowGroupName(rfg.getRuleflowGroup());
|
||||
businessTransactionActionSTOPRFG.setBusinessTransactionId(item.getId());
|
||||
businessTransactionActionSTOPRFG.setEventNumber(ii++);
|
||||
actions.put(businessTransactionActionSTOPRFG.getEventNumber(),businessTransactionActionSTOPRFG);
|
||||
}
|
||||
BusinessTransactionAction businessTransactionActionEnd = new BusinessTransactionAction();
|
||||
businessTransactionActionEnd.setEventType(EventType.STOPPROCESS);
|
||||
businessTransactionActionEnd.setProcessID(processExecution.getProcessId());
|
||||
businessTransactionActionEnd.setBusinessTransactionId(item.getId());
|
||||
businessTransactionActionEnd.setEventNumber(ii++);
|
||||
actions.put(businessTransactionActionEnd.getEventNumber(),businessTransactionActionEnd);
|
||||
}
|
||||
if (businessTransactionoutput!= null) {
|
||||
businessTransactionoutput.setEventNumber(ii++);
|
||||
actions.put(businessTransactionoutput.getEventNumber(), businessTransactionoutput);
|
||||
}
|
||||
List<Long> keys = new ArrayList<Long>(actions.keySet());
|
||||
Collections.sort(keys);
|
||||
List<BusinessTransactionAction> sortedList= new LinkedList<>();
|
||||
for (Long i : keys){
|
||||
sortedList.add(actions.get(i));
|
||||
}
|
||||
transactionRepository.save(item);
|
||||
actionRepository.saveAll(sortedList);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
item.setContent(fileContent);
|
||||
item.setId(UUID.randomUUID().toString());
|
||||
repository.save(item);
|
||||
|
||||
//item.setContent(fileContent);
|
||||
|
||||
// repository.save(item);
|
||||
}
|
||||
|
||||
System.out.println("coucou");
|
||||
|
|
|
|||
|
|
@ -89,5 +89,14 @@
|
|||
<orderEntry type="library" name="Maven: org.elasticsearch:jna:4.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.7" level="project" />
|
||||
<orderEntry type="module" module-name="drools-framework-runtime-entity" />
|
||||
<orderEntry type="module" module-name="drools-framework-common" />
|
||||
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" 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: org.kie:kie-internal:7.16.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.16.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.16.0.Final" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -43,6 +43,11 @@
|
|||
<version>2.9.7</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||
<artifactId>drools-framework-runtime-entity</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
package org.chtijbug.drools.indexer.persistence.model;
|
||||
|
||||
|
||||
import org.chtijbug.drools.logging.Fact;
|
||||
import org.chtijbug.drools.logging.RuleExecution;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.elasticsearch.annotations.Document;
|
||||
import org.springframework.data.elasticsearch.annotations.Field;
|
||||
import org.springframework.data.elasticsearch.annotations.FieldType;
|
||||
|
||||
@Document(indexName = "droolsaction", type = "droolsAction")
|
||||
public class BusinessTransactionAction {
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
@Field(type = FieldType.Text)
|
||||
private EventType eventType;
|
||||
|
||||
private long eventNumber;
|
||||
|
||||
private String businessTransactionId;
|
||||
|
||||
@Field(type = FieldType.Object, includeInParent = true)
|
||||
private Fact inputData;
|
||||
|
||||
@Field(type = FieldType.Object, includeInParent = true)
|
||||
private Fact outputData;
|
||||
|
||||
@Field(type = FieldType.Object, includeInParent = true)
|
||||
private RuleExecution ruleExecution;
|
||||
|
||||
@Field(type = FieldType.Object, includeInParent = true)
|
||||
private Fact fact;
|
||||
|
||||
|
||||
private String processID;
|
||||
|
||||
private String ruleflowGroupName;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public EventType getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
|
||||
public void setEventType(EventType eventType) {
|
||||
this.eventType = eventType;
|
||||
}
|
||||
|
||||
public long getEventNumber() {
|
||||
return eventNumber;
|
||||
}
|
||||
|
||||
public void setEventNumber(long eventNumber) {
|
||||
this.eventNumber = eventNumber;
|
||||
}
|
||||
|
||||
public String getBusinessTransactionId() {
|
||||
return businessTransactionId;
|
||||
}
|
||||
|
||||
public void setBusinessTransactionId(String businessTransactionId) {
|
||||
this.businessTransactionId = businessTransactionId;
|
||||
}
|
||||
|
||||
public Fact getInputData() {
|
||||
return inputData;
|
||||
}
|
||||
|
||||
public void setInputData(Fact inputData) {
|
||||
this.inputData = inputData;
|
||||
}
|
||||
|
||||
public Fact getOutputData() {
|
||||
return outputData;
|
||||
}
|
||||
|
||||
public void setOutputData(Fact outputData) {
|
||||
this.outputData = outputData;
|
||||
}
|
||||
|
||||
public RuleExecution getRuleExecution() {
|
||||
return ruleExecution;
|
||||
}
|
||||
|
||||
public void setRuleExecution(RuleExecution ruleExecution) {
|
||||
this.ruleExecution = ruleExecution;
|
||||
}
|
||||
|
||||
public String getProcessID() {
|
||||
return processID;
|
||||
}
|
||||
|
||||
public void setProcessID(String processID) {
|
||||
this.processID = processID;
|
||||
}
|
||||
|
||||
public String getRuleflowGroupName() {
|
||||
return ruleflowGroupName;
|
||||
}
|
||||
|
||||
public void setRuleflowGroupName(String ruleflowGroupName) {
|
||||
this.ruleflowGroupName = ruleflowGroupName;
|
||||
}
|
||||
|
||||
public Fact getFact() {
|
||||
return fact;
|
||||
}
|
||||
|
||||
public void setFact(Fact fact) {
|
||||
this.fact = fact;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuffer sb = new StringBuffer("BusinessTransactionAction{");
|
||||
sb.append("id='").append(id).append('\'');
|
||||
sb.append(", eventType=").append(eventType);
|
||||
sb.append(", eventNumber=").append(eventNumber);
|
||||
sb.append(", businessTransactionId='").append(businessTransactionId).append('\'');
|
||||
sb.append(", inputData=").append(inputData);
|
||||
sb.append(", outputData=").append(outputData);
|
||||
sb.append(", ruleExecution=").append(ruleExecution);
|
||||
sb.append(", fact=").append(fact);
|
||||
sb.append(", processID='").append(processID).append('\'');
|
||||
sb.append(", ruleflowGroupName='").append(ruleflowGroupName).append('\'');
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -4,25 +4,39 @@ package org.chtijbug.drools.indexer.persistence.model;
|
|||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.elasticsearch.annotations.Document;
|
||||
|
||||
@Document(indexName = "droolshistory", type = "loggingDrools")
|
||||
@Document(indexName = "droolstransaction", type = "droolsTransaction")
|
||||
public class BusinessTransactionPersistence {
|
||||
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
|
||||
private String transactionId;
|
||||
|
||||
private Integer year ;
|
||||
private Integer month ;
|
||||
private Integer day ;
|
||||
private Integer hour ;
|
||||
private Integer year;
|
||||
|
||||
private Integer month;
|
||||
|
||||
private Integer day;
|
||||
|
||||
private Integer hour;
|
||||
|
||||
private Integer minute;
|
||||
private Integer second ;
|
||||
private Integer millis ;
|
||||
// @Field( type = FieldType.Object)
|
||||
private Object content;
|
||||
|
||||
private Integer second;
|
||||
|
||||
private Integer millis;
|
||||
|
||||
private String groupID;
|
||||
|
||||
private String artefactID;
|
||||
|
||||
private String version;
|
||||
|
||||
private String containerId;
|
||||
|
||||
private String serverName;
|
||||
|
||||
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
|
|
@ -96,11 +110,45 @@ public class BusinessTransactionPersistence {
|
|||
this.millis = millis;
|
||||
}
|
||||
|
||||
public Object getContent() {
|
||||
return content;
|
||||
public String getGroupID() {
|
||||
return groupID;
|
||||
}
|
||||
|
||||
public void setContent(Object content) {
|
||||
this.content = content;
|
||||
public void setGroupID(String groupID) {
|
||||
this.groupID = groupID;
|
||||
}
|
||||
|
||||
public String getArtefactID() {
|
||||
return artefactID;
|
||||
}
|
||||
|
||||
public void setArtefactID(String artefactID) {
|
||||
this.artefactID = artefactID;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public String getContainerId() {
|
||||
return containerId;
|
||||
}
|
||||
|
||||
public void setContainerId(String containerId) {
|
||||
this.containerId = containerId;
|
||||
}
|
||||
|
||||
public String getServerName() {
|
||||
return serverName;
|
||||
}
|
||||
|
||||
public void setServerName(String serverName) {
|
||||
this.serverName = serverName;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
package org.chtijbug.drools.indexer.persistence.model;
|
||||
|
||||
public enum EventType {
|
||||
INPUT,OUPUT,INSERTFACT, UPDATEFACTOLDVALUE, UPDATEFACTNEWVALUE,RETRACTFACT,RULE,STARTPROCESS,STOPPROCESS, STARTRULEFLOWGROUP,STOPTRULEFLOWGROUP
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package org.chtijbug.drools.indexer.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionAction;
|
||||
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
||||
|
||||
public interface BusinessTransactionActionRepository extends ElasticsearchRepository<BusinessTransactionAction,String> {
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -72,7 +72,6 @@ public class RuleService {
|
|||
* remove facts from logging to avoid infinite loop when marshalling to json and size of logging
|
||||
*/
|
||||
SessionExecution sessionExecution = chtijbutObjectResponse.getSessionLogging().getSessionExecution();
|
||||
sessionExecution.getFacts().clear();
|
||||
if (kieServerAddOnElement != null) {
|
||||
|
||||
for (KieServerLoggingDefinition kieServerLoggingDefinition : kieServerAddOnElement.getKieServerLoggingDefinitions()) {
|
||||
|
|
|
|||
Loading…
Add table
editor.link_modal.header
Reference in a new issue