From 2a9d3292298d7085fa79548b7687fc469c933d72 Mon Sep 17 00:00:00 2001 From: Pavol Mederly Date: Thu, 17 Jul 2014 11:33:13 +0200 Subject: [PATCH] MID-1971: Workflow calls are going through model API. --- .../data/BaseSortableDataProvider.java | 6 +++--- .../evolveum/midpoint/web/page/PageBase.java | 7 +++++++ .../web/page/admin/home/PageDashboard.java | 3 +-- .../web/page/admin/server/PageTaskEdit.java | 10 ---------- .../admin/workflow/PageProcessInstance.java | 5 ++--- .../admin/workflow/PageProcessInstances.java | 8 ++++---- .../web/page/admin/workflow/PageWorkItem.java | 18 +++++++++--------- .../web/page/admin/workflow/PageWorkItems.java | 14 +++++++------- .../dto/ProcessInstanceDtoProvider.java | 7 ++++--- .../workflow/dto/WorkItemDtoProvider.java | 7 ++++--- .../web/security/MidPointApplication.java | 8 ++++---- .../midpoint/model/api/WorkflowService.java | 3 +++ .../model/impl/controller/ModelController.java | 10 ++++++++++ 13 files changed, 58 insertions(+), 48 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java index bd36b2b0f6a..e74fe2a5c56 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/BaseSortableDataProvider.java @@ -19,6 +19,7 @@ import com.evolveum.midpoint.model.api.ModelInteractionService; import com.evolveum.midpoint.model.api.ModelService; import com.evolveum.midpoint.model.api.TaskService; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.OrderDirection; @@ -29,7 +30,6 @@ import com.evolveum.midpoint.web.page.PageBase; import com.evolveum.midpoint.web.security.MidPointApplication; import com.evolveum.midpoint.web.util.WebMiscUtil; -import com.evolveum.midpoint.wf.api.WorkflowManager; import org.apache.commons.lang.Validate; import org.apache.wicket.Component; import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; @@ -89,9 +89,9 @@ protected ModelInteractionService getModelInteractionService() { return application.getModelInteractionService(); } - protected WorkflowManager getWorkflowService() { + protected WorkflowService getWorkflowService() { MidPointApplication application = (MidPointApplication) MidPointApplication.get(); - return application.getWorkflowManager(); + return application.getWorkflowService(); } public List getAvailableData() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageBase.java index 0c3e48bd245..669b82df92f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/PageBase.java @@ -24,6 +24,7 @@ import com.evolveum.midpoint.model.api.ModelInteractionService; import com.evolveum.midpoint.model.api.ModelService; import com.evolveum.midpoint.model.api.TaskService; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.prism.Objectable; import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.PrismObject; @@ -68,6 +69,8 @@ public abstract class PageBase extends PageTemplate { private ModelDiagnosticService modelDiagnosticService; @SpringBean(name = "taskManager") private TaskManager taskManager; + @SpringBean(name = "modelController") + private WorkflowService workflowService; @SpringBean(name = "workflowManager") private WorkflowManager workflowManager; @SpringBean(name = "midpointConfiguration") @@ -102,6 +105,10 @@ protected TaskManager getTaskManager() { return taskManager; } + protected WorkflowService getWorkflowService() { + return workflowService; + } + protected WorkflowManager getWorkflowManager() { return workflowManager; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java index b84839a5ae0..dcbd973dbfa 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/home/PageDashboard.java @@ -51,7 +51,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.concurrent.Callable; /** * @author lazyman @@ -187,7 +186,7 @@ private CallableResult> loadWorkItems() { callableResult.setResult(result); try { - List workItems = getWorkflowManager().listWorkItemsRelatedToUser(user.getOid(), + List workItems = getWorkflowService().listWorkItemsRelatedToUser(user.getOid(), true, 0, MAX_WORK_ITEMS, result); for (WorkItemType workItem : workItems) { list.add(new WorkItemDto(workItem)); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java index eeb6491ba3f..189672215d0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTaskEdit.java @@ -58,8 +58,6 @@ import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProviderOptions; import com.evolveum.midpoint.web.page.admin.server.subtasks.SubtasksPanel; import com.evolveum.midpoint.web.page.admin.server.workflowInformation.WorkflowInformationPanel; -import com.evolveum.midpoint.web.page.admin.users.PageAdminUsers; -import com.evolveum.midpoint.web.resource.img.ImgResources; import com.evolveum.midpoint.web.util.InfoTooltipBehavior; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.web.util.WebMiscUtil; @@ -69,23 +67,16 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ThreadStopActionType; -import org.apache.commons.lang.StringUtils; import org.apache.wicket.AttributeModifier; -import org.apache.wicket.Component; -import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox; -import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider; -import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.*; -import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.AbstractReadOnlyModel; @@ -94,7 +85,6 @@ import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.request.resource.PackageResourceReference; import org.apache.wicket.util.string.StringValue; import java.util.*; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstance.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstance.java index 6b1e62a1210..700fba2ac40 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstance.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstance.java @@ -29,7 +29,6 @@ import com.evolveum.midpoint.web.page.PageBase; import com.evolveum.midpoint.web.page.PageTemplate; import com.evolveum.midpoint.web.page.admin.server.PageTaskAdd; -import com.evolveum.midpoint.web.page.admin.users.PageAdminUsers; import com.evolveum.midpoint.web.page.admin.workflow.dto.ProcessInstanceDto; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.xml.ns._public.common.common_3.WfProcessInstanceType; @@ -94,11 +93,11 @@ private ProcessInstanceDto loadProcessInstance() { boolean finished = parameters.get(PARAM_PROCESS_INSTANCE_FINISHED).toBoolean(); WfProcessInstanceType processInstance; try { - processInstance = getWorkflowManager().getProcessInstanceById(pid.toString(), finished, true, result); + processInstance = getWorkflowService().getProcessInstanceById(pid.toString(), finished, true, result); } catch (ObjectNotFoundException e) { if (finished == false) { // maybe the process instance has finished in the meanwhile... - processInstance = getWorkflowManager().getProcessInstanceById(pid.toString(), true, true, result); + processInstance = getWorkflowService().getProcessInstanceById(pid.toString(), true, true, result); } else { throw e; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstances.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstances.java index 06a011afd36..83e22679f43 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstances.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageProcessInstances.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.web.page.admin.workflow; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.prism.xml.XmlTypeConverter; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.result.OperationResultStatus; @@ -32,7 +33,6 @@ import com.evolveum.midpoint.web.security.SecurityUtils; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.web.util.WebMiscUtil; -import com.evolveum.midpoint.wf.api.WorkflowManager; import com.evolveum.midpoint.wf.util.ApprovalUtils; import org.apache.commons.lang.time.DurationFormatUtils; @@ -294,10 +294,10 @@ private void stopProcessInstancesPerformed(AjaxRequestTarget target) { OperationResult result = new OperationResult(OPERATION_STOP_PROCESS_INSTANCES); - WorkflowManager workflowManagerImpl = getWorkflowManager(); + WorkflowService workflowService = getWorkflowService(); for (ProcessInstanceDto processInstanceDto : processInstanceDtoList) { try { - workflowManagerImpl.stopProcessInstance(processInstanceDto.getInstanceId(), + workflowService.stopProcessInstance(processInstanceDto.getInstanceId(), WebMiscUtil.getOrigStringFromPoly(user.getName()), result); } catch (Exception ex) { // todo result.createSubresult("stopProcessInstance").recordPartialError("Couldn't stop process instance " + processInstanceDto.getName(), ex); @@ -305,7 +305,7 @@ private void stopProcessInstancesPerformed(AjaxRequestTarget target) { } for (ProcessInstanceDto processInstanceDto : finishedProcessInstanceDtoList) { try { - workflowManagerImpl.deleteProcessInstance(processInstanceDto.getInstanceId(), result); + workflowService.deleteProcessInstance(processInstanceDto.getInstanceId(), result); } catch (Exception ex) { // todo result.createSubresult("deleteProcessInstance").recordPartialError("Couldn't delete process instance " + processInstanceDto.getName(), ex); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItem.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItem.java index 68406172000..41aa25da72a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItem.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItem.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.web.page.admin.workflow; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.delta.ObjectDelta; import com.evolveum.midpoint.prism.polystring.PolyString; @@ -53,7 +54,6 @@ import com.evolveum.midpoint.web.resource.img.ImgResources; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.web.util.WebMiscUtil; -import com.evolveum.midpoint.wf.api.WorkflowManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; import com.evolveum.midpoint.xml.ns._public.common.common_3.WfProcessInstanceType; @@ -301,7 +301,7 @@ private ObjectWrapper getObjectNewWrapper() { private PrismObject createEmptyUserObject() { PrismObject p = new PrismObject(UserType.COMPLEX_TYPE, UserType.class); try { - getWorkflowManager().getPrismContext().adopt(p); + getPrismContext().adopt(p); } catch (SchemaException e) { // safe to convert; this should not occur throw new SystemException("Got schema exception when creating empty user object.", e); } @@ -393,7 +393,7 @@ private WorkItemDetailedDto loadWorkItemDetailedDtoIfNecessary() { WorkItemDetailedDto workItemDetailedDto = null; WorkItemType workItem = null; try { - WorkflowManager wfm = getWorkflowManager(); + WorkflowService wfm = getWorkflowService(); workItem = wfm.getWorkItemDetailsById(parameters.get(OnePageParameterEncoder.PARAMETER).toString(), result); workItemDetailedDto = new WorkItemDetailedDto(workItem, getPrismContext()); result.recordSuccessIfUnknown(); @@ -416,7 +416,7 @@ private ProcessInstanceDto loadProcessInstanceDto() { try { String taskId = parameters.get(OnePageParameterEncoder.PARAMETER).toString(); LOGGER.trace("Loading process instance for task {}", taskId); - WorkflowManager wfm = getWorkflowManager(); + WorkflowService wfm = getWorkflowService(); processInstance = wfm.getProcessInstanceByWorkItemId(taskId, result); LOGGER.trace("Found process instance {}", processInstance); String shadowTaskOid = ((ProcessInstanceState) processInstance.getState()).getShadowTaskOid(); @@ -766,7 +766,7 @@ private void savePerformed(AjaxRequestTarget target, boolean decision) { ObjectDelta delta = rsWrapper.getObjectDelta(); delta.applyTo(object); - getWorkflowManager().approveOrRejectWorkItemWithDetails(workItemDtoModel.getObject().getWorkItem().getWorkItemId(), object, decision, result); + getWorkflowService().approveOrRejectWorkItemWithDetails(workItemDtoModel.getObject().getWorkItem().getWorkItemId(), object, decision, result); setReinitializePreviousPages(true); } catch (Exception ex) { result.recordFatalError("Couldn't save work item.", ex); @@ -787,9 +787,9 @@ private void savePerformed(AjaxRequestTarget target, boolean decision) { private void claimPerformed(AjaxRequestTarget target) { OperationResult result = new OperationResult(OPERATION_CLAIM_WORK_ITEM); - WorkflowManager workflowManagerImpl = getWorkflowManager(); + WorkflowService workflowService = getWorkflowService(); try { - workflowManagerImpl.claimWorkItem(workItemDtoModel.getObject().getWorkItem().getWorkItemId(), result); + workflowService.claimWorkItem(workItemDtoModel.getObject().getWorkItem().getWorkItemId(), result); setReinitializePreviousPages(true); } catch (RuntimeException e) { result.recordFatalError("Couldn't claim work item due to an unexpected exception.", e); @@ -808,9 +808,9 @@ private void claimPerformed(AjaxRequestTarget target) { private void releasePerformed(AjaxRequestTarget target) { OperationResult result = new OperationResult(OPERATION_RELEASE_WORK_ITEM); - WorkflowManager workflowManagerImpl = getWorkflowManager(); + WorkflowService workflowService = getWorkflowService(); try { - workflowManagerImpl.releaseWorkItem(workItemDtoModel.getObject().getWorkItem().getWorkItemId(), result); + workflowService.releaseWorkItem(workItemDtoModel.getObject().getWorkItem().getWorkItemId(), result); setReinitializePreviousPages(true); } catch (RuntimeException e) { result.recordFatalError("Couldn't release work item due to an unexpected exception.", e); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItems.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItems.java index a9317fd736f..911b789e1b0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItems.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/PageWorkItems.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.web.page.admin.workflow; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.prism.xml.XmlTypeConverter; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.result.OperationResultStatus; @@ -32,7 +33,6 @@ import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; import com.evolveum.midpoint.web.util.WebMiscUtil; -import com.evolveum.midpoint.wf.api.WorkflowManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -227,11 +227,11 @@ private void approveOrRejectWorkItemsPerformed(AjaxRequestTarget target, boolean } OperationResult mainResult = new OperationResult(OPERATION_APPROVE_OR_REJECT_ITEMS); - WorkflowManager workflowManagerImpl = getWorkflowManager(); + WorkflowService workflowService = getWorkflowService(); for (WorkItemDto workItemDto : workItemDtoList) { OperationResult result = mainResult.createSubresult(OPERATION_APPROVE_OR_REJECT_ITEM); try { - workflowManagerImpl.approveOrRejectWorkItem(workItemDto.getWorkItem().getWorkItemId(), approve, result); + workflowService.approveOrRejectWorkItem(workItemDto.getWorkItem().getWorkItemId(), approve, result); result.computeStatus(); } catch (Exception e) { result.recordPartialError("Couldn't approve/reject work item due to an unexpected exception.", e); @@ -259,11 +259,11 @@ private void claimWorkItemsPerformed(AjaxRequestTarget target) { } OperationResult mainResult = new OperationResult(OPERATION_CLAIM_ITEMS); - WorkflowManager workflowManagerImpl = getWorkflowManager(); + WorkflowService workflowService = getWorkflowService(); for (WorkItemDto workItemDto : workItemDtoList) { OperationResult result = mainResult.createSubresult(OPERATION_CLAIM_ITEM); try { - workflowManagerImpl.claimWorkItem(workItemDto.getWorkItem().getWorkItemId(), result); + workflowService.claimWorkItem(workItemDto.getWorkItem().getWorkItemId(), result); result.computeStatusIfUnknown(); } catch (RuntimeException e) { result.recordPartialError("Couldn't claim work item due to an unexpected exception.", e); @@ -291,11 +291,11 @@ private void releaseWorkItemsPerformed(AjaxRequestTarget target) { } OperationResult mainResult = new OperationResult(OPERATION_RELEASE_ITEMS); - WorkflowManager workflowManagerImpl = getWorkflowManager(); + WorkflowService workflowService = getWorkflowService(); for (WorkItemDto workItemDto : workItemDtoList) { OperationResult result = mainResult.createSubresult(OPERATION_RELEASE_ITEM); try { - workflowManagerImpl.releaseWorkItem(workItemDto.getWorkItem().getWorkItemId(), result); + workflowService.releaseWorkItem(workItemDto.getWorkItem().getWorkItemId(), result); result.computeStatusIfUnknown(); } catch (RuntimeException e) { result.recordPartialError("Couldn't release work item due to an unexpected exception.", e); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/ProcessInstanceDtoProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/ProcessInstanceDtoProvider.java index f7511b00088..8a8ddf4f81b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/ProcessInstanceDtoProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/ProcessInstanceDtoProvider.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.web.page.admin.workflow.dto; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.security.api.MidPointPrincipal; import com.evolveum.midpoint.util.logging.LoggingUtils; @@ -85,7 +86,7 @@ public Iterator internalIterator(long first, long // order = OrderDirectionType.DESCENDING; // } - WorkflowManager wfm = getWorkflowService(); + WorkflowService wfm = getWorkflowService(); List items = wfm.listProcessInstancesRelatedToUser(currentUser(), requestedBy, requestedFor, finished, WebMiscUtil.safeLongToInteger(first), WebMiscUtil.safeLongToInteger(count), result); @@ -120,8 +121,8 @@ protected int internalSize() { int count = 0; OperationResult result = new OperationResult(OPERATION_COUNT_ITEMS); try { - WorkflowManager workflowManager = getWorkflowService(); - count = workflowManager.countProcessInstancesRelatedToUser(currentUser(), requestedBy, requestedFor, finished, result); + WorkflowService workflowService = getWorkflowService(); + count = workflowService.countProcessInstancesRelatedToUser(currentUser(), requestedBy, requestedFor, finished, result); } catch (Exception ex) { String msg = "Couldn't list process instances"; LoggingUtils.logException(LOGGER, msg, ex); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/WorkItemDtoProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/WorkItemDtoProvider.java index 7bfa0df0aa0..0f36e615253 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/WorkItemDtoProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/workflow/dto/WorkItemDtoProvider.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.web.page.admin.workflow.dto; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.security.api.MidPointPrincipal; import com.evolveum.midpoint.util.exception.ObjectNotFoundException; @@ -77,7 +78,7 @@ public Iterator internalIterator(long first, long count) // order = OrderDirectionType.DESCENDING; // } - WorkflowManager wfm = getWorkflowService(); + WorkflowService wfm = getWorkflowService(); List items = wfm.listWorkItemsRelatedToUser(currentUser(), assigned, WebMiscUtil.safeLongToInteger(first), WebMiscUtil.safeLongToInteger(count), result); @@ -106,9 +107,9 @@ public Iterator internalIterator(long first, long count) protected int internalSize() { int count = 0; OperationResult result = new OperationResult(OPERATION_COUNT_ITEMS); - WorkflowManager workflowManager = getWorkflowService(); + WorkflowService workflowService = getWorkflowService(); try { - count = workflowManager.countWorkItemsRelatedToUser(currentUser(), assigned, result); + count = workflowService.countWorkItemsRelatedToUser(currentUser(), assigned, result); } catch (SchemaException|ObjectNotFoundException e) { throw new SystemException("Couldn't count work items: " + e.getMessage(), e); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java index bb8c790a4db..e62e008f6e1 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/security/MidPointApplication.java @@ -20,6 +20,7 @@ import com.evolveum.midpoint.model.api.ModelInteractionService; import com.evolveum.midpoint.model.api.ModelService; import com.evolveum.midpoint.model.api.TaskService; +import com.evolveum.midpoint.model.api.WorkflowService; import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.crypto.Protector; import com.evolveum.midpoint.task.api.TaskManager; @@ -36,7 +37,6 @@ import com.evolveum.midpoint.web.page.login.PageLogin; import com.evolveum.midpoint.web.resource.img.ImgResources; import com.evolveum.midpoint.web.util.MidPointPageParametersEncoder; -import com.evolveum.midpoint.wf.api.WorkflowManager; import org.apache.commons.configuration.Configuration; import org.apache.wicket.RuntimeConfigurationType; import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession; @@ -92,7 +92,7 @@ public class MidPointApplication extends AuthenticatedWebApplication { @Autowired transient TaskManager taskManager; @Autowired - transient private WorkflowManager workflowManager; + transient private WorkflowService workflowService; @Autowired transient MidpointConfiguration configuration; @Autowired(required = true) @@ -221,8 +221,8 @@ protected Class getWebSessionClass() return MidPointAuthWebSession.class; } - public WorkflowManager getWorkflowManager() { - return workflowManager; + public WorkflowService getWorkflowService() { + return workflowService; } public ModelInteractionService getModelInteractionService() { diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/WorkflowService.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/WorkflowService.java index d8a10bf3620..8f54bdf0c06 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/WorkflowService.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/WorkflowService.java @@ -101,4 +101,7 @@ public interface WorkflowService { void deleteProcessInstance(String instanceId, OperationResult parentResult); + void claimWorkItem(String workItemId, OperationResult parentResult); + + void releaseWorkItem(String workItemId, OperationResult parentResult); } diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelController.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelController.java index e51cf91d151..9bac4c021a2 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelController.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelController.java @@ -1768,6 +1768,16 @@ public void stopProcessInstance(String instanceId, String username, OperationRes public void deleteProcessInstance(String instanceId, OperationResult parentResult) { workflowManager.deleteProcessInstance(instanceId, parentResult); } + + @Override + public void claimWorkItem(String workItemId, OperationResult parentResult) { + workflowManager.claimWorkItem(workItemId, parentResult); + } + + @Override + public void releaseWorkItem(String workItemId, OperationResult parentResult) { + workflowManager.releaseWorkItem(workItemId, parentResult); + } //endregion } \ No newline at end of file