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") .consumes("application/json")
.produces("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("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("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() .param().name("body").type(body).description("KIE Container resource to be deployed as KieContainerResourcee").endParam()
.responseMessage().code(200).message("Container successfully created").endResponseMessage() .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 String projectName ;
private KieContainerInstance kci; private KieContainerInstance kci;
private Class<?> clazzUser; 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); super(camelContext);
this.clazzUser = clazzUser; this.clazzUser = clazzUser;
this.projectName=projectName; this.projectName=projectName;
this.kci = kci; this.kci = kci;
this.processID = processID;
} }
@Override @Override
@ -32,12 +34,11 @@ public class DroolsRouter extends RouteBuilder {
.consumes("application/json") .consumes("application/json")
.produces("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("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() .param().name("body").type(body).description("The Data drools should work on").endParam()
.responseMessage().code(200).message("Data drools worked on").endResponseMessage() .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); Class<?> theClass = classLoader.loadClass(className);
camelContext.setApplicationContextClassLoader(classLoader); camelContext.setApplicationContextClassLoader(classLoader);
String projectName = container.getProjectName(); 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); 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); KieContainerResource containerResource = this.createContainer(id, container);
if (containerResource.getMessages().size()==1 if (containerResource.getMessages().size()==1
&& containerResource.getMessages().get(0).getSeverity()!= null && containerResource.getMessages().get(0).getSeverity()!= null
@ -158,7 +157,7 @@ public class KieServiceCommon {
ClassLoader classLoader = foundClass.getClassLoader(); ClassLoader classLoader = foundClass.getClassLoader();
Class<?> theClass = classLoader.loadClass(className); Class<?> theClass = classLoader.loadClass(className);
camelContext.setApplicationContextClassLoader(classLoader); camelContext.setApplicationContextClassLoader(classLoader);
DroolsRouter droolsRouter = new DroolsRouter(camelContext, theClass, projectName,kci); DroolsRouter droolsRouter = new DroolsRouter(camelContext, theClass, id,kci,processID);
camelContext.addRoutes(droolsRouter); camelContext.addRoutes(droolsRouter);
String serverName= System.getProperty("org.kie.server.id"); String serverName= System.getProperty("org.kie.server.id");
ContainerPojoPersist containerPojoPersist = containerRepository.findByServerNameAndContainerId(serverName,id); ContainerPojoPersist containerPojoPersist = containerRepository.findByServerNameAndContainerId(serverName,id);
@ -167,13 +166,15 @@ public class KieServiceCommon {
containerPojoPersist.setId(UUID.randomUUID().toString()); containerPojoPersist.setId(UUID.randomUUID().toString());
containerPojoPersist.setContainerId(id); containerPojoPersist.setContainerId(id);
containerPojoPersist.setClassName(className); containerPojoPersist.setClassName(className);
containerPojoPersist.setProjectName(projectName); containerPojoPersist.setProjectName(id);
containerPojoPersist.setServerName(serverName); containerPojoPersist.setServerName(serverName);
containerPojoPersist.setProcessID(processID);
containerRepository.save(containerPojoPersist); containerRepository.save(containerPojoPersist);
}else{ }else{
containerPojoPersist.setContainerId(id); containerPojoPersist.setContainerId(id);
containerPojoPersist.setClassName(className); containerPojoPersist.setClassName(className);
containerPojoPersist.setProjectName(projectName); containerPojoPersist.setProjectName(id);
containerPojoPersist.setProcessID(processID);
containerPojoPersist.setServerName(serverName); containerPojoPersist.setServerName(serverName);
containerRepository.save(containerPojoPersist); containerRepository.save(containerPojoPersist);
} }

View file

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