use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.
the class AbstractSchedulableTaskExecutor method execute.
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
if (this.isDisabled()) {
LOG.warn("Task [{}] is disabled and cannot be executed, remove schedule for this task to hide this warning.", AutowireHelper.getTargetClass(this).getSimpleName());
//
return;
}
String executionDateProperty = context.getMergedJobDataMap().getString(EntityEvent.EVENT_PROPERTY_EXECUTE_DATE);
if (StringUtils.isNotBlank(executionDateProperty)) {
ZonedDateTime executionDate = ZonedDateTime.parse(executionDateProperty);
// Is it safe to ask about now and count with delay after task execution?
if (ZonedDateTime.now().isBefore(executionDate)) {
LOG.debug("Task [{}] first fire time will be executed after [{}].", AutowireHelper.getTargetClass(this).getSimpleName(), executionDateProperty);
//
return;
}
}
// run as system - called from scheduler internall
if (securityService.isAuthenticated() && !securityService.isSystemAuthenticated()) {
throw new CoreException("System want to reuse thread logged with identity [" + securityService.getCurrentUsername() + "] for system processing!");
}
securityService.setSystemAuthentication();
//
// scheduled task is quartz reference to IdM entity
IdmScheduledTaskDto taskDto = getScheduledTask(context);
//
// add task to queue only - quartz will start take care of the rest
createIdmLongRunningTask(context, taskDto);
}
use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.
the class IdmLongRunningTaskItemControllerRestTest method deleteItem.
@Test
public void deleteItem() throws Exception {
IdmScheduledTaskDto scheduledTaskDto = getHelper().createSchedulableTask();
IdmProcessedTaskItemDto taskItem = service.saveInternal(getHelper().prepareProcessedItem(scheduledTaskDto));
getMockMvc().perform(get(BaseController.BASE_PATH + PATH + "/" + taskItem.getId()).with(authentication(getAuthentication())).contentType(TestHelper.HAL_CONTENT_TYPE)).andExpect(status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(TestHelper.HAL_CONTENT_TYPE)).andExpect(jsonPath("$.id", equalTo(taskItem.getId().toString())));
int status = getMockMvc().perform(delete(BaseController.BASE_PATH + PATH + "/" + taskItem.getId()).contentType(MediaType.APPLICATION_JSON)).andReturn().getResponse().getStatus();
assertEquals(403, status);
getMockMvc().perform(get(BaseController.BASE_PATH + PATH + "/" + taskItem.getId()).with(authentication(getAuthentication())).contentType(TestHelper.HAL_CONTENT_TYPE)).andExpect(status().isOk());
}
use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmScheduledTaskService method findByQuartzTaskName.
@Override
@Transactional(readOnly = true)
public IdmScheduledTaskDto findByQuartzTaskName(String taskName) {
IdmScheduledTaskFilter filter = new IdmScheduledTaskFilter();
filter.setQuartzTaskName(taskName);
Page<IdmScheduledTaskDto> results = find(filter, PageRequest.of(0, 1));
if (results.getTotalElements() == 0) {
return null;
} else if (results.getTotalElements() == 1) {
return results.iterator().next();
}
throw new SchedulerException(CoreResultCode.SEARCH_ERROR, ImmutableMap.of("reason", "Multiple tasks found for " + getClass().getSimpleName() + " task."));
}
use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmProcessedTaskItemServiceTest method testDeleteLogItemIntegrity.
@Test
public void testDeleteLogItemIntegrity() {
IdmScheduledTaskDto d = getHelper().createSchedulableTask();
IdmLongRunningTaskDto lrt = this.createLongRunningTask(d);
IdmProcessedTaskItemDto item = service.saveInternal(getHelper().prepareProcessedItem(lrt));
//
longrunningService.deleteInternal(lrt);
//
assertNull(longrunningService.get(lrt.getId()));
assertNull(service.get(item.getId()));
assertNotNull(scheduledTaskService.get(d.getId()));
}
use of eu.bcvsolutions.idm.core.scheduler.api.dto.IdmScheduledTaskDto in project CzechIdMng by bcvsolutions.
the class DefaultIdmProcessedTaskItemServiceTest method testImmutable.
@Test
public void testImmutable() {
IdmScheduledTaskDto d = getHelper().createSchedulableTask();
IdmLongRunningTaskDto lrt = this.createLongRunningTask(d);
IdmProcessedTaskItemDto item = getHelper().prepareProcessedItem(lrt);
IdmProcessedTaskItemDto saved = service.get(service.saveInternal(item).getId());
// set fields to new value
saved.setReferencedDtoType(IdmIdentityContractDto.class.getCanonicalName());
saved.setReferencedEntityId(UUID.randomUUID());
saved.setLongRunningTask(this.createLongRunningTask(d).getId());
//
IdmProcessedTaskItemDto retrieved = service.get(service.saveInternal(saved).getId());
// fields must not update
assertEquals(item.getLongRunningTask(), retrieved.getLongRunningTask());
assertEquals(item.getReferencedDtoType(), retrieved.getReferencedDtoType());
assertEquals(item.getReferencedEntityId(), retrieved.getReferencedEntityId());
//
assertNotEquals(item.getLongRunningTask(), saved.getLongRunningTask());
assertNotEquals(item.getReferencedDtoType(), saved.getReferencedDtoType());
assertNotEquals(item.getReferencedEntityId(), saved.getReferencedEntityId());
}
Aggregations