use of org.jbpm.services.api.model.DeployedUnit in project jbpm by kiegroup.
the class DeploymentServiceWithSyncTest method testDeploymentOfProcessesBySync.
@Test
public void testDeploymentOfProcessesBySync() throws Exception {
CoundDownDeploymentListener countDownListener = configureListener(1, true, false, false, false);
Collection<DeployedUnit> deployed = deploymentService.getDeployedUnits();
assertNotNull(deployed);
assertEquals(0, deployed.size());
KModuleDeploymentUnit unit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
store.enableDeploymentUnit(unit);
units.add(unit);
countDownListener.waitTillCompleted(10000);
deployed = deploymentService.getDeployedUnits();
assertNotNull(deployed);
assertEquals(1, deployed.size());
}
use of org.jbpm.services.api.model.DeployedUnit in project jbpm by kiegroup.
the class DeploymentServiceWithSyncTest method testUndeploymentOfProcessesBySync.
@Test
public void testUndeploymentOfProcessesBySync() throws Exception {
CoundDownDeploymentListener countDownListener = configureListener(1, false, true, false, false);
Collection<DeployedUnit> deployed = deploymentService.getDeployedUnits();
assertNotNull(deployed);
assertEquals(0, deployed.size());
KModuleDeploymentUnit unit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
deploymentService.deploy(unit);
units.add(unit);
deployed = deploymentService.getDeployedUnits();
assertNotNull(deployed);
assertEquals(1, deployed.size());
countDownListener.waitTillCompleted(1000);
store.disableDeploymentUnit(unit);
countDownListener.waitTillCompleted(10000);
deployed = deploymentService.getDeployedUnits();
assertNotNull(deployed);
assertEquals(0, deployed.size());
}
use of org.jbpm.services.api.model.DeployedUnit in project jbpm by kiegroup.
the class DeploymentSynchronizer method synchronize.
public synchronized void synchronize() {
try {
Collection<DeploymentUnit> enabledSet = new HashSet<DeploymentUnit>();
Collection<DeploymentUnit> disabledSet = new HashSet<DeploymentUnit>();
Collection<DeploymentUnit> activatedSet = new HashSet<DeploymentUnit>();
Collection<DeploymentUnit> deactivatedSet = new HashSet<DeploymentUnit>();
Date timeOfSync = new Date();
if (lastSync == null) {
// initial load
enabledSet = deploymentStore.getEnabledDeploymentUnits();
deactivatedSet = deploymentStore.getDeactivatedDeploymentUnits();
} else {
deploymentStore.getDeploymentUnitsByDate(lastSync, enabledSet, disabledSet, activatedSet, deactivatedSet);
}
// update last sync date with time taken just before the query time
this.lastSync = timeOfSync;
logger.debug("About to synchronize deployment units, found new enabled {}, found new disabled {}", enabledSet, disabledSet);
if (enabledSet != null) {
for (DeploymentUnit unit : enabledSet) {
if (!entries.containsKey(unit.getIdentifier()) && deploymentService.getDeployedUnit(unit.getIdentifier()) == null) {
try {
logger.debug("New deployment unit to be deployed {}", unit);
entries.put(unit.getIdentifier(), unit);
deploymentService.deploy(unit);
} catch (Exception e) {
entries.remove(unit.getIdentifier());
logger.warn("Deployment unit {} failed to deploy: {}", unit.getIdentifier(), e.getMessage());
}
}
}
}
if (disabledSet != null) {
for (DeploymentUnit unit : disabledSet) {
if (entries.containsKey(unit.getIdentifier()) && deploymentService.getDeployedUnit(unit.getIdentifier()) != null) {
try {
logger.debug("Existing deployment unit {} to be undeployed", unit.getIdentifier());
entries.remove(unit.getIdentifier());
deploymentService.undeploy(unit);
} catch (Exception e) {
logger.warn("Deployment unit {} failed to undeploy: {}", unit.getIdentifier(), e.getMessage(), e);
entries.put(unit.getIdentifier(), unit);
deploymentStore.markDeploymentUnitAsObsolete(unit);
}
}
}
}
logger.debug("About to synchronize deployment units, found new activated {}, found new deactivated {}", activatedSet, deactivatedSet);
if (activatedSet != null) {
for (DeploymentUnit unit : activatedSet) {
DeployedUnit deployed = deploymentService.getDeployedUnit(unit.getIdentifier());
if (deployed != null && !deployed.isActive()) {
deploymentService.activate(unit.getIdentifier());
}
}
}
if (deactivatedSet != null) {
for (DeploymentUnit unit : deactivatedSet) {
DeployedUnit deployed = deploymentService.getDeployedUnit(unit.getIdentifier());
if (deployed != null && deployed.isActive()) {
deploymentService.deactivate(unit.getIdentifier());
}
}
}
} catch (Throwable e) {
logger.error("Error while synchronizing deployments: {}", e.getMessage(), e);
}
}
use of org.jbpm.services.api.model.DeployedUnit in project jbpm by kiegroup.
the class DeploymentServiceEJBIntegrationTest method testDeploymentOfProcessesVerifyTransientObjectOmitted.
@Test
public void testDeploymentOfProcessesVerifyTransientObjectOmitted() {
assertNotNull(deploymentService);
assertNotNull(commandService);
DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
deploymentService.deploy(deploymentUnit);
units.add(deploymentUnit);
DeployedUnit deployed = deploymentService.getDeployedUnit(deploymentUnit.getIdentifier());
assertNotNull(deployed);
assertNotNull(deployed.getDeploymentUnit());
assertNotNull(deployed.getRuntimeManager());
assertNotNull(runtimeDataService);
Collection<ProcessDefinition> processes = runtimeDataService.getProcesses(new QueryContext());
assertNotNull(processes);
assertEquals(5, processes.size());
DeploymentStore store = new DeploymentStore();
store.setCommandService(commandService);
Collection<DeploymentUnit> units = store.getEnabledDeploymentUnits();
assertNotNull(units);
assertEquals(1, units.size());
DeploymentUnit enabled = units.iterator().next();
assertNotNull(enabled);
assertTrue(enabled instanceof KModuleDeploymentUnit);
KModuleDeploymentUnit kmoduleEnabled = (KModuleDeploymentUnit) enabled;
DeploymentDescriptor dd = kmoduleEnabled.getDeploymentDescriptor();
assertNotNull(dd);
// ejb deployment service add transitively Async WorkItem handler that should not be stored as part of deployment store
assertEquals(0, dd.getWorkItemHandlers().size());
}
use of org.jbpm.services.api.model.DeployedUnit in project jbpm by kiegroup.
the class DeploymentServiceEJBIntegrationTest method testDeploymentOfAllProcesses.
@Test
public void testDeploymentOfAllProcesses() {
assertNotNull(deploymentService);
// deploy first unit
DeploymentUnit deploymentUnitGeneral = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
deploymentService.deploy(deploymentUnitGeneral);
units.add(deploymentUnitGeneral);
RuntimeManager managerGeneral = deploymentService.getRuntimeManager(deploymentUnitGeneral.getIdentifier());
assertNotNull(managerGeneral);
// deploy second unit
DeploymentUnit deploymentUnitSupport = new KModuleDeploymentUnit(GROUP_ID, "support", VERSION);
deploymentService.deploy(deploymentUnitSupport);
units.add(deploymentUnitSupport);
DeployedUnit deployedGeneral = deploymentService.getDeployedUnit(deploymentUnitGeneral.getIdentifier());
assertNotNull(deployedGeneral);
assertNotNull(deployedGeneral.getDeploymentUnit());
assertNotNull(deployedGeneral.getRuntimeManager());
RuntimeManager managerSupport = deploymentService.getRuntimeManager(deploymentUnitSupport.getIdentifier());
assertNotNull(managerSupport);
DeployedUnit deployedSupport = deploymentService.getDeployedUnit(deploymentUnitSupport.getIdentifier());
assertNotNull(deployedSupport);
assertNotNull(deployedSupport.getDeploymentUnit());
assertNotNull(deployedSupport.getRuntimeManager());
// execute process that is bundled in first deployment unit
RuntimeEngine engine = managerGeneral.getRuntimeEngine(EmptyContext.get());
assertNotNull(engine);
Map<String, Object> params = new HashMap<String, Object>();
params.put("id", "test");
ProcessInstance processInstance = engine.getKieSession().startProcess("customtask", params);
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
// execute process that is in second deployment unit
RuntimeEngine engineSupport = managerSupport.getRuntimeEngine(EmptyContext.get());
assertNotNull(engineSupport);
ProcessInstance supportPI = engineSupport.getKieSession().startProcess("support.process");
assertEquals(ProcessInstance.STATE_ACTIVE, supportPI.getState());
List<TaskSummary> tasks = engineSupport.getTaskService().getTasksAssignedAsPotentialOwner("salaboy", "en-UK");
assertNotNull(tasks);
assertEquals(1, tasks.size());
engineSupport.getKieSession().abortProcessInstance(supportPI.getId());
assertNull(engineSupport.getKieSession().getProcessInstance(supportPI.getState()));
}
Aggregations