ajout processID dans la création du conteneur

donc suppression de ce parametre lors de l'appel au service métier de calcul des règles (runtime) puisqu'il va le chercher dans la persistence mongodb
This commit is contained in:
Nicolas Héron 2019-01-17 14:57:50 +01:00
commit 2ad08ecbb1
4 changed files with 27 additions and 14 deletions

View file

@ -82,12 +82,13 @@ public class AdminRouter extends RouteBuilder {
.consumes("application/json")
.produces("application/json")
.post("/{id}/{className}").description("Container id to be assigned to deployed KIE Container").type(KieContainerResource.class).outType(KieContainerResource.class)
.post("/{id}/{className}/{processID}").description("Container id to be assigned to deployed KIE Container").type(KieContainerResource.class).outType(KieContainerResource.class)
.param().name("id").type(path).description("Container id to be assigned to deployed KIE Container").dataType("string").endParam()
.param().name("className").type(path).description("Class Name of the Business Service").dataType("string").endParam()
.param().name("processID").type(path).description("Process Id of the Business Service").dataType("string").endParam()
.param().name("body").type(body).description("KIE Container resource to be deployed as KieContainerResourcee").endParam()
.responseMessage().code(200).message("Container successfully created").endResponseMessage()
.to("bean:kieService?method=createContainerWithRestBusinessService(${header.id},${body},${header.className})");
.to("bean:kieService?method=createContainerWithRestBusinessService(${header.id},${body},${header.className},${header.processID})");
}
}

View file

@ -15,12 +15,14 @@ public class DroolsRouter extends RouteBuilder {
private String projectName ;
private KieContainerInstance kci;
private Class<?> clazzUser;
private String processID;
public DroolsRouter(CamelContext camelContext,Class<?> clazzUser, String projectName,KieContainerInstance kci) {
public DroolsRouter(CamelContext camelContext,Class<?> clazzUser, String projectName,KieContainerInstance kci,String processID) {
super(camelContext);
this.clazzUser = clazzUser;
this.projectName=projectName;
this.kci = kci;
this.processID = processID;
}
@Override
@ -32,12 +34,11 @@ public class DroolsRouter extends RouteBuilder {
.consumes("application/json")
.produces("application/json")
.put("/{containerId}/{processID}").description("Execute Business Service").type(clazzUser).outType(clazzUser)
.put("/{containerId}").description("Execute Business Service").type(clazzUser).outType(clazzUser)
.param().name("containerId").type(path).description("Container ID where the rule artefact id deployed").dataType("integer").endParam()
.param().name("processID").type(path).description("process ID sot start").dataType("integer").endParam()
.param().name("body").type(body).description("The Data drools should work on").endParam()
.responseMessage().code(200).message("Data drools worked on").endResponseMessage()
.to("bean:ruleService?method=runSessionObject(${header.containerId},${header.processID},${body})");
.to("bean:ruleService?method=runSessionObject(${header.containerId},"+this.processID+",${body})");
}

View file

@ -96,7 +96,8 @@ public class KieServiceCommon {
Class<?> theClass = classLoader.loadClass(className);
camelContext.setApplicationContextClassLoader(classLoader);
String projectName = container.getProjectName();
DroolsRouter droolsRouter = new DroolsRouter(camelContext, theClass, projectName, kieContainerInstance);
String processId = container.getProcessID();
DroolsRouter droolsRouter = new DroolsRouter(camelContext, theClass, projectName, kieContainerInstance,processId);
camelContext.addRoutes(droolsRouter);
}
}
@ -132,11 +133,9 @@ public class KieServiceCommon {
}
public KieContainerResource createContainerWithRestBusinessService(String id, KieContainerResource container, String className, String projectName) {
public KieContainerResource createContainerWithRestBusinessService(String id, KieContainerResource container, String className,String processID) {
if (projectName==null){
projectName=id;
}
KieContainerResource containerResource = this.createContainer(id, container);
if (containerResource.getMessages().size()==1
&& containerResource.getMessages().get(0).getSeverity()!= null
@ -158,7 +157,7 @@ public class KieServiceCommon {
ClassLoader classLoader = foundClass.getClassLoader();
Class<?> theClass = classLoader.loadClass(className);
camelContext.setApplicationContextClassLoader(classLoader);
DroolsRouter droolsRouter = new DroolsRouter(camelContext, theClass, projectName,kci);
DroolsRouter droolsRouter = new DroolsRouter(camelContext, theClass, id,kci,processID);
camelContext.addRoutes(droolsRouter);
String serverName= System.getProperty("org.kie.server.id");
ContainerPojoPersist containerPojoPersist = containerRepository.findByServerNameAndContainerId(serverName,id);
@ -167,13 +166,15 @@ public class KieServiceCommon {
containerPojoPersist.setId(UUID.randomUUID().toString());
containerPojoPersist.setContainerId(id);
containerPojoPersist.setClassName(className);
containerPojoPersist.setProjectName(projectName);
containerPojoPersist.setProjectName(id);
containerPojoPersist.setServerName(serverName);
containerPojoPersist.setProcessID(processID);
containerRepository.save(containerPojoPersist);
}else{
containerPojoPersist.setContainerId(id);
containerPojoPersist.setClassName(className);
containerPojoPersist.setProjectName(projectName);
containerPojoPersist.setProjectName(id);
containerPojoPersist.setProcessID(processID);
containerPojoPersist.setServerName(serverName);
containerRepository.save(containerPojoPersist);
}

View file

@ -18,6 +18,7 @@ public class ContainerPojoPersist {
@Indexed
private String serverName;
private String processID;
private String projectName;
@ -61,6 +62,14 @@ public class ContainerPojoPersist {
this.projectName = projectName;
}
public String getProcessID() {
return processID;
}
public void setProcessID(String processID) {
this.processID = processID;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("ContainerPojoPersist{");
@ -68,6 +77,7 @@ public class ContainerPojoPersist {
sb.append(", className='").append(className).append('\'');
sb.append(", containerId='").append(containerId).append('\'');
sb.append(", serverName='").append(serverName).append('\'');
sb.append(", processID='").append(processID).append('\'');
sb.append(", projectName='").append(projectName).append('\'');
sb.append('}');
return sb.toString();