Merge pull request #70 from pymma/kafka

Add clonning of values in fact logging to keep initial values
This commit is contained in:
Nicolas Héron 2020-07-23 09:21:24 +02:00 committed by GitHub
commit be07d716c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 199 additions and 85 deletions

View file

@ -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.model.kie.KieConfigurationData;
import org.chtijbug.drools.console.service.util.ApplicationContextProvider; import org.chtijbug.drools.console.service.util.ApplicationContextProvider;
import org.chtijbug.drools.console.service.wbconnector.KieBusinessCentralConnector; 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.chtijbug.drools.proxy.persistence.repository.ProjectRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -60,6 +61,8 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
@Autowired @Autowired
private ProjectRepository projectRepository; private ProjectRepository projectRepository;
@Autowired
private KieWorkbenchRepository kieWorkbenchRepository;
@Bean @Bean
public WebMvcConfigurer corsConfigurer() { public WebMvcConfigurer corsConfigurer() {
@ -88,6 +91,7 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
public KieConfigurationData createKieConfigurationData(){ public KieConfigurationData createKieConfigurationData(){
KieConfigurationData kieConfigurationData = new KieConfigurationData(); KieConfigurationData kieConfigurationData = new KieConfigurationData();
kieConfigurationData.setKiewbUrl(kiewbUrl); kieConfigurationData.setKiewbUrl(kiewbUrl);
kieConfigurationData.setName("demo");
return kieConfigurationData; return kieConfigurationData;
} }
@Override @Override
@ -174,36 +178,52 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
public void InitPlatform(){ public void InitPlatform(){
dababaseContentInit.initDatabaseIfNecessary(); dababaseContentInit.initDatabaseIfNecessary();
/** /**
Map<String,KieContainerResource> kies = new HashMap<>(); for (KieWorkbench kieWorkbench: kieWorkbenchRepository.findAll()) {
KieServerSetup kieServerSetup = kieBusinessCentralConnector.connectToBusinessCentral("nheron", "adminnheron00@"); Map<String, KieContainerResource> kies = new HashMap<>();
if (kieServerSetup!= null && kieServerSetup.getContainers()!= null) { KieServerSetup kieServerSetup = kieBusinessCentralConnector.connectToBusinessCentral("nheron", "adminnheron00@", kieWorkbench.getName(),kieWorkbench.getExternalUrl());
for (KieContainerResource kieContainerResource : kieServerSetup.getContainers()) { if (kieServerSetup != null && kieServerSetup.getContainers() != null) {
kies.put(kieContainerResource.getContainerId(), kieContainerResource); for (KieContainerResource kieContainerResource : kieServerSetup.getContainers()) {
} kies.put(kieContainerResource.getContainerId(), kieContainerResource);
} }
for (ProjectPersist projectPersist : projectRepository.findAll()){ }
if (projectPersist.getServerNames().size()>0){ List<ProjectPersist> projectRepositories = projectRepository.findByKieWorkbench(kieWorkbench);
if (!kies.containsKey(projectPersist.getContainerID())){ if (!projectRepositories.isEmpty()){
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@",projectPersist); for (ProjectPersist projectPersist : projectRepository.findAll()) {
}else{ if (projectPersist.getServerNames().size() > 0) {
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@",projectPersist,kies.get(projectPersist.getContainerID())); 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())) {
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@", projectPersist);
} else {
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@", projectPersist, kies.get(projectPersist.getContainerID()));
}
}
}
ServerInstanceKeyList serverInstanceKeyList = kieBusinessCentralConnector.getListInstances("nheron", "adminnheron00@"); ServerInstanceKeyList serverInstanceKeyList = kieBusinessCentralConnector.getListInstances("nheron", "adminnheron00@");
if (serverInstanceKeyList!=null){ if (serverInstanceKeyList != null) {
for (ServerInstanceKey serverInstanceKey : serverInstanceKeyList.getServerInstanceKeys()){ for (ServerInstanceKey serverInstanceKey : serverInstanceKeyList.getServerInstanceKeys()) {
String serverInstanceId = serverInstanceKey.getServerInstanceId(); String serverInstanceId = serverInstanceKey.getServerInstanceId();
ContainerList containerList = kieBusinessCentralConnector.getListContainers("nheron", "adminnheron00@", serverInstanceId); ContainerList containerList = kieBusinessCentralConnector.getListContainers("nheron", "adminnheron00@", serverInstanceId);
System.out.println("coucou"); System.out.println("coucou");
for (Container container : containerList.getContainers()){ for (Container container : containerList.getContainers()) {
} }
} }
System.out.println("coucou"); System.out.println("coucou");
} }
System.out.println("coucou"); System.out.println("coucou");
}
**/ **/
} }

View file

@ -128,7 +128,7 @@ public class KieRepositoryService {
return reponseMoteur; 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); User user = userRepository.findByLogin(username);
String completeurl = url + "/chtijbug/login"; String completeurl = url + "/chtijbug/login";
@ -161,7 +161,7 @@ public class KieRepositoryService {
userConnected.getProjectResponses().addAll(responseBody.getProjects()); userConnected.getProjectResponses().addAll(responseBody.getProjects());
userConnected.getRoles().addAll(responseBody.getRoles()); userConnected.getRoles().addAll(responseBody.getRoles());
userConnected.setUserName(username); userConnected.setUserName(username);
userConnected.setKieWorkbenchName(workbenchName);
return userConnected; return userConnected;
} else { } else {
return null; return null;

View file

@ -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.model.kie.KieConfigurationData;
import org.chtijbug.drools.console.service.util.AppContext; import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.proxy.persistence.json.KieProject; import org.chtijbug.drools.proxy.persistence.json.KieProject;
import org.chtijbug.drools.proxy.persistence.model.ContainerPojoPersist; import org.chtijbug.drools.proxy.persistence.model.*;
import org.chtijbug.drools.proxy.persistence.model.ContainerRuntimePojoPersist; import org.chtijbug.drools.proxy.persistence.repository.*;
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.guvnor.server.jaxrs.model.PlatformProjectResponse; import org.chtijbug.guvnor.server.jaxrs.model.PlatformProjectResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -60,6 +54,10 @@ public class ProjectPersistService {
@Autowired @Autowired
private RuntimeRepository runtimeRepository; private RuntimeRepository runtimeRepository;
@Autowired
private KieWorkbenchRepository workbenchRepository;
@Autowired @Autowired
private KafkaTemplate<String, ReverseProxyUpdate> kafkaTemplateProxyUpdate; 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) { for (PlatformProjectResponse platformProjectResponse : platformProjectResponses) {
ProjectPersist projectPersist = projectRepository.findByProjectNameAndBranch(new KieProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()), platformProjectResponse.getBranch()); ProjectPersist projectPersist = projectRepository.findByProjectNameAndBranch(new KieProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()), platformProjectResponse.getBranch());
if (projectPersist == null) { if (projectPersist == null) {
projectPersist = platformProjectResponseToProjectPersist(platformProjectResponse); projectPersist = platformProjectResponseToProjectPersist(platformProjectResponse);
projectPersist.setKieWorkbench(kieWorkbench);
projectPersist = projectRepository.save(projectPersist); projectPersist = projectRepository.save(projectPersist);
addProjectToSession(projectPersist, true); addProjectToSession(projectPersist, true);
} else { } else {
projectPersist.setKieWorkbench(kieWorkbench);
projectPersist.getClassNameList().clear(); projectPersist.getClassNameList().clear();
for (String className : platformProjectResponse.getJavaClasses()) { for (String className : platformProjectResponse.getJavaClasses()) {
projectPersist.getClassNameList().add(className); projectPersist.getClassNameList().add(className);

View file

@ -50,8 +50,9 @@ public class KieServerRestImpl {
} }
//@RequestHeader HttpHeaders headers //@RequestHeader HttpHeaders headers
@GetMapping(produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @GetMapping(path="/{kieServerName}",produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public KieServerInfo getInfo() { public KieServerInfo getInfo(
@PathVariable("kieServerName") String kieServerName) {
KieServerInfo kieServerInfo = new KieServerInfo(); KieServerInfo kieServerInfo = new KieServerInfo();
kieServerInfo.setServerId(kieserverID); kieServerInfo.setServerId(kieserverID);
kieServerInfo.setLocation(controlerLocation); kieServerInfo.setLocation(controlerLocation);
@ -61,9 +62,10 @@ public class KieServerRestImpl {
return kieServerInfo; return kieServerInfo;
} }
@GetMapping(path = "/containers", @GetMapping(path = "/{kieServerName}/containers",
produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response listContainers(@RequestHeader HttpHeaders headers, public Response listContainers(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@RequestParam("groupId") String groupId, @RequestParam("groupId") String groupId,
@RequestParam("artifactId") String artifactId, @RequestParam("artifactId") String artifactId,
@RequestParam("version") String version, @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}, consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response createContainer(@RequestHeader HttpHeaders headers, public Response createContainer(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id, @PathVariable(CONTAINER_ID) String id,
String containerPayload) { 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}, consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response activateContainer(@RequestHeader HttpHeaders headers, public Response activateContainer(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id) { @PathVariable(CONTAINER_ID) String id) {
return null; return null;
} }
@PutMapping(path="/containers/{" + CONTAINER_ID + "}/status/deactivated", @PutMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/status/deactivated",
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}, consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response deactivateContainer(@RequestHeader HttpHeaders headers, public Response deactivateContainer(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id) { @PathVariable(CONTAINER_ID) String id) {
return null; return null;
} }
@GetMapping(path="/containers/{" + CONTAINER_ID + "}", @GetMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}",
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response getContainerInfo(@RequestHeader HttpHeaders headers, public Response getContainerInfo(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id) { @PathVariable(CONTAINER_ID) String id) {
return null; return null;
} }
@DeleteMapping(path="/containers/{" + CONTAINER_ID + "}", @DeleteMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}",
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response disposeContainer(@RequestHeader HttpHeaders headers, public Response disposeContainer(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id) { @PathVariable(CONTAINER_ID) String id) {
return null; return null;
} }
@GetMapping(path="/containers/{" + CONTAINER_ID + "}/scanner", @GetMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/scanner",
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response getScannerInfo(@RequestHeader HttpHeaders headers, public Response getScannerInfo(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id) { @PathVariable(CONTAINER_ID) String id) {
return null; return null;
} }
@PostMapping(path="/containers/{" + CONTAINER_ID + "}/scanner", @PostMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/scanner",
consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}, consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response updateScanner(@RequestHeader HttpHeaders headers, public Response updateScanner(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id, @PathVariable(CONTAINER_ID) String id,
String resourcePayload) { String resourcePayload) {
return null; return null;
} }
@GetMapping(path="/containers/{" + CONTAINER_ID + "}/release-id", @GetMapping(path="/{kieServerName}/containers/{" + CONTAINER_ID + "}/release-id",
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response getReleaseId(@RequestHeader HttpHeaders headers, public Response getReleaseId(@RequestHeader HttpHeaders headers,
@PathVariable(CONTAINER_ID) String id) { @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}, consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML},
produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) produces={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response updateReleaseId(@RequestHeader HttpHeaders headers, public Response updateReleaseId(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@PathVariable(CONTAINER_ID) String id, @PathVariable(CONTAINER_ID) String id,
String releaseIdPayload, String releaseIdPayload,
@RequestParam(value = "resetBeforeUpdate", defaultValue = "false") boolean resetBeforeUpdate) { @RequestParam(value = "resetBeforeUpdate", defaultValue = "false") boolean resetBeforeUpdate) {
@ -164,19 +174,21 @@ public class KieServerRestImpl {
return null; 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) { public Response getServerState(@RequestHeader HttpHeaders headers) {
return null; return null;
} }
@GetMapping(path="/readycheck",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @GetMapping(path="/{kieServerName}/readycheck",consumes={MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response readycheck(@RequestHeader HttpHeaders headers) { public Response readycheck(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName) {
return null; 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, public Response healthcheck(@RequestHeader HttpHeaders headers,
@PathVariable("kieServerName") String kieServerName,
@RequestParam(value = "report", defaultValue = "false") boolean report) { @RequestParam(value = "report", defaultValue = "false") boolean report) {
return null; return null;
} }

View file

@ -16,6 +16,8 @@ public class UserConnected {
private boolean connected; private boolean connected;
private String kieWorkbenchName;
public UserConnected() { public UserConnected() {
} }
@ -40,6 +42,13 @@ public class UserConnected {
this.userPassword = userPassword; this.userPassword = userPassword;
} }
public String getKieWorkbenchName() {
return kieWorkbenchName;
}
public void setKieWorkbenchName(String kieWorkbenchName) {
this.kieWorkbenchName = kieWorkbenchName;
}
public List<PlatformProjectResponse> getProjectResponses() { public List<PlatformProjectResponse> getProjectResponses() {
return projectResponses; return projectResponses;

View file

@ -8,6 +8,7 @@ public class KieConfigurationData {
private String password; private String password;
private String name;
public String getKiewbUrl() { public String getKiewbUrl() {
@ -34,4 +35,11 @@ public class KieConfigurationData {
this.password = password; this.password = password;
} }
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

View file

@ -51,11 +51,16 @@ public class KieBusinessCentralConnector {
mapper.registerModule(new JaxbAnnotationModule()); mapper.registerModule(new JaxbAnnotationModule());
} }
public String createContainer(String username, String password, ProjectPersist projectPersist){ public String createContainer(String username, String password, ProjectPersist projectPersist, String externalUrl){
String completeurl=kiewbUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID(); 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 containerSpec = new ContainerSpec();
containerSpec.setId(projectPersist.getContainerID()); containerSpec.setId(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
containerSpec.setContainerName(projectPersist.getContainerID()); containerSpec.setContainerName(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
containerSpec.setReleasedId(new ReleaseId()); containerSpec.setReleasedId(new ReleaseId());
containerSpec.setStatus(KieContainerStatus.STARTED); containerSpec.setStatus(KieContainerStatus.STARTED);
containerSpec.getReleasedId().setArtifactId(projectPersist.getArtifactID()); containerSpec.getReleasedId().setArtifactId(projectPersist.getArtifactID());
@ -86,11 +91,16 @@ public class KieBusinessCentralConnector {
} }
} }
public String updateContainer(String username, String password, ProjectPersist projectPersist, KieContainerResource kieContainerResource){ public String updateContainer(String username, String password, ProjectPersist projectPersist, KieContainerResource kieContainerResource, String externalUrl){
String completeurl=kiewbUrl+"/controller/management/servers/"+kieserverID+"/containers/"+projectPersist.getContainerID(); 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 containerSpec = new ContainerSpec();
containerSpec.setId(projectPersist.getContainerID()); containerSpec.setId(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
containerSpec.setContainerName(projectPersist.getContainerID()); containerSpec.setContainerName(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion());
containerSpec.setReleasedId(new ReleaseId()); containerSpec.setReleasedId(new ReleaseId());
containerSpec.setStatus(KieContainerStatus.STARTED); containerSpec.setStatus(KieContainerStatus.STARTED);
containerSpec.getReleasedId().setArtifactId(projectPersist.getArtifactID()); containerSpec.getReleasedId().setArtifactId(projectPersist.getArtifactID());
@ -179,15 +189,24 @@ public class KieBusinessCentralConnector {
return null; return null;
} }
} }
public KieServerSetup connectToBusinessCentral(String username, String password){ public KieServerSetup connectToBusinessCentral(String username, String password, String kieServerName, String externalUrl){
String completeurl=kiewbUrl+"/controller/server/"+kieserverID; String completeurl;
if (externalUrl==null || externalUrl.isEmpty()) {
completeurl = kiewbUrl + "/controller/server/" + kieserverID;
}else{
completeurl = externalUrl + "/controller/server/" + kieserverID;
}
KieServerInfo kieServerInfo = new KieServerInfo(); KieServerInfo kieServerInfo = new KieServerInfo();
kieServerInfo.setVersion("1.0.0"); kieServerInfo.setVersion("1.0.0");
kieServerInfo.setServerId("1"); kieServerInfo.setServerId("1");
kieServerInfo.setName(kieserverID); kieServerInfo.setName(kieserverID);
kieServerInfo.setMode(KieServerMode.DEVELOPMENT); kieServerInfo.setMode(KieServerMode.DEVELOPMENT);
kieServerInfo.setServerId(kieserverID); 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.setCapabilities(new ArrayList<>());
kieServerInfo.getCapabilities().add("BRM"); kieServerInfo.getCapabilities().add("BRM");
ResponseEntity<KieServerSetup> response = restTemplateKiewb ResponseEntity<KieServerSetup> response = restTemplateKiewb

View file

@ -124,12 +124,13 @@ public class FormulaireComposant extends VerticalLayout {
UserConnected connected = kieRepositoryService.login( UserConnected connected = kieRepositoryService.login(
configKie.getKiewbUrl(), configKie.getKiewbUrl(),
userConnectedBinder.getBean().getUserName(), userConnectedBinder.getBean().getUserName(),
userConnectedBinder.getBean().getUserPassword()); userConnectedBinder.getBean().getUserPassword(),
configKie.getName());
if(connected!=null) { if(connected!=null) {
connected.setConnected(true); connected.setConnected(true);
userConnectedService.addUserToSession(connected); userConnectedService.addUserToSession(connected);
projectPersistService.saveIfnotExist(connected.getProjectResponses()); projectPersistService.saveIfnotExist(connected.getProjectResponses(),configKie.getName());
return true; return true;
}else { }else {

View file

@ -153,7 +153,7 @@ public class DroolsChtijbugRulesExecutionService {
return chtijbugObjectRequest; return chtijbugObjectRequest;
} catch (DroolsChtijbugException e) { } catch (DroolsChtijbugException e) {
e.printStackTrace(); logger.error("FireAllRulesAndStartProcess",e);
} }
throw new IllegalStateException("Unable to execute command " + chtijbugObjectRequest.getObjectRequest()); throw new IllegalStateException("Unable to execute command " + chtijbugObjectRequest.getObjectRequest());

View file

@ -15,6 +15,7 @@
*/ */
package org.chtijbug.drools.runtime.impl; package org.chtijbug.drools.runtime.impl;
import com.rits.cloning.Cloner;
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;
@ -380,9 +381,12 @@ public class RuleBaseStatefulSession implements RuleBaseSession {
public Object fireAllRulesAndStartProcess(Object inputObject, String processName) throws DroolsChtijbugException { public Object fireAllRulesAndStartProcess(Object inputObject, String processName) throws DroolsChtijbugException {
DroolsFactObject inputDroolsObject = null; DroolsFactObject inputDroolsObject = null;
DroolsFactObject outputDroolsObject = null; DroolsFactObject outputDroolsObject = null;
Object inputObjectClone;
if (inputObject != null) { if (inputObject != null) {
this.insertByReflection(inputObject); 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) { if (processName != null && processName.length() > 0) {
this.startProcess(processName); this.startProcess(processName);
@ -537,9 +541,12 @@ public class RuleBaseStatefulSession implements RuleBaseSession {
DroolsFactObject inputDroolsObject = null; DroolsFactObject inputDroolsObject = null;
DroolsFactObject outputDroolsObject = null; DroolsFactObject outputDroolsObject = null;
Object inputObjectClone;
if (inputObject != null) { if (inputObject != null) {
this.insertByReflection(inputObject); 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>(); Map<String, Object> maps = new HashMap<String, Object>();
maps.put("inputObject", inputObject); maps.put("inputObject", inputObject);

View file

@ -52,6 +52,11 @@
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId> <artifactId>jackson-annotations</artifactId>
</dependency--> </dependency-->
<dependency>
<groupId>io.github.kostaskougios</groupId>
<artifactId>cloning</artifactId>
<version>1.10.3</version>
</dependency>
<dependency> <dependency>
<groupId>commons-io</groupId> <groupId>commons-io</groupId>
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>

View file

@ -15,6 +15,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.DeletedFactHistoryEvent; import org.chtijbug.drools.entity.history.fact.DeletedFactHistoryEvent;
@ -34,7 +35,8 @@ public class DeleteFactEventStrategy implements AbstractMemoryEventHandlerStrate
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());
fact.setRealFact(deletedFactHistoryEvent.getDeletedObject().getRealObject()); Cloner cloner = new Cloner();
fact.setRealFact(cloner.deepClone(deletedFactHistoryEvent.getDeletedObject().getRealObject()));
fact.setModificationDate(deletedFactHistoryEvent.getDateEvent()); fact.setModificationDate(deletedFactHistoryEvent.getDateEvent());
fact.setFactType(FactType.DELETED); fact.setFactType(FactType.DELETED);
RuleExecution existingInSessionRuleExecution = null; RuleExecution existingInSessionRuleExecution = null;

View file

@ -15,6 +15,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.InsertedFactHistoryEvent; import org.chtijbug.drools.entity.history.fact.InsertedFactHistoryEvent;
@ -33,7 +34,8 @@ public class InsertedFactEventStrategy implements AbstractMemoryEventHandlerStra
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());
fact.setRealFact(insertedFactHistoryEvent.getInsertedObject().getRealObject()); Cloner cloner = new Cloner();
fact.setRealFact(cloner.deepClone(insertedFactHistoryEvent.getInsertedObject().getRealObject()));
fact.setModificationDate(insertedFactHistoryEvent.getDateEvent()); fact.setModificationDate(insertedFactHistoryEvent.getDateEvent());
fact.setFactType(FactType.INSERTED); fact.setFactType(FactType.INSERTED);
fact.setEventid(insertedFactHistoryEvent.getEventID()); fact.setEventid(insertedFactHistoryEvent.getEventID());

View file

@ -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.UpdatedFactHistoryEvent; import org.chtijbug.drools.entity.history.fact.UpdatedFactHistoryEvent;
@ -32,17 +33,18 @@ public class UpdatedFactEventStrategy implements AbstractMemoryEventHandlerStrat
@Override @Override
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) { public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
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());
factOldValue.setRealFact(updatedFactHistoryEvent.getObjectOldValue().getRealObject()); factOldValue.setRealFact(cloner.deepClone(updatedFactHistoryEvent.getObjectOldValue().getRealObject()));
factOldValue.setModificationDate(updatedFactHistoryEvent.getDateEvent()); factOldValue.setModificationDate(updatedFactHistoryEvent.getDateEvent());
factOldValue.setFactType(FactType.UPDATED_OLDVALUE); factOldValue.setFactType(FactType.UPDATED_OLDVALUE);
factOldValue.setEventid(updatedFactHistoryEvent.getEventID()); factOldValue.setEventid(updatedFactHistoryEvent.getEventID());
Fact factNewValue = new Fact(); Fact factNewValue = new Fact();
factNewValue.setFullClassName(updatedFactHistoryEvent.getObjectNewValue().getFullClassName()); factNewValue.setFullClassName(updatedFactHistoryEvent.getObjectNewValue().getFullClassName());
factNewValue.setObjectVersion(updatedFactHistoryEvent.getObjectNewValue().getObjectVersion()); factNewValue.setObjectVersion(updatedFactHistoryEvent.getObjectNewValue().getObjectVersion());
factNewValue.setRealFact(updatedFactHistoryEvent.getObjectNewValue().getRealObject()); factNewValue.setRealFact(cloner.deepClone(updatedFactHistoryEvent.getObjectNewValue().getRealObject()));
factNewValue.setModificationDate(updatedFactHistoryEvent.getDateEvent()); factNewValue.setModificationDate(updatedFactHistoryEvent.getDateEvent());
factNewValue.setFactType(FactType.UPDATED_NEWVALUE); factNewValue.setFactType(FactType.UPDATED_NEWVALUE);
factNewValue.setEventid(updatedFactHistoryEvent.getEventID()); factNewValue.setEventid(updatedFactHistoryEvent.getEventID());

View file

@ -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.DroolsFactObject; import org.chtijbug.drools.entity.DroolsFactObject;
import org.chtijbug.drools.entity.history.HistoryEvent; import org.chtijbug.drools.entity.history.HistoryEvent;
@ -31,6 +32,7 @@ public class KnowledgeSessionFireAllRulesAndStartProcessEventStrategy implements
public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) { public void handleMessageInternally(HistoryEvent historyEvent, SessionContext sessionContext) {
SessionFireAllRulesAndStartProcess sessionFireAllRulesAndStartProcess = (SessionFireAllRulesAndStartProcess) historyEvent; SessionFireAllRulesAndStartProcess sessionFireAllRulesAndStartProcess = (SessionFireAllRulesAndStartProcess) historyEvent;
SessionExecution existingSessionRutime = sessionContext.getSessionExecution(); SessionExecution existingSessionRutime = sessionContext.getSessionExecution();
if (existingSessionRutime != null) { if (existingSessionRutime != null) {
if (sessionFireAllRulesAndStartProcess.getInputObject() != null) { if (sessionFireAllRulesAndStartProcess.getInputObject() != null) {
DroolsFactObject inputObject = sessionFireAllRulesAndStartProcess.getInputObject(); DroolsFactObject inputObject = sessionFireAllRulesAndStartProcess.getInputObject();
@ -38,7 +40,8 @@ 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());
inputFact.setRealFact(inputObject.getRealObject()); Cloner cloner=new Cloner();
inputFact.setRealFact(cloner.deepClone(inputObject.getRealObject()));
inputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent()); inputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
inputFact.setObjectVersion(inputObject.getObjectVersion()); inputFact.setObjectVersion(inputObject.getObjectVersion());
existingSessionRutime.getFacts().add(inputFact); existingSessionRutime.getFacts().add(inputFact);
@ -49,7 +52,8 @@ 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());
outputFact.setRealFact(outputObject.getRealObject()); Cloner cloner=new Cloner();
outputFact.setRealFact(cloner.deepClone(outputObject.getRealObject()));
outputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent()); outputFact.setModificationDate(sessionFireAllRulesAndStartProcess.getDateEvent());
outputFact.setObjectVersion(outputObject.getObjectVersion()); outputFact.setObjectVersion(outputObject.getObjectVersion());
existingSessionRutime.getFacts().add(outputFact); existingSessionRutime.getFacts().add(outputFact);

View file

@ -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.DroolsFactObject; import org.chtijbug.drools.entity.DroolsFactObject;
import org.chtijbug.drools.entity.history.HistoryEvent; import org.chtijbug.drools.entity.history.HistoryEvent;
@ -49,10 +50,11 @@ 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();
fact.setRealFact(droolsFactObject.getRealObject()); fact.setRealFact(cloner.deepClone(droolsFactObject.getRealObject()));
fact.setFactType(FactType.WHEN); fact.setFactType(FactType.WHEN);
fact.setObjectVersion(droolsFactObject.getObjectVersion()); fact.setObjectVersion(droolsFactObject.getObjectVersion());
fact.setFullClassName(droolsFactObject.getFullClassName()); fact.setFullClassName(droolsFactObject.getFullClassName());

View file

@ -20,9 +20,6 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <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-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-starter:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot: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: 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: 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" />
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" /> <orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" />

View file

@ -95,6 +95,8 @@
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" 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: 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: 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-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: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" /> <orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.40.0.20200703" level="project" />

View file

@ -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.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes; import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed; 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 org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable; import java.io.Serializable;
@ -30,6 +31,8 @@ public class ProjectPersist implements Serializable {
@Indexed @Indexed
private String uuid; private String uuid;
@DBRef
private KieWorkbench kieWorkbench;
private KieProject projectName; private KieProject projectName;
@ -164,6 +167,18 @@ public class ProjectPersist implements Serializable {
this.branch = branch; 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(){ public ProjectPersist duplicate(){
ArrayList<String> listServerNames = new ArrayList<String>(); ArrayList<String> listServerNames = new ArrayList<String>();
listServerNames.addAll(serverNames); listServerNames.addAll(serverNames);

View file

@ -1,6 +1,7 @@
package org.chtijbug.drools.proxy.persistence.repository; package org.chtijbug.drools.proxy.persistence.repository;
import org.chtijbug.drools.proxy.persistence.json.KieProject; 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.chtijbug.drools.proxy.persistence.model.ProjectPersist;
import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -15,5 +16,6 @@ public interface ProjectRepository extends MongoRepository<ProjectPersist, Strin
public ProjectPersist findByDeploymentName(String deploymentName); public ProjectPersist findByDeploymentName(String deploymentName);
public List<ProjectPersist> findByServerNamesIn(List<String> serverNames); public List<ProjectPersist> findByServerNamesIn(List<String> serverNames);
public List<ProjectPersist> findByServerNamesInAndDeploymentName(List<String> serverNames,String deploymentName); public List<ProjectPersist> findByServerNamesInAndDeploymentName(List<String> serverNames,String deploymentName);
public List<ProjectPersist> findByKieWorkbench(KieWorkbench kieWorkbench);
} }

View file

@ -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-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: 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" />
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" /> <orderEntry type="library" name="Maven: org.kie:kie-internal:7.40.0.20200703" level="project" />