use of org.jbpm.runtime.manager.impl.deploy.DeploymentDescriptorImpl in project jbpm by kiegroup.
the class MultipleDeploymentsProcessServiceEJBIntegrationTest method testStartProcessFromDifferentDeployments.
@Test
public void testStartProcessFromDifferentDeployments() {
assertNotNull(deploymentService);
DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.domain");
customDescriptor.getBuilder().runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE);
KModuleDeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
deploymentUnit.setDeploymentDescriptor(customDescriptor);
deploymentService.deploy(deploymentUnit);
units.add(deploymentUnit);
DeploymentDescriptor customDescriptor2 = new DeploymentDescriptorImpl("org.jbpm.domain");
customDescriptor.getBuilder().runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE);
KModuleDeploymentUnit deploymentUnit2 = new KModuleDeploymentUnit(GROUP_ID2, ARTIFACT_ID2, VERSION2);
deploymentUnit2.setDeploymentDescriptor(customDescriptor2);
deploymentService.deploy(deploymentUnit2);
units.add(deploymentUnit2);
boolean isDeployed = deploymentService.isDeployed(deploymentUnit.getIdentifier());
assertTrue(isDeployed);
isDeployed = deploymentService.isDeployed(deploymentUnit2.getIdentifier());
assertTrue(isDeployed);
assertNotNull(processService);
// first process from deployment 1
long processInstanceId = processService.startProcess(deploymentUnit.getIdentifier(), "Import");
assertNotNull(processInstanceId);
try {
ProcessInstance pi = processService.getProcessInstance(processInstanceId);
assertNull(pi);
} catch (EJBException e) {
if (e.getCause() instanceof SessionNotFoundException) {
// ignore as this is expected when per process instance is used
} else {
throw e;
}
}
// second process from deployment 2
long processInstanceId2 = processService.startProcess(deploymentUnit2.getIdentifier(), "customtask");
assertNotNull(processInstanceId2);
try {
ProcessInstance pi2 = processService.getProcessInstance(processInstanceId2);
assertNull(pi2);
} catch (EJBException e) {
if (e.getCause() instanceof SessionNotFoundException) {
// ignore as this is expected when per process instance is used
} else {
throw e;
}
}
}
use of org.jbpm.runtime.manager.impl.deploy.DeploymentDescriptorImpl in project jbpm by kiegroup.
the class DefaultRegisterableItemsFactoryTest method testJmsAuditCacheInstance.
@Test
public void testJmsAuditCacheInstance() throws Exception {
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId("org.jbpm.test.jms", "kjar-jms-audit", "1.0.0");
DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.persistence.jpa");
customDescriptor.getBuilder().auditMode(AuditMode.JMS);
Map<String, String> resources = new HashMap<String, String>();
resources.put("src/main/resources/" + DeploymentDescriptor.META_INF_LOCATION, customDescriptor.toXml());
InternalKieModule kJar1 = createKieJar(ks, releaseId, resources);
installKjar(releaseId, kJar1);
RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder(releaseId).classLoader(this.getClass().getClassLoader()).get();
manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment);
assertNotNull(manager);
RuntimeEngine engine = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
assertNotNull(engine);
AsyncAuditLogProducer asyncAuditLogProducer = null;
KieSession kieSession = engine.getKieSession();
for (ProcessEventListener listener : kieSession.getProcessEventListeners()) {
if (listener instanceof AsyncAuditLogProducer) {
asyncAuditLogProducer = (AsyncAuditLogProducer) listener;
break;
}
}
assertNotNull(asyncAuditLogProducer);
manager.close();
manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment);
assertNotNull(manager);
RuntimeEngine engine2 = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
KieSession kieSession2 = engine2.getKieSession();
AsyncAuditLogProducer asyncAuditLogProducer2 = null;
for (ProcessEventListener listener : kieSession2.getProcessEventListeners()) {
if (listener instanceof AsyncAuditLogProducer) {
asyncAuditLogProducer2 = (AsyncAuditLogProducer) listener;
break;
}
}
assertNotNull(asyncAuditLogProducer2);
// check if the instance is the same (cached)
assertEquals(asyncAuditLogProducer, asyncAuditLogProducer2);
}
Aggregations