I'm New to Flowable. I tried to create the BPMN Deployment to MYSQL and it's getting deployed successfully.
But In UnDeployment process i'm storing all the deployments in a List then i'm performing the undeployment based on the My Criteria, like if Both resouceName and CompanyCode matches then we are deleting the deployment.
Suppose if we have more deployment, We can't store it in a List then try to match with my criteria with entire List.
How can I perform this Efficiently.
public void deployResource(String resourceName, InputStream resourceStream,
String companyCode) {
RepositoryService repoService = processEngine.getRepositoryService();
DeploymentBuilder dbuilder = repoService.createDeployment();
dbuilder.addInputStream(resourceName, resourceStream);
dbuilder.name(resourceId);
if (companyCode != null && !companyCode.isEmpty()) {
logger.info("Setting Tenant ID with companyCode {}", companyCode);
dbuilder.tenantId(companyCode);
}
dbuilder.deploy();
}
// This is the Undeployment Method
public void undeploy(String resourceName, String companyCode) {
try {
logger.debug(LogMarker.ENTRY, "Undeployment Process {} is Started for Resource Name{}", resourceName, companyCode);
RepositoryService repoService = processEngine.getRepositoryService();
List<ProcessDefinition> list = repoService.createProcessDefinitionQuery().processDefinitionResourceNameLike(resourceName)
.processDefinitionTenantIdLike(companyCode).list();
for (ProcessDefinition processDefinition : list) {
repoService.deleteDeployment(processDefinition.getDeploymentId(), true);
logger.debug(LogMarker.EXIT, "Undeployment Process {} is Successfully Completed for Resource Name{}", resourceName);
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}