use of org.camunda.bpm.engine.impl.interceptor.CommandContext in project camunda-bpm-platform by camunda.
the class DeleteProcessInstancesJobHandler method createJobEntities.
protected void createJobEntities(BatchEntity batch, DeleteProcessInstanceBatchConfiguration configuration, String deploymentId, List<String> processInstancesToHandle, int invocationsPerBatchJob) {
CommandContext commandContext = Context.getCommandContext();
ByteArrayManager byteArrayManager = commandContext.getByteArrayManager();
JobManager jobManager = commandContext.getJobManager();
int createdJobs = 0;
while (!processInstancesToHandle.isEmpty()) {
int lastIdIndex = Math.min(invocationsPerBatchJob, processInstancesToHandle.size());
// view of process instances for this job
List<String> idsForJob = processInstancesToHandle.subList(0, lastIdIndex);
DeleteProcessInstanceBatchConfiguration jobConfiguration = createJobConfiguration(configuration, idsForJob);
ByteArrayEntity configurationEntity = saveConfiguration(byteArrayManager, jobConfiguration);
JobEntity job = createBatchJob(batch, configurationEntity);
job.setDeploymentId(deploymentId);
jobManager.insertAndHintJobExecutor(job);
createdJobs++;
idsForJob.clear();
}
// update created jobs for batch
batch.setJobsCreated(batch.getJobsCreated() + createdJobs);
// update batch configuration
batch.setConfigurationBytes(writeConfiguration(configuration));
}
use of org.camunda.bpm.engine.impl.interceptor.CommandContext in project camunda-bpm-platform by camunda.
the class AbstractBatchJobHandler method createJobs.
@Override
public boolean createJobs(BatchEntity batch) {
CommandContext commandContext = Context.getCommandContext();
ByteArrayManager byteArrayManager = commandContext.getByteArrayManager();
JobManager jobManager = commandContext.getJobManager();
T configuration = readConfiguration(batch.getConfigurationBytes());
int batchJobsPerSeed = batch.getBatchJobsPerSeed();
int invocationsPerBatchJob = batch.getInvocationsPerBatchJob();
List<String> ids = configuration.getIds();
int numberOfItemsToProcess = Math.min(invocationsPerBatchJob * batchJobsPerSeed, ids.size());
// view of process instances to process
List<String> processIds = ids.subList(0, numberOfItemsToProcess);
int createdJobs = 0;
while (!processIds.isEmpty()) {
int lastIdIndex = Math.min(invocationsPerBatchJob, processIds.size());
// view of process instances for this job
List<String> idsForJob = processIds.subList(0, lastIdIndex);
T jobConfiguration = createJobConfiguration(configuration, idsForJob);
ByteArrayEntity configurationEntity = saveConfiguration(byteArrayManager, jobConfiguration);
JobEntity job = createBatchJob(batch, configurationEntity);
postProcessJob(configuration, job);
jobManager.insertAndHintJobExecutor(job);
idsForJob.clear();
createdJobs++;
}
// update created jobs for batch
batch.setJobsCreated(batch.getJobsCreated() + createdJobs);
// update batch configuration
batch.setConfigurationBytes(writeConfiguration(configuration));
return ids.isEmpty();
}
use of org.camunda.bpm.engine.impl.interceptor.CommandContext in project camunda-bpm-platform by camunda.
the class BatchEntity method delete.
public void delete(boolean cascadeToHistory) {
CommandContext commandContext = Context.getCommandContext();
deleteSeedJob();
deleteMonitorJob();
getBatchJobHandler().deleteJobs(this);
JobDefinitionManager jobDefinitionManager = commandContext.getJobDefinitionManager();
jobDefinitionManager.delete(getSeedJobDefinition());
jobDefinitionManager.delete(getMonitorJobDefinition());
jobDefinitionManager.delete(getBatchJobDefinition());
commandContext.getBatchManager().delete(this);
configuration.deleteByteArrayValue();
fireHistoricEndEvent();
if (cascadeToHistory) {
HistoricIncidentManager historicIncidentManager = commandContext.getHistoricIncidentManager();
historicIncidentManager.deleteHistoricIncidentsByJobDefinitionId(seedJobDefinitionId);
historicIncidentManager.deleteHistoricIncidentsByJobDefinitionId(monitorJobDefinitionId);
historicIncidentManager.deleteHistoricIncidentsByJobDefinitionId(batchJobDefinitionId);
HistoricJobLogManager historicJobLogManager = commandContext.getHistoricJobLogManager();
historicJobLogManager.deleteHistoricJobLogsByJobDefinitionId(seedJobDefinitionId);
historicJobLogManager.deleteHistoricJobLogsByJobDefinitionId(monitorJobDefinitionId);
historicJobLogManager.deleteHistoricJobLogsByJobDefinitionId(batchJobDefinitionId);
commandContext.getHistoricBatchManager().deleteHistoricBatchById(id);
}
}
use of org.camunda.bpm.engine.impl.interceptor.CommandContext in project camunda-bpm-platform by camunda.
the class HistoricProcessInstanceReportImpl method duration.
// report execution /////////////////////////////////////////////
public List<DurationReportResult> duration(PeriodUnit periodUnit) {
ensureNotNull(NotValidException.class, "periodUnit", periodUnit);
this.durationPeriodUnit = periodUnit;
CommandContext commandContext = Context.getCommandContext();
if (commandContext == null) {
return commandExecutor.execute(new Command<List<DurationReportResult>>() {
@Override
public List<DurationReportResult> execute(CommandContext commandContext) {
return executeDurationReport(commandContext);
}
});
} else {
return executeDurationReport(commandContext);
}
}
use of org.camunda.bpm.engine.impl.interceptor.CommandContext in project camunda-bpm-platform by camunda.
the class ProcessApplicationManager method getDeployedProcessDefinitionArtifacts.
protected List<ProcessDefinition> getDeployedProcessDefinitionArtifacts(DeploymentEntity deployment) {
CommandContext commandContext = Context.getCommandContext();
// in case deployment was created by this command
List<ProcessDefinition> entities = deployment.getDeployedProcessDefinitions();
if (entities == null) {
String deploymentId = deployment.getId();
ProcessDefinitionManager manager = commandContext.getProcessDefinitionManager();
return manager.findProcessDefinitionsByDeploymentId(deploymentId);
}
return entities;
}
Aggregations