Merge pull request #70 from pymma/kafka
Add clonning of values in fact logging to keep initial values
This commit is contained in:
commit
be07d716c0
21 changed files with 199 additions and 85 deletions
|
|
@ -15,6 +15,7 @@ import org.chtijbug.drools.console.middle.DababaseContentInit;
|
|||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.ApplicationContextProvider;
|
||||
import org.chtijbug.drools.console.service.wbconnector.KieBusinessCentralConnector;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.KieWorkbenchRepository;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.ProjectRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
|
@ -60,6 +61,8 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
|||
@Autowired
|
||||
private ProjectRepository projectRepository;
|
||||
|
||||
@Autowired
|
||||
private KieWorkbenchRepository kieWorkbenchRepository;
|
||||
|
||||
@Bean
|
||||
public WebMvcConfigurer corsConfigurer() {
|
||||
|
|
@ -88,6 +91,7 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
|||
public KieConfigurationData createKieConfigurationData(){
|
||||
KieConfigurationData kieConfigurationData = new KieConfigurationData();
|
||||
kieConfigurationData.setKiewbUrl(kiewbUrl);
|
||||
kieConfigurationData.setName("demo");
|
||||
return kieConfigurationData;
|
||||
}
|
||||
@Override
|
||||
|
|
@ -174,13 +178,27 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
|||
public void InitPlatform(){
|
||||
dababaseContentInit.initDatabaseIfNecessary();
|
||||
/**
|
||||
for (KieWorkbench kieWorkbench: kieWorkbenchRepository.findAll()) {
|
||||
Map<String, KieContainerResource> kies = new HashMap<>();
|
||||
KieServerSetup kieServerSetup = kieBusinessCentralConnector.connectToBusinessCentral("nheron", "adminnheron00@");
|
||||
KieServerSetup kieServerSetup = kieBusinessCentralConnector.connectToBusinessCentral("nheron", "adminnheron00@", kieWorkbench.getName(),kieWorkbench.getExternalUrl());
|
||||
if (kieServerSetup != null && kieServerSetup.getContainers() != null) {
|
||||
for (KieContainerResource kieContainerResource : kieServerSetup.getContainers()) {
|
||||
kies.put(kieContainerResource.getContainerId(), kieContainerResource);
|
||||
}
|
||||
}
|
||||
List<ProjectPersist> projectRepositories = projectRepository.findByKieWorkbench(kieWorkbench);
|
||||
if (!projectRepositories.isEmpty()){
|
||||
for (ProjectPersist projectPersist : projectRepository.findAll()) {
|
||||
if (projectPersist.getServerNames().size() > 0) {
|
||||
if (!kies.containsKey(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion())) {
|
||||
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@", projectPersist,kieWorkbench.getExternalUrl());
|
||||
} else {
|
||||
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@", projectPersist, kies.get(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion()),kieWorkbench.getExternalUrl());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
for (ProjectPersist projectPersist : projectRepository.findAll()) {
|
||||
if (projectPersist.getServerNames().size() > 0) {
|
||||
if (!kies.containsKey(projectPersist.getContainerID())) {
|
||||
|
|
@ -204,6 +222,8 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
|||
System.out.println("coucou");
|
||||
}
|
||||
System.out.println("coucou");
|
||||
|
||||
}
|
||||
**/
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ public class KieRepositoryService {
|
|||
return reponseMoteur;
|
||||
}
|
||||
|
||||
public UserConnected login(String url, String username, String password) {
|
||||
public UserConnected login(String url, String username, String password,String workbenchName) {
|
||||
|
||||
User user = userRepository.findByLogin(username);
|
||||
String completeurl = url + "/chtijbug/login";
|
||||
|
|
@ -161,7 +161,7 @@ public class KieRepositoryService {
|
|||
userConnected.getProjectResponses().addAll(responseBody.getProjects());
|
||||
userConnected.getRoles().addAll(responseBody.getRoles());
|
||||
userConnected.setUserName(username);
|
||||
|
||||
userConnected.setKieWorkbenchName(workbenchName);
|
||||
return userConnected;
|
||||
} else {
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -11,14 +11,8 @@ import org.chtijbug.drools.console.service.model.kie.JobStatus;
|
|||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.chtijbug.drools.proxy.persistence.json.KieProject;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ContainerPojoPersist;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ContainerRuntimePojoPersist;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
|
||||
import org.chtijbug.drools.proxy.persistence.model.RuntimePersist;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.ContainerRepository;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.ContainerRuntimeRepository;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.ProjectRepository;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.RuntimeRepository;
|
||||
import org.chtijbug.drools.proxy.persistence.model.*;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.*;
|
||||
import org.chtijbug.guvnor.server.jaxrs.model.PlatformProjectResponse;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -60,6 +54,10 @@ public class ProjectPersistService {
|
|||
|
||||
@Autowired
|
||||
private RuntimeRepository runtimeRepository;
|
||||
|
||||
@Autowired
|
||||
private KieWorkbenchRepository workbenchRepository;
|
||||
|
||||
@Autowired
|
||||
private KafkaTemplate<String, ReverseProxyUpdate> kafkaTemplateProxyUpdate;
|
||||
|
||||
|
|
@ -72,19 +70,22 @@ public class ProjectPersistService {
|
|||
}
|
||||
|
||||
|
||||
public void saveIfnotExist(List<PlatformProjectResponse> platformProjectResponses) {
|
||||
public void saveIfnotExist(List<PlatformProjectResponse> platformProjectResponses,String workbenchName) {
|
||||
|
||||
|
||||
KieWorkbench kieWorkbench = workbenchRepository.findByName(workbenchName);
|
||||
for (PlatformProjectResponse platformProjectResponse : platformProjectResponses) {
|
||||
|
||||
ProjectPersist projectPersist = projectRepository.findByProjectNameAndBranch(new KieProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()), platformProjectResponse.getBranch());
|
||||
|
||||
if (projectPersist == null) {
|
||||
projectPersist = platformProjectResponseToProjectPersist(platformProjectResponse);
|
||||
|
||||
projectPersist.setKieWorkbench(kieWorkbench);
|
||||
projectPersist = projectRepository.save(projectPersist);
|
||||
addProjectToSession(projectPersist, true);
|
||||
|
||||
} else {
|
||||
projectPersist.setKieWorkbench(kieWorkbench);
|
||||
projectPersist.getClassNameList().clear();
|
||||
for (String className : platformProjectResponse.getJavaClasses()) {
|
||||
projectPersist.getClassNameList().add(className);
|
||||
|
|
|
|||
|
|
@ -50,8 +50,9 @@ public class KieServerRestImpl {
|
|||
|
||||
}
|
||||
//@RequestHeader HttpHeaders headers
|
||||
@GetMapping(produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public KieServerInfo getInfo() {
|
||||
@GetMapping(path="/{kieServerName}",produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public KieServerInfo getInfo(
|
||||
@PathVariable("kieServerName") String kieServerName) {
|
||||
KieServerInfo kieServerInfo = new KieServerInfo();
|
||||
kieServerInfo.setServerId(kieserverID);
|
||||
kieServerInfo.setLocation(controlerLocation);
|
||||
|
|
@ -61,9 +62,10 @@ public class KieServerRestImpl {
|
|||
return kieServerInfo;
|
||||
}
|
||||
|
||||
@GetMapping(path = "/containers",
|
||||
@GetMapping(path = "/{kieServerName}/containers",
|
||||
produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response listContainers(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@RequestParam("groupId") String groupId,
|
||||
@RequestParam("artifactId") String artifactId,
|
||||
@RequestParam("version") String version,
|
||||
|
|
@ -80,10 +82,11 @@ public class KieServerRestImpl {
|
|||
}
|
||||
|
||||
|
||||
@PutMapping(path = "/containers/{" + CONTAINER_ID + "}",
|
||||
@PutMapping(path = "/{kieServerName}/containers/{" + CONTAINER_ID + "}",
|
||||
consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
|
||||
produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response createContainer(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id,
|
||||
String containerPayload) {
|
||||
|
||||
|
|
@ -91,61 +94,67 @@ public class KieServerRestImpl {
|
|||
}
|
||||
|
||||
|
||||
@PutMapping(path = "/containers/{" + CONTAINER_ID + "}/status/activated",
|
||||
@PutMapping(path = "/{kieServerName}/containers/{" + CONTAINER_ID + "}/status/activated",
|
||||
consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
|
||||
produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response activateContainer(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@PutMapping(path="/containers/{" + CONTAINER_ID + "}/status/deactivated",
|
||||
@PutMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/status/deactivated",
|
||||
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
|
||||
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response deactivateContainer(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(path="/containers/{" + CONTAINER_ID + "}",
|
||||
@GetMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}",
|
||||
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response getContainerInfo(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@DeleteMapping(path="/containers/{" + CONTAINER_ID + "}",
|
||||
@DeleteMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}",
|
||||
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response disposeContainer(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(path="/containers/{" + CONTAINER_ID + "}/scanner",
|
||||
@GetMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/scanner",
|
||||
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response getScannerInfo(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@PostMapping(path="/containers/{" + CONTAINER_ID + "}/scanner",
|
||||
@PostMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/scanner",
|
||||
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
|
||||
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response updateScanner(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id,
|
||||
String resourcePayload) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@GetMapping(path="/containers/{" + CONTAINER_ID + "}/release-id",
|
||||
@GetMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/release-id",
|
||||
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response getReleaseId(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable(CONTAINER_ID) String id) {
|
||||
|
|
@ -153,10 +162,11 @@ public class KieServerRestImpl {
|
|||
}
|
||||
|
||||
|
||||
@PostMapping(path="/containers/{" + CONTAINER_ID + "}/release-id",
|
||||
@PostMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/release-id",
|
||||
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
|
||||
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response updateReleaseId(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@PathVariable(CONTAINER_ID) String id,
|
||||
String releaseIdPayload,
|
||||
@RequestParam(value = "resetBeforeUpdate", defaultValue = "false") boolean resetBeforeUpdate) {
|
||||
|
|
@ -164,19 +174,21 @@ public class KieServerRestImpl {
|
|||
return null;
|
||||
}
|
||||
|
||||
@GetMapping(path="/state",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
@GetMapping(path="/{kieServerName}/state",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response getServerState(@RequestHeader HttpHeaders headers) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(path="/readycheck",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response readycheck(@RequestHeader HttpHeaders headers) {
|
||||
@GetMapping(path="/{kieServerName}/readycheck",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response readycheck(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@GetMapping(path="/healthcheck",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
@GetMapping(path="/{kieServerName}/healthcheck",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
|
||||
public Response healthcheck(@RequestHeader HttpHeaders headers,
|
||||
@PathVariable("kieServerName") String kieServerName,
|
||||
@RequestParam(value = "report", defaultValue = "false") boolean report) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ public class UserConnected {
|
|||
|
||||
private boolean connected;
|
||||
|
||||
private String kieWorkbenchName;
|
||||
|
||||
public UserConnected() {
|
||||
}
|
||||
|
||||
|
|
@ -40,6 +42,13 @@ public class UserConnected {
|
|||
this.userPassword = userPassword;
|
||||
}
|
||||
|
||||
public String getKieWorkbenchName() {
|
||||
return kieWorkbenchName;
|
||||
}
|
||||
|
||||
public void setKieWorkbenchName(String kieWorkbenchName) {
|
||||
this.kieWorkbenchName = kieWorkbenchName;
|
||||
}
|
||||
|
||||
public List<PlatformProjectResponse> getProjectResponses() {
|
||||
return projectResponses;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ public class KieConfigurationData {
|
|||
|
||||
private String password;
|
||||
|
||||
private String name;
|
||||
|
||||
|
||||
public String getKiewbUrl() {
|
||||
|
|
@ -34,4 +35,11 @@ public class KieConfigurationData {
|
|||
this.password = password;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,11 +51,16 @@ public class KieBusinessCentralConnector {
|
|||
mapper.registerModule(new JaxbAnnotationModule());
|
||||
}
|
||||
|
||||
public String createContainer(String username, String password, ProjectPersist projectPersist){
|
||||
String completeurl=kiewbUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID();
|
||||
public String createContainer(String username, String password, ProjectPersist projectPersist, String externalUrl){
|
||||
String completeurl;
|
||||
if (externalUrl==null || externalUrl.isEmpty()) {
|
||||
completeurl=kiewbUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID();
|
||||
}else{
|
||||
completeurl=externalUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID();
|
||||
}
|
||||
ContainerSpec containerSpec = new ContainerSpec();
|
||||
containerSpec.setId(projectPersist.getContainerID());
|
||||
containerSpec.setContainerName(projectPersist.getContainerID());
|
||||
containerSpec.setId(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
|
||||
containerSpec.setContainerName(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
|
||||
containerSpec.setReleasedId(new ReleaseId());
|
||||
containerSpec.setStatus(KieContainerStatus.STARTED);
|
||||
containerSpec.getReleasedId().setArtifactId(projectPersist.getArtifactID());
|
||||
|
|
@ -86,11 +91,16 @@ public class KieBusinessCentralConnector {
|
|||
}
|
||||
}
|
||||
|
||||
public String updateContainer(String username, String password, ProjectPersist projectPersist, KieContainerResource kieContainerResource){
|
||||
String completeurl=kiewbUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID();
|
||||
public String updateContainer(String username, String password, ProjectPersist projectPersist, KieContainerResource kieContainerResource, String externalUrl){
|
||||
String completeurl;
|
||||
if (externalUrl==null || externalUrl.isEmpty()) {
|
||||
completeurl=kiewbUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID();
|
||||
}else{
|
||||
completeurl=externalUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID();
|
||||
}
|
||||
ContainerSpec containerSpec = new ContainerSpec();
|
||||
containerSpec.setId(projectPersist.getContainerID());
|
||||
containerSpec.setContainerName(projectPersist.getContainerID());
|
||||
containerSpec.setId(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
|
||||
containerSpec.setContainerName(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
|
||||
containerSpec.setReleasedId(new ReleaseId());
|
||||
containerSpec.setStatus(KieContainerStatus.STARTED);
|
||||
containerSpec.getReleasedId().setArtifactId(projectPersist.getArtifactID());
|
||||
|
|
@ -179,15 +189,24 @@ public class KieBusinessCentralConnector {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
public KieServerSetup connectToBusinessCentral(String username, String password){
|
||||
String completeurl=kiewbUrl+"/controller/server/"+kieserverID;
|
||||
public KieServerSetup connectToBusinessCentral(String username, String password, String kieServerName, String externalUrl){
|
||||
String completeurl;
|
||||
if (externalUrl==null || externalUrl.isEmpty()) {
|
||||
completeurl = kiewbUrl + "/controller/server/" + kieserverID;
|
||||
}else{
|
||||
completeurl = externalUrl + "/controller/server/" + kieserverID;
|
||||
}
|
||||
KieServerInfo kieServerInfo = new KieServerInfo();
|
||||
kieServerInfo.setVersion("1.0.0");
|
||||
kieServerInfo.setServerId("1");
|
||||
kieServerInfo.setName(kieserverID);
|
||||
kieServerInfo.setMode(KieServerMode.DEVELOPMENT);
|
||||
kieServerInfo.setServerId(kieserverID);
|
||||
kieServerInfo.setLocation(controlerLocation);
|
||||
if (kieServerName==null || kieServerName.isEmpty()){
|
||||
kieServerInfo.setLocation(controlerLocation+"/demo");
|
||||
}else{
|
||||
kieServerInfo.setLocation(controlerLocation+"/"+kieServerName);
|
||||
}
|
||||
kieServerInfo.setCapabilities(new ArrayList<>());
|
||||
kieServerInfo.getCapabilities().add("BRM");
|
||||
ResponseEntity<KieServerSetup> response = restTemplateKiewb
|
||||
|
|
|
|||
|
|
@ -124,12 +124,13 @@ public class FormulaireComposant extends VerticalLayout {
|
|||
UserConnected connected = kieRepositoryService.login(
|
||||
configKie.getKiewbUrl(),
|
||||
userConnectedBinder.getBean().getUserName(),
|
||||
userConnectedBinder.getBean().getUserPassword());
|
||||
userConnectedBinder.getBean().getUserPassword(),
|
||||
configKie.getName());
|
||||
|
||||
if(connected!=null) {
|
||||
connected.setConnected(true);
|
||||
userConnectedService.addUserToSession(connected);
|
||||
projectPersistService.saveIfnotExist(connected.getProjectResponses());
|
||||
projectPersistService.saveIfnotExist(connected.getProjectResponses(),configKie.getName());
|
||||
|
||||
return true;
|
||||
}else {
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ public class DroolsChtijbugRulesExecutionService {
|
|||
return chtijbugObjectRequest;
|
||||
|
||||
} catch (DroolsChtijbugException e) {
|
||||
e.printStackTrace();
|
||||
logger.error("FireAllRulesAndStartProcess",e);
|
||||
}
|
||||
|
||||
throw new IllegalStateException("Unable to execute command " + chtijbugObjectRequest.getObjectRequest());
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.chtijbug.drools.runtime.impl;
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
|
||||
import org.chtijbug.drools.common.reflection.ReflectionUtils;
|
||||
|
|
@ -380,9 +381,12 @@ public class RuleBaseStatefulSession implements RuleBaseSession {
|
|||
public Object fireAllRulesAndStartProcess(Object inputObject, String processName) throws DroolsChtijbugException {
|
||||
DroolsFactObject inputDroolsObject = null;
|
||||
DroolsFactObject outputDroolsObject = null;
|
||||
Object inputObjectClone;
|
||||
if (inputObject != null) {
|
||||
this.insertByReflection(inputObject);
|
||||
inputDroolsObject = DroolsFactObjectFactory.createFactObject(inputObject);
|
||||
Cloner cloner = new Cloner();
|
||||
inputObjectClone=cloner.deepClone(inputObject);
|
||||
inputDroolsObject = DroolsFactObjectFactory.createFactObject(inputObjectClone);
|
||||
}
|
||||
if (processName != null && processName.length() > 0) {
|
||||
this.startProcess(processName);
|
||||
|
|
@ -537,9 +541,12 @@ public class RuleBaseStatefulSession implements RuleBaseSession {
|
|||
|
||||
DroolsFactObject inputDroolsObject = null;
|
||||
DroolsFactObject outputDroolsObject = null;
|
||||
Object inputObjectClone;
|
||||
if (inputObject != null) {
|
||||
this.insertByReflection(inputObject);
|
||||
inputDroolsObject = DroolsFactObjectFactory.createFactObject(inputObject);
|
||||
Cloner cloner = new Cloner();
|
||||
inputObjectClone=cloner.deepClone(inputObject);
|
||||
inputDroolsObject = DroolsFactObjectFactory.createFactObject(inputObjectClone);
|
||||
}
|
||||
Map<String, Object> maps = new HashMap<String, Object>();
|
||||
maps.put("inputObject", inputObject);
|
||||
|
|
|
|||
|
|
@ -52,6 +52,11 @@
|
|||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
</dependency-->
|
||||
<dependency>
|
||||
<groupId>io.github.kostaskougios</groupId>
|
||||
<artifactId>cloning</artifactId>
|
||||
<version>1.10.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.chtijbug.drools.runtimeevent.impl.fact;
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
import org.chtijbug.drools.SessionContext;
|
||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||
import org.chtijbug.drools.entity.history.fact.DeletedFactHistoryEvent;
|
||||
|
|
@ -34,7 +35,8 @@ public class DeleteFactEventStrategy implements AbstractMemoryEventHandlerStrate
|
|||
Fact fact = new Fact();
|
||||
fact.setFullClassName(deletedFactHistoryEvent.getDeletedObject().getFullClassName());
|
||||
fact.setObjectVersion(deletedFactHistoryEvent.getDeletedObject().getObjectVersion());
|
||||
fact.setRealFact(deletedFactHistoryEvent.getDeletedObject().getRealObject());
|
||||
Cloner cloner = new Cloner();
|
||||
fact.setRealFact(cloner.deepClone(deletedFactHistoryEvent.getDeletedObject().getRealObject()));
|
||||
fact.setModificationDate(deletedFactHistoryEvent.getDateEvent());
|
||||
fact.setFactType(FactType.DELETED);
|
||||
RuleExecution existingInSessionRuleExecution = null;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.chtijbug.drools.runtimeevent.impl.fact;
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
import org.chtijbug.drools.SessionContext;
|
||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||
import org.chtijbug.drools.entity.history.fact.InsertedFactHistoryEvent;
|
||||
|
|
@ -33,7 +34,8 @@ public class InsertedFactEventStrategy implements AbstractMemoryEventHandlerStra
|
|||
Fact fact = new Fact();
|
||||
fact.setFullClassName(insertedFactHistoryEvent.getInsertedObject().getFullClassName());
|
||||
fact.setObjectVersion(insertedFactHistoryEvent.getInsertedObject().getObjectVersion());
|
||||
fact.setRealFact(insertedFactHistoryEvent.getInsertedObject().getRealObject());
|
||||
Cloner cloner = new Cloner();
|
||||
fact.setRealFact(cloner.deepClone(insertedFactHistoryEvent.getInsertedObject().getRealObject()));
|
||||
fact.setModificationDate(insertedFactHistoryEvent.getDateEvent());
|
||||
fact.setFactType(FactType.INSERTED);
|
||||
fact.setEventid(insertedFactHistoryEvent.getEventID());
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
package org.chtijbug.drools.runtimeevent.impl.fact;
|
||||
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
import org.chtijbug.drools.SessionContext;
|
||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||
import org.chtijbug.drools.entity.history.fact.UpdatedFactHistoryEvent;
|
||||
|
|
@ -32,17 +33,18 @@ public class UpdatedFactEventStrategy implements AbstractMemoryEventHandlerStrat
|
|||
@Override
|
||||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
||||
UpdatedFactHistoryEvent updatedFactHistoryEvent = (UpdatedFactHistoryEvent) historyEvent;
|
||||
Cloner cloner=new Cloner();
|
||||
Fact factOldValue = new Fact();
|
||||
factOldValue.setFullClassName(updatedFactHistoryEvent.getObjectOldValue().getFullClassName());
|
||||
factOldValue.setObjectVersion(updatedFactHistoryEvent.getObjectOldValue().getObjectVersion());
|
||||
factOldValue.setRealFact(updatedFactHistoryEvent.getObjectOldValue().getRealObject());
|
||||
factOldValue.setRealFact(cloner.deepClone(updatedFactHistoryEvent.getObjectOldValue().getRealObject()));
|
||||
factOldValue.setModificationDate(updatedFactHistoryEvent.getDateEvent());
|
||||
factOldValue.setFactType(FactType.UPDATED_OLDVALUE);
|
||||
factOldValue.setEventid(updatedFactHistoryEvent.getEventID());
|
||||
Fact factNewValue = new Fact();
|
||||
factNewValue.setFullClassName(updatedFactHistoryEvent.getObjectNewValue().getFullClassName());
|
||||
factNewValue.setObjectVersion(updatedFactHistoryEvent.getObjectNewValue().getObjectVersion());
|
||||
factNewValue.setRealFact(updatedFactHistoryEvent.getObjectNewValue().getRealObject());
|
||||
factNewValue.setRealFact(cloner.deepClone(updatedFactHistoryEvent.getObjectNewValue().getRealObject()));
|
||||
factNewValue.setModificationDate(updatedFactHistoryEvent.getDateEvent());
|
||||
factNewValue.setFactType(FactType.UPDATED_NEWVALUE);
|
||||
factNewValue.setEventid(updatedFactHistoryEvent.getEventID());
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
package org.chtijbug.drools.runtimeevent.impl.knowledgeSession;
|
||||
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
import org.chtijbug.drools.SessionContext;
|
||||
import org.chtijbug.drools.entity.DroolsFactObject;
|
||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||
|
|
@ -31,6 +32,7 @@ public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements
|
|||
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
|
||||
SessionFireAllRulesAndStartProcess sessionFireAllRulesAndStartProcess = (SessionFireAllRulesAndStartProcess) historyEvent;
|
||||
SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
|
||||
|
||||
if (existingSessionRutime != null) {
|
||||
if (sessionFireAllRulesAndStartProcess.getInputObject() != null) {
|
||||
DroolsFactObject inputObject = sessionFireAllRulesAndStartProcess.getInputObject();
|
||||
|
|
@ -38,7 +40,8 @@ public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements
|
|||
inputFact.setEventid(sessionContext.getSessionExecution().getStartEventID());
|
||||
inputFact.setFactType(FactType.INPUTDATA);
|
||||
inputFact.setFullClassName(inputObject.getFullClassName());
|
||||
inputFact.setRealFact(inputObject.getRealObject());
|
||||
Cloner cloner=new Cloner();
|
||||
inputFact.setRealFact(cloner.deepClone(inputObject.getRealObject()));
|
||||
inputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
|
||||
inputFact.setObjectVersion(inputObject.getObjectVersion());
|
||||
existingSessionRutime.getFacts().add(inputFact);
|
||||
|
|
@ -49,7 +52,8 @@ public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements
|
|||
outputFact.setEventid(sessionContext.getSessionExecution().getStopEventID());
|
||||
outputFact.setFactType(FactType.OUTPUTDATA);
|
||||
outputFact.setFullClassName(outputObject.getFullClassName());
|
||||
outputFact.setRealFact(outputObject.getRealObject());
|
||||
Cloner cloner=new Cloner();
|
||||
outputFact.setRealFact(cloner.deepClone(outputObject.getRealObject()));
|
||||
outputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
|
||||
outputFact.setObjectVersion(outputObject.getObjectVersion());
|
||||
existingSessionRutime.getFacts().add(outputFact);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
package org.chtijbug.drools.runtimeevent.impl.rule;
|
||||
|
||||
|
||||
import com.rits.cloning.Cloner;
|
||||
import org.chtijbug.drools.SessionContext;
|
||||
import org.chtijbug.drools.entity.DroolsFactObject;
|
||||
import org.chtijbug.drools.entity.history.HistoryEvent;
|
||||
|
|
@ -49,10 +50,11 @@ public class BeforeRuleFiredEventStrategy implements AbstractMemoryEventHandlerS
|
|||
ruleExecution.setRuleName(beforeRuleFiredHistoryEvent.getRule().getRuleName());
|
||||
ruleExecution.setPackageName(beforeRuleFiredHistoryEvent.getRule().getRulePackageName());
|
||||
ruleExecution.setStartEventID(beforeRuleFiredHistoryEvent.getEventID());
|
||||
Cloner cloner = new Cloner();
|
||||
for (DroolsFactObject droolsFactObject : beforeRuleFiredHistoryEvent.getWhenObjects()) {
|
||||
if (droolsFactObject != null) {
|
||||
Fact fact = new Fact();
|
||||
fact.setRealFact(droolsFactObject.getRealObject());
|
||||
fact.setRealFact(cloner.deepClone(droolsFactObject.getRealObject()));
|
||||
fact.setFactType(FactType.WHEN);
|
||||
fact.setObjectVersion(droolsFactObject.getObjectVersion());
|
||||
fact.setFullClassName(droolsFactObject.getFullClassName());
|
||||
|
|
|
|||
|
|
@ -20,9 +20,6 @@
|
|||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.23.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.23.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.23.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.6.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.6.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.6.RELEASE" level="project" />
|
||||
|
|
@ -80,6 +77,8 @@
|
|||
<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: commons-io:commons-io:2.1" level="project" />
|
||||
<orderEntry type="module" module-name="cloning" />
|
||||
<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-core:2.10.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" />
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@
|
|||
<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="module" module-name="cloning" />
|
||||
<orderEntry type="library" name="Maven: org.objenesis:objenesis:3.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.40.0.20200703" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.40.0.20200703" level="project" />
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import org.springframework.data.annotation.Id;
|
|||
import org.springframework.data.mongodb.core.index.CompoundIndex;
|
||||
import org.springframework.data.mongodb.core.index.CompoundIndexes;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.DBRef;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
|
@ -30,6 +31,8 @@ public class ProjectPersist implements Serializable {
|
|||
@Indexed
|
||||
private String uuid;
|
||||
|
||||
@DBRef
|
||||
private KieWorkbench kieWorkbench;
|
||||
|
||||
private KieProject projectName;
|
||||
|
||||
|
|
@ -164,6 +167,18 @@ public class ProjectPersist implements Serializable {
|
|||
this.branch = branch;
|
||||
}
|
||||
|
||||
public KieWorkbench getKieWorkbench() {
|
||||
return kieWorkbench;
|
||||
}
|
||||
|
||||
public void setKieWorkbench(KieWorkbench kieWorkbench) {
|
||||
this.kieWorkbench = kieWorkbench;
|
||||
}
|
||||
|
||||
public void setServerNames(List<String> serverNames) {
|
||||
this.serverNames = serverNames;
|
||||
}
|
||||
|
||||
public ProjectPersist duplicate(){
|
||||
ArrayList<String> listServerNames = new ArrayList<String>();
|
||||
listServerNames.addAll(serverNames);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.json.KieProject;
|
||||
import org.chtijbug.drools.proxy.persistence.model.KieWorkbench;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
|
@ -15,5 +16,6 @@ public interface ProjectRepository extends MongoRepository<ProjectPersist, Strin
|
|||
public ProjectPersist findByDeploymentName(String deploymentName);
|
||||
public List<ProjectPersist> findByServerNamesIn(List<String> serverNames);
|
||||
public List<ProjectPersist> findByServerNamesInAndDeploymentName(List<String> serverNames,String deploymentName);
|
||||
public List<ProjectPersist> findByKieWorkbench(KieWorkbench kieWorkbench);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@
|
|||
<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: com.google.guava:guava:13.0.1" level="project" />
|
||||
<orderEntry type="module" module-name="cloning" />
|
||||
<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-core:2.10.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" />
|
||||
|
|
|
|||
Loading…
Add table
editor.link_modal.header
Reference in a new issue