Skip to content

Commit

Permalink
MID-1971: Workflow calls are going through model API.
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Jul 17, 2014
1 parent 94185a4 commit 2a9d329
Show file tree
Hide file tree
Showing 13 changed files with 58 additions and 48 deletions.
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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<T> getAvailableData() {
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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")
Expand Down Expand Up @@ -102,6 +105,10 @@ protected TaskManager getTaskManager() {
return taskManager;
}

protected WorkflowService getWorkflowService() {
return workflowService;
}

protected WorkflowManager getWorkflowManager() {
return workflowManager;
}
Expand Down
Expand Up @@ -51,7 +51,6 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;

/**
* @author lazyman
Expand Down Expand Up @@ -187,7 +186,7 @@ private CallableResult<List<WorkItemDto>> loadWorkItems() {
callableResult.setResult(result);

try {
List<WorkItemType> workItems = getWorkflowManager().listWorkItemsRelatedToUser(user.getOid(),
List<WorkItemType> workItems = getWorkflowService().listWorkItemsRelatedToUser(user.getOid(),
true, 0, MAX_WORK_ITEMS, result);
for (WorkItemType workItem : workItems) {
list.add(new WorkItemDto(workItem));
Expand Down
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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.*;
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
Expand Down
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -294,18 +294,18 @@ 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);
}
}
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);
}
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -301,7 +301,7 @@ private ObjectWrapper getObjectNewWrapper() {
private PrismObject<? extends ObjectType> createEmptyUserObject() {
PrismObject<? extends ObjectType> p = new PrismObject<UserType>(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);
}
Expand Down Expand Up @@ -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();
Expand All @@ -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();
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand Down
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -85,7 +86,7 @@ public Iterator<? extends ProcessInstanceDto> internalIterator(long first, long
// order = OrderDirectionType.DESCENDING;
// }

WorkflowManager wfm = getWorkflowService();
WorkflowService wfm = getWorkflowService();
List<WfProcessInstanceType> items = wfm.listProcessInstancesRelatedToUser(currentUser(), requestedBy,
requestedFor, finished, WebMiscUtil.safeLongToInteger(first), WebMiscUtil.safeLongToInteger(count),
result);
Expand Down Expand Up @@ -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);
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -77,7 +78,7 @@ public Iterator<? extends WorkItemDto> internalIterator(long first, long count)
// order = OrderDirectionType.DESCENDING;
// }

WorkflowManager wfm = getWorkflowService();
WorkflowService wfm = getWorkflowService();
List<WorkItemType> items = wfm.listWorkItemsRelatedToUser(currentUser(), assigned,
WebMiscUtil.safeLongToInteger(first), WebMiscUtil.safeLongToInteger(count), result);

Expand Down Expand Up @@ -106,9 +107,9 @@ public Iterator<? extends WorkItemDto> 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);
}
Expand Down

0 comments on commit 2a9d329

Please sign in to comment.