diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java index 9fa35cdaa4b..8611200336c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MemberPopupTabPanel.java @@ -18,24 +18,17 @@ import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.prism.delta.ObjectDelta; -import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.schema.constants.RelationTypes; -import com.evolveum.midpoint.schema.constants.SchemaConstants; -import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.util.logging.LoggingUtils; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; import com.evolveum.midpoint.web.component.input.RelationDropDownChoicePanel; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; -import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.collections.CollectionUtils; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.panel.Fragment; -import org.apache.wicket.model.Model; import javax.xml.namespace.QName; import java.util.ArrayList; @@ -94,8 +87,7 @@ protected ObjectDelta prepareDelta(){ Class classType = WebComponentUtil.qnameToClass(pageBase.getPrismContext(), getObjectType().getTypeQName()); delta = ObjectDelta.createEmptyModifyDelta(classType, "fakeOid", pageBase.getPrismContext()); AssignmentType newAssignment = new AssignmentType(); - ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(getAbstractRoleTypeObject()); - ref.setRelation(getRelationValue()); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(getAbstractRoleTypeObject(), getRelationValue()); newAssignment.setTargetRef(ref); pageBase.getPrismContext().adopt(newAssignment); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MultiTypesMemberPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MultiTypesMemberPopupTabPanel.java index 17e47e8ebd1..e721fd817f3 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MultiTypesMemberPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/MultiTypesMemberPopupTabPanel.java @@ -19,15 +19,9 @@ import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.prism.delta.ObjectDelta; import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.schema.constants.RelationTypes; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; -import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.task.api.TaskCategory; -import com.evolveum.midpoint.util.exception.SchemaException; -import com.evolveum.midpoint.util.logging.LoggingUtils; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.page.admin.roles.AbstractRoleMemberPanel; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -35,8 +29,6 @@ import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.EnumChoiceRenderer; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import javax.xml.namespace.QName; import java.util.ArrayList; @@ -93,8 +85,7 @@ protected void onUpdate(AjaxRequestTarget target) { @Override protected ObjectDelta prepareDelta(){ Class classType = WebComponentUtil.qnameToClass(getPageBase().getPrismContext(), getObjectType().getTypeQName()); - ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(getAbstractRoleTypeObject()); - ref.setRelation(getRelationValue()); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(getAbstractRoleTypeObject(), getRelationValue()); return ObjectDelta.createModificationAddReference(classType, "fakeOid", ObjectType.F_PARENT_ORG_REF, getPageBase().getPrismContext(), ref.asReferenceValue()); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java index c4215ced7e2..103dcfb3f41 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ResourceTypeAssignmentPopupTabPanel.java @@ -161,7 +161,9 @@ protected Map getSelectedAssignmentsMap(){ ShadowKindType kind = getKindValue(); String intent = getIntentValue(); selectedObjects.forEach(selectedObject -> { - assignmentList.put(selectedObject.getOid(), ObjectTypeUtil.createAssignmentWithConstruction(selectedObject.asPrismObject(), kind, intent)); + assignmentList.put(selectedObject.getOid(), + ObjectTypeUtil.createAssignmentWithConstruction( + selectedObject.asPrismObject(), kind, intent, getPageBase().getPrismContext())); }); return assignmentList; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java index e1b8a90d077..5734febd965 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java @@ -165,9 +165,7 @@ import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectName; -import javax.xml.namespace.QName; -import java.io.Serializable; import java.util.*; /** @@ -358,7 +356,7 @@ protected Integer load() { Task task = createSimpleTask(OPERATION_LOAD_WORK_ITEM_COUNT); S_FilterEntryOrEmpty q = QueryBuilder.queryFor(WorkItemType.class, getPrismContext()); ObjectQuery query = QueryUtils.filterForAssignees(q, getPrincipal(), - OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS).build(); + OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS, getPrismContext()).build(); // TODO MID-3581 return getModelService().countContainers(WorkItemType.class, query, null, task, task.getResult()); } catch (SchemaException | SecurityViolationException | ExpressionEvaluationException | ObjectNotFoundException | CommunicationException | ConfigurationException e) { LoggingUtils.logExceptionAsWarning(LOGGER, "Couldn't load work item count", e); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 115472bae4c..dfa74ed13ff 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -2489,7 +2489,8 @@ public static boolean getElementVisibility(UserInterfaceElementVisibilityType vi return true; } - public static IModel createAbstractRoleConfirmationMessage(String actionName, ColumnMenuAction action, MainObjectListPanel abstractRoleTable, PageBase pageBase) { + public static IModel createAbstractRoleConfirmationMessage(String actionName, + ColumnMenuAction action, MainObjectListPanel abstractRoleTable, PageBase pageBase) { List selectedRoles = new ArrayList<>(); if (action.getRowModel() == null) { selectedRoles.addAll(abstractRoleTable.getSelectedObjects()); @@ -2499,7 +2500,11 @@ public static IModel createAbstractRoleCon OperationResult result = new OperationResult("Search Members"); boolean atLeastOneWithMembers = false; for (AR selectedRole : selectedRoles) { - ObjectQuery query = QueryBuilder.queryFor(FocusType.class, pageBase.getPrismContext()).item(FocusType.F_ROLE_MEMBERSHIP_REF).ref(ObjectTypeUtil.createObjectRef(selectedRole).asReferenceValue()).maxSize(1).build(); + ObjectQuery query = QueryBuilder.queryFor(FocusType.class, pageBase.getPrismContext()) + .item(FocusType.F_ROLE_MEMBERSHIP_REF)// TODO MID-3581 + .ref(ObjectTypeUtil.createObjectRef(selectedRole, pageBase.getPrismContext()).asReferenceValue()) + .maxSize(1) + .build(); List> members = WebModelServiceUtils.searchObjects(FocusType.class, query, result, pageBase); if (CollectionUtils.isNotEmpty(members)) { atLeastOneWithMembers = true; @@ -2601,6 +2606,10 @@ public static List getRelationDefinitions(ModelServiceLo return pageBase.getModelInteractionService().getRelationDefinitions(); } + public static RelationDefinitionType getRelationDefinition(QName relation) { + return getRelationRegistry().getRelationDefinition(relation); + } + public static DropDownChoice createTriStateCombo(String id, IModel model) { final IChoiceRenderer renderer = new IChoiceRenderer() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java index 91834255daa..9e5a9af7b2b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebModelServiceUtils.java @@ -33,7 +33,6 @@ import com.evolveum.midpoint.web.component.prism.ItemWrapper; import com.evolveum.midpoint.web.component.prism.ObjectWrapper; import com.evolveum.midpoint.web.component.prism.ObjectWrapperFactory; -import com.evolveum.midpoint.web.component.prism.PropertyOrReferenceWrapper; import com.evolveum.midpoint.web.component.prism.ValueStatus; import com.evolveum.midpoint.web.page.error.PageError; import com.evolveum.midpoint.web.page.login.PageLogin; @@ -160,7 +159,7 @@ public static List createObjectRefer for(PrismObject object: objects){ referenceMap.put(object.getOid(), WebComponentUtil.getName(object)); - references.add(ObjectTypeUtil.createObjectRef(object)); + references.add(ObjectTypeUtil.createObjectRef(object, page.getPrismContext())); } return references; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java index 7f6a21487dd..c24b4d16806 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/ApplicablePolicyGroupPanel.java @@ -20,7 +20,6 @@ import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; -import com.evolveum.midpoint.prism.ItemDefinition; import com.evolveum.midpoint.prism.PrismContainerValue; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.query.ObjectQuery; @@ -30,7 +29,6 @@ import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.component.data.column.IsolatedCheckBoxPanel; import com.evolveum.midpoint.web.component.prism.*; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -174,7 +172,7 @@ private void onPolicyAddedOrRemoved(PrismObject assignmentTarg if (added){ //TODO: not sure if this is correct way of creating new value.. this value is added directly to the origin object... what about deltas?? PrismContainerValue newAssignment = assignmentsModel.getObject().getItem().createNewValue(); - ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(assignmentTargetObject); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(assignmentTargetObject, getPageBase().getPrismContext()); AssignmentType assignmentType = newAssignment.asContainerable(); assignmentType.setTargetRef(ref); Task task = getPageBase().createSimpleTask("Creating new applicable policy"); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java index f25f32a4b5a..992d7f3b43e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/SimpleRoleSelector.java @@ -160,7 +160,7 @@ private void toggleRole(PrismObject role) { } } - AssignmentType newAssignment = ObjectTypeUtil.createAssignmentTo(role); +// AssignmentType newAssignment = ObjectTypeUtil.createAssignmentTo(role, prismContext); //TODO //create ContainerValueWrapper for new assignment // getAssignmentModel().getObject().add(newAssignment); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java index ee2f2c0924e..d9c0dc150c6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/form/ValueChoosePanel.java @@ -125,7 +125,7 @@ protected boolean isEditButtonEnabled() { } protected void replaceIfEmpty(ObjectType object) { - ObjectReferenceType ort = ObjectTypeUtil.createObjectRef(object); + ObjectReferenceType ort = ObjectTypeUtil.createObjectRef(object, getPageBase().getPrismContext()); getModel().setObject((T) ort.asReferenceValue()); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java index fab210b8052..f3370e51ac5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/RelationDropDownChoicePanel.java @@ -108,8 +108,7 @@ public QName getObject(String id, IModel choices) { @Override public Object getDisplayValue(QName object) { - RelationDefinitionType def = - ObjectTypeUtil.findRelationDefinition(WebComponentUtil.getRelationDefinitions(RelationDropDownChoicePanel.this.getPageBase()), object); + RelationDefinitionType def = WebComponentUtil.getRelationDefinition(object); if (def != null){ DisplayType display = def.getDisplay(); if (display != null){ diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java index 87e7d6b6ed9..a2bd645e3d5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/ObjectHistoryTabPanel.java @@ -48,14 +48,12 @@ import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; import com.evolveum.midpoint.web.page.admin.reports.component.AuditLogViewerPanel; import com.evolveum.midpoint.web.page.admin.reports.dto.AuditSearchDto; -import com.evolveum.midpoint.web.page.admin.users.PageUserHistory; import com.evolveum.midpoint.web.page.admin.users.PageXmlDataReview; import com.evolveum.midpoint.web.session.AuditLogStorage; import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType; import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventStageType; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; /** * Created by honchar. @@ -166,7 +164,7 @@ protected long getCurrentPage() { private AuditSearchDto createAuditSearchDto(F focus) { AuditSearchDto searchDto = new AuditSearchDto(); - ObjectReferenceType ort = ObjectTypeUtil.createObjectRef(focus); + ObjectReferenceType ort = ObjectTypeUtil.createObjectRef(focus, getPrismContext()); searchDto.setTargetNames(asList(ort)); searchDto.setEventStage(AuditEventStageType.EXECUTION); return searchDto; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/ScenePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/ScenePanel.java index 51cda0140bd..c05d5b462a4 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/ScenePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/show/ScenePanel.java @@ -42,8 +42,6 @@ import org.apache.wicket.model.*; import org.jetbrains.annotations.NotNull; -import java.util.List; - /** * @author mederly */ @@ -147,7 +145,7 @@ public void onClick(AjaxRequestTarget target) { PrismContainerValue value = getModelObject().getScene().getSourceValue(); if (value != null && value.getParent() instanceof PrismObject) { PrismObject object = (PrismObject) value.getParent(); - WebComponentUtil.dispatchToObjectDetailsPage(ObjectTypeUtil.createObjectRef(object), getPageBase(), false); + WebComponentUtil.dispatchToObjectDetailsPage(ObjectTypeUtil.createObjectRef(object, getPageBase().getPrismContext()), getPageBase(), false); } } }; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/NameStep.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/NameStep.java index 0315869c7ca..4c961e1b2e7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/NameStep.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/wizard/resource/NameStep.java @@ -449,7 +449,7 @@ public void applyState() { ResourceType resourceType = resource.asObjectable(); resourceType.setName(PolyStringType.fromOrig(resourceNameModel.getObject())); resourceType.setDescription(resourceDescriptionModel.getObject()); - resourceType.setConnectorRef(ObjectTypeUtil.createObjectRef(connector)); + resourceType.setConnectorRef(ObjectTypeUtil.createObjectRef(connector, prismContext)); delta = ObjectDelta.createAddDelta(resource); } else { PrismObject oldResourceObject = @@ -470,7 +470,7 @@ public void applyState() { String oldConnectorOid = oldResource.getConnectorRef() != null ? oldResource.getConnectorRef().getOid() : null; String newConnectorOid = connector.getOid(); if (!StringUtils.equals(oldConnectorOid, newConnectorOid)) { - i = i.item(ResourceType.F_CONNECTOR_REF).replace(ObjectTypeUtil.createObjectRef(connector).asReferenceValue()); + i = i.item(ResourceType.F_CONNECTOR_REF).replace(ObjectTypeUtil.createObjectRef(connector, prismContext).asReferenceValue()); } if (!isConfigurationSchemaCompatible(connector)) { i = i.item(ResourceType.F_CONNECTOR_CONFIGURATION).replace(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItems.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItems.java index 29f33676916..c4d5f613c01 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItems.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItems.java @@ -142,7 +142,7 @@ private ObjectQuery createQuery() throws SchemaException, ObjectNotFoundExceptio } else { // not authorized to see all => sees only allocated to him (not quite what is expected, but sufficient for the time being) query = QueryUtils.filterForAssignees(q, SecurityUtils.getPrincipalUser(), - OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS) + OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS, getPrismContext()) // TODO MID-3581 .and().item(CaseWorkItemType.F_CLOSE_TIMESTAMP).isNull().build(); } IsolatedCheckBoxPanel includeClosedCases = (IsolatedCheckBoxPanel) getCaseWorkItemsSearchField(ID_SEARCH_FILTER_INCLUDE_CLOSED_CASES); @@ -161,8 +161,10 @@ private ObjectQuery createQuery() throws SchemaException, ObjectNotFoundExceptio ObjectType resource = resources.get(0); if (resource != null) { query.addFilter( + // TODO MID-3581 QueryBuilder.queryFor(CaseWorkItemType.class, getPrismContext()) - .item(PrismConstants.T_PARENT, CaseType.F_OBJECT_REF).ref(ObjectTypeUtil.createObjectRef(resource).asReferenceValue()).buildFilter() + .item(PrismConstants.T_PARENT, CaseType.F_OBJECT_REF).ref(ObjectTypeUtil.createObjectRef(resource, + getPrismContext()).asReferenceValue()).buildFilter() ); } } @@ -175,9 +177,10 @@ private ObjectQuery createQuery() throws SchemaException, ObjectNotFoundExceptio if (assignees != null && assignees.size() > 0) { ObjectType assignee = assignees.get(0); if (assignee != null) { + // TODO MID-3581 query.addFilter( QueryBuilder.queryFor(CaseWorkItemType.class, getPrismContext()) - .item(CaseWorkItemType.F_ASSIGNEE_REF).ref(ObjectTypeUtil.createObjectRef(assignee).asReferenceValue()).buildFilter() + .item(CaseWorkItemType.F_ASSIGNEE_REF).ref(ObjectTypeUtil.createObjectRef(assignee, getPrismContext()).asReferenceValue()).buildFilter() ); } } @@ -432,7 +435,7 @@ private void searchFilterPerformed(AjaxRequestTarget target) { private Function objectReferenceTransformer = (Function & Serializable) (ObjectType o) -> - ObjectTypeUtil.createObjectRef(o); + ObjectTypeUtil.createObjectRef(o, getPrismContext()); private static class ButtonBar extends Fragment { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertCaseOrWorkItemDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertCaseOrWorkItemDto.java index 0e08d6b8bb0..d3eb32690cf 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertCaseOrWorkItemDto.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/dto/CertCaseOrWorkItemDto.java @@ -57,12 +57,14 @@ public class CertCaseOrWorkItemDto extends Selectable { private String objectName; private String targetName; private String deadlineAsString; + private QName defaultRelation; CertCaseOrWorkItemDto(@NotNull AccessCertificationCaseType _case, PageBase page) { this.certCase = _case; this.objectName = getName(_case.getObjectRef()); this.targetName = getName(_case.getTargetRef()); this.deadlineAsString = computeDeadlineAsString(page); + this.defaultRelation = page.getPrismContext().getDefaultRelation(); } // ugly hack (for now) - we extract the name from serialization metadata @@ -107,7 +109,7 @@ public QName getTargetType() { } public ObjectReferenceType getCampaignRef() { - return ObjectTypeUtil.createObjectRef(getCampaign()); + return ObjectTypeUtil.createObjectRef(getCampaign(), defaultRelation); } public Long getCaseId() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java index 6149d8f023b..d4bb14ce59a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/component/AuditLogViewerPanel.java @@ -51,7 +51,6 @@ import com.evolveum.midpoint.audit.api.AuditEventRecord; import com.evolveum.midpoint.gui.api.component.BasePanel; import com.evolveum.midpoint.gui.api.component.button.CsvDownloadButtonPanel; -import com.evolveum.midpoint.gui.api.component.path.ItemPathDto; import com.evolveum.midpoint.gui.api.component.path.ItemPathPanel; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; @@ -363,7 +362,7 @@ public boolean isVisible() { // Serializable as it becomes part of panel which is serialized private Function objectReferenceTransformer = (Function & Serializable) (ObjectType o) -> - ObjectTypeUtil.createObjectRef(o); + ObjectTypeUtil.createObjectRef(o, getPageBase().getPrismContext()); // Serializable as it becomes part of panel which is serialized private Function stringTransformer = diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java index bd4f7d5a55e..7b274d97afc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java @@ -22,10 +22,8 @@ import javax.xml.namespace.QName; -import com.evolveum.midpoint.gui.api.GuiConstants; import com.evolveum.midpoint.gui.api.component.PendingOperationPanel; import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; -import com.evolveum.midpoint.web.component.prism.ObjectWrapper; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -99,7 +97,6 @@ import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; import com.evolveum.midpoint.web.component.data.column.ColumnTypeDto; import com.evolveum.midpoint.web.component.data.column.ColumnUtils; -import com.evolveum.midpoint.web.component.data.column.InlineMenuHeaderColumn; import com.evolveum.midpoint.web.component.data.column.LinkColumn; import com.evolveum.midpoint.web.component.data.column.ObjectLinkColumn; import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; @@ -108,7 +105,6 @@ import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; -import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction; import com.evolveum.midpoint.web.page.admin.resources.ResourceContentTabPanel.Operation; import com.evolveum.midpoint.web.page.admin.resources.content.PageAccount; import com.evolveum.midpoint.web.page.admin.server.PageTaskAdd; @@ -446,7 +442,7 @@ private void newTaskPerformed(String category, AjaxRequestTarget target) { } PrismObject resource = getResourceModel().getObject(); - taskType.setObjectRef(ObjectTypeUtil.createObjectRef(resource)); + taskType.setObjectRef(ObjectTypeUtil.createObjectRef(resource, getPageBase().getPrismContext())); taskType.setCategory(category); setResponsePage(new PageTaskAdd(taskType)); @@ -1147,7 +1143,7 @@ private void changeOwner(ShadowType selected, AjaxRequestTarget target, FocusTyp if (owner != null) { delta = ReferenceDelta.createModificationDelete(FocusType.F_LINK_REF, getFocusDefinition(), - ObjectTypeUtil.createObjectRef(shadow).asReferenceValue()); + ObjectTypeUtil.createObjectRef(shadow, getPageBase().getPrismContext()).asReferenceValue()); ((Collection) modifications).add(delta); changeOwnerInternal(owner.getOid(), modifications, target); @@ -1163,7 +1159,7 @@ private void changeOwner(ShadowType selected, AjaxRequestTarget target, FocusTyp FocusType owner = loadShadowOwner(shadow.getOid()); if (owner != null) { delta = ReferenceDelta.createModificationDelete(FocusType.F_LINK_REF, - getFocusDefinition(), ObjectTypeUtil.createObjectRef(shadow).asReferenceValue()); + getFocusDefinition(), ObjectTypeUtil.createObjectRef(shadow, getPageBase().getPrismContext()).asReferenceValue()); ((Collection) modifications).add(delta); changeOwnerInternal(owner.getOid(), modifications, target); @@ -1171,7 +1167,7 @@ private void changeOwner(ShadowType selected, AjaxRequestTarget target, FocusTyp modifications = new ArrayList<>(); delta = ReferenceDelta.createModificationAdd(FocusType.F_LINK_REF, getFocusDefinition(), - ObjectTypeUtil.createObjectRef(shadow).asReferenceValue()); + ObjectTypeUtil.createObjectRef(shadow, getPageBase().getPrismContext()).asReferenceValue()); ((Collection) modifications).add(delta); changeOwnerInternal(ownerToChange.getOid(), modifications, target); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java index 731bb04c5a2..77bfa582b05 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/AbstractRoleMemberPanel.java @@ -38,7 +38,6 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.export.AbstractExportableColumn; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.markup.repeater.Item; @@ -52,13 +51,11 @@ import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.prism.PrismConstants; import com.evolveum.midpoint.prism.PrismContext; -import com.evolveum.midpoint.prism.PrismReferenceValue; import com.evolveum.midpoint.prism.query.AndFilter; import com.evolveum.midpoint.prism.query.NotFilter; import com.evolveum.midpoint.prism.query.ObjectFilter; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; -import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty; import com.evolveum.midpoint.schema.GetOperationOptions; import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.constants.ObjectTypes; @@ -666,7 +663,7 @@ protected ObjectQuery createAllMemberQuery(Collection relations) { protected ObjectReferenceType createReference() { - ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(getModelObject()); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRef(getModelObject(), getPageBase().getPrismContext()); return ref; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/MemberOperationsHelper.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/MemberOperationsHelper.java index d4c0841bc92..6755b01e1a9 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/MemberOperationsHelper.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/MemberOperationsHelper.java @@ -158,15 +158,18 @@ public static void initObject public static ObjectQuery createDirectMemberQuery(R targetObject, QName objectType, Collection relations, ObjectViewDto tenant, ObjectViewDto project, PrismContext prismContext) { ObjectQuery query; + // TODO MID-3581 fix the query from the point of relations! S_AtomicFilterExit q = QueryBuilder.queryFor(FocusType.class, prismContext) .item(FocusType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF) .ref(createReferenceValuesList(targetObject, relations)); if (tenant != null && tenant.getObjectType() != null) { - q = q.and().item(FocusType.F_ASSIGNMENT, AssignmentType.F_TENANT_REF).ref(ObjectTypeUtil.createObjectRef(tenant.getObjectType()).asReferenceValue()); + q = q.and().item(FocusType.F_ASSIGNMENT, AssignmentType.F_TENANT_REF).ref(ObjectTypeUtil.createObjectRef(tenant.getObjectType(), + prismContext).asReferenceValue()); } if (project != null && project.getObjectType() !=null) { - q = q.and().item(FocusType.F_ASSIGNMENT, AssignmentType.F_ORG_REF).ref(ObjectTypeUtil.createObjectRef(project.getObjectType()).asReferenceValue()); + q = q.and().item(FocusType.F_ASSIGNMENT, AssignmentType.F_ORG_REF).ref(ObjectTypeUtil.createObjectRef(project.getObjectType(), + prismContext).asReferenceValue()); } query = q.build(); @@ -311,7 +314,8 @@ protected static ObjectDelta getDeleteAssignmentDel protected static ObjectDelta getAddParentOrgDelta(R targetObject, Collection relations, PrismContext prismContext) throws SchemaException { ObjectDelta delta = ObjectDelta.createEmptyModifyDelta(ObjectType.class, "fakeOid", prismContext); if (relations == null || relations.isEmpty()) { - delta.addModificationAddReference(ObjectType.F_PARENT_ORG_REF, ObjectTypeUtil.createObjectRef(targetObject).asReferenceValue()); + delta.addModificationAddReference(ObjectType.F_PARENT_ORG_REF, ObjectTypeUtil.createObjectRef(targetObject, + prismContext).asReferenceValue()); return delta; } @@ -324,7 +328,7 @@ protected static ObjectDelta getAddParentOrgDelta(R protected static ObjectDelta getDeleteParentOrgDelta(R targetObject, Collection relations, PrismContext prismContext) throws SchemaException { if (relations == null || relations.isEmpty()) { return ObjectDelta.createModificationDeleteReference(ObjectType.class, "fakeOid", - ObjectType.F_PARENT_ORG_REF, prismContext, ObjectTypeUtil.createObjectRef(targetObject).asReferenceValue()); + ObjectType.F_PARENT_ORG_REF, prismContext, ObjectTypeUtil.createObjectRef(targetObject, prismContext).asReferenceValue()); } ObjectDelta delta = ObjectDelta.createEmptyModifyDelta(ObjectType.class, "fakeOid", prismContext); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java index feb311a88d3..a7cbdf4cda3 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java @@ -358,7 +358,7 @@ public InlineMenuItemAction initAction() { public void onClick(AjaxRequestTarget target) { try { initObjectForAdd( - ObjectTypeUtil.createObjectRef(getRowModel().getObject().getValue()), + ObjectTypeUtil.createObjectRef(getRowModel().getObject().getValue(), getPageBase().getPrismContext()), OrgType.COMPLEX_TYPE, null, target); } catch (SchemaException e) { throw new SystemException(e.getMessage(), e); @@ -396,7 +396,7 @@ private void initObjectForAdd(ObjectReferenceType parentOrgRef, QName type, QNam // TODO: fix MID-3234 if (parentOrgRef == null) { ObjectType org = getTreePanel().getSelected().getValue(); - parentOrgRef = ObjectTypeUtil.createObjectRef(org); + parentOrgRef = ObjectTypeUtil.createObjectRef(org, prismContext); parentOrgRef.setRelation(relation); objType.getParentOrgRef().add(parentOrgRef); } else { @@ -454,7 +454,7 @@ private void moveConfirmPerformed(SelectableBean orgToMove, SelectableB try { for (OrgType parentOrg : toMove.getParentOrg()) { AssignmentType oldRoot = new AssignmentType(); - oldRoot.setTargetRef(ObjectTypeUtil.createObjectRef(parentOrg)); + oldRoot.setTargetRef(ObjectTypeUtil.createObjectRef(parentOrg, getPageBase().getPrismContext())); moveOrgDelta.addModification(ContainerDelta.createModificationDelete(OrgType.F_ASSIGNMENT, OrgType.class, getPageBase().getPrismContext(), oldRoot.asPrismContainerValue())); @@ -464,7 +464,7 @@ private void moveConfirmPerformed(SelectableBean orgToMove, SelectableB } AssignmentType newRoot = new AssignmentType(); - newRoot.setTargetRef(ObjectTypeUtil.createObjectRef(selected.getValue())); + newRoot.setTargetRef(ObjectTypeUtil.createObjectRef(selected.getValue(), getPageBase().getPrismContext())); moveOrgDelta.addModification(ContainerDelta.createModificationAdd(OrgType.F_ASSIGNMENT, OrgType.class, getPageBase().getPrismContext(), newRoot.asPrismContainerValue())); // moveOrgDelta.addModification(ReferenceDelta.createModificationAdd(OrgType.F_PARENT_ORG_REF, 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 63817b0173b..286693a4e78 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 @@ -348,7 +348,7 @@ private void delegateConfirmedPerformed(AjaxRequestTarget target, UserType deleg OperationResult result = new OperationResult(OPERATION_DELEGATE_WORK_ITEM); try { WorkItemDto dto = workItemDtoModel.getObject(); - List delegates = Collections.singletonList(ObjectTypeUtil.createObjectRef(delegate)); + List delegates = Collections.singletonList(ObjectTypeUtil.createObjectRef(delegate, getPrismContext())); try { assumePowerOfAttorneyIfRequested(result); getWorkflowService().delegateWorkItem(dto.getWorkItemId(), delegates, WorkItemDelegationMethodType.ADD_ASSIGNEES, result); 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 9f69418e05e..bd6c65ed161 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 @@ -184,8 +184,8 @@ private ObjectQuery createQuery(OperationResult result) throws SchemaException { return QueryUtils.filterForGroups(q, currentUserOid(), getRepositoryService(), result).build(); } else { // not authorized to see all => sees only allocated to him (not quite what is expected, but sufficient for the time being) - return QueryUtils.filterForAssignees(q, SecurityUtils.getPrincipalUser(), - OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS).build(); + return QueryUtils.filterForAssignees(q, SecurityUtils.getPrincipalUser(), // TODO MID-3581 + OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS, getPrismContext()).build(); } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfDashboard.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfDashboard.java index 569c48ea2d8..4ab6f89ca37 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfDashboard.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageSelfDashboard.java @@ -288,7 +288,7 @@ private CallableResult> loadWorkItems() { // (Note that the current code is consistent with the other places where work items are displayed.) S_FilterEntryOrEmpty q = QueryBuilder.queryFor(WorkItemType.class, getPrismContext()); ObjectQuery query = QueryUtils.filterForAssignees(q, SecurityUtils.getPrincipalUser(), - OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS) + OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS, getPrismContext()) // TODO MID-3581 .desc(F_CREATE_TIMESTAMP) .build(); Collection> options = diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/UserViewTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/UserViewTabPanel.java index 97f7f9177d9..600fe36e733 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/UserViewTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/UserViewTabPanel.java @@ -160,8 +160,7 @@ public IModel getBody() { if (relation == null){ return createStringResource("RelationTypes.ANY"); } - List defList = WebComponentUtil.getRelationDefinitions(UserViewTabPanel.this.getPageBase()); - RelationDefinitionType def = ObjectTypeUtil.findRelationDefinition(defList, model.getObject()); + RelationDefinitionType def = WebComponentUtil.getRelationDefinition(model.getObject()); if (def != null) { DisplayType display = def.getDisplay(); if (display != null) { diff --git a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ObjectTypeUtil.java b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ObjectTypeUtil.java index 0dfde0c2369..273a295610c 100644 --- a/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ObjectTypeUtil.java +++ b/infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ObjectTypeUtil.java @@ -244,8 +244,9 @@ public static AssignmentType createAssignmentTo(@NotNull } @NotNull - public static AssignmentType createAssignmentTo(@NotNull PrismObject object) { - return createAssignmentTo(object, getPrismContextFromObject(object).getDefaultRelation()); + public static AssignmentType createAssignmentTo(@NotNull PrismObject object, + PrismContext prismContext) { + return createAssignmentTo(object, prismContext.getDefaultRelation()); } @NotNull @@ -262,10 +263,11 @@ public static AssignmentType createAssignmentTo(@NotNull } @NotNull - public static AssignmentType createAssignmentWithConstruction(@NotNull PrismObject object, ShadowKindType kind, String intent) { - AssignmentType assignment = new AssignmentType(object.getPrismContext()); - ConstructionType construction = new ConstructionType(object.getPrismContext()); - construction.setResourceRef(createObjectRef(object)); + public static AssignmentType createAssignmentWithConstruction(@NotNull PrismObject object, ShadowKindType kind, + String intent, PrismContext prismContext) { + AssignmentType assignment = new AssignmentType(prismContext); + ConstructionType construction = new ConstructionType(prismContext); + construction.setResourceRef(createObjectRef(object, prismContext)); construction.setKind(kind); construction.setIntent(intent); assignment.setConstruction(construction); @@ -283,30 +285,20 @@ public static ObjectReferenceType createObjectRef(PrismReferenceValue prv) { return ort; } - public static ObjectReferenceType createObjectRefWithFullObject(ObjectType objectType) { + public static ObjectReferenceType createObjectRefWithFullObject(ObjectType objectType, PrismContext prismContext) { if (objectType == null) { return null; } - return createObjectRefWithFullObject(objectType.asPrismObject()); + return createObjectRefWithFullObject(objectType.asPrismObject(), prismContext); } - public static ObjectReferenceType createObjectRef(ObjectType object) { + public static ObjectReferenceType createObjectRef(ObjectType object, PrismContext prismContext) { if (object == null) { return null; } - PrismContext prismContext = getPrismContextFromObject(object.asPrismObject()); return createObjectRef(object, prismContext.getDefaultRelation()); } - @NotNull - private static PrismContext getPrismContextFromObject(PrismObject object) { - PrismContext prismContext = object.getPrismContext(); - if (prismContext == null) { - throw new IllegalStateException("No prismContext in prism object " + object); - } - return prismContext; - } - public static ObjectReferenceType createObjectRef(ObjectType objectType, QName relation) { if (objectType == null) { return null; @@ -314,11 +306,11 @@ public static ObjectReferenceType createObjectRef(ObjectType objectType, QName r return createObjectRef(objectType.asPrismObject(), relation); } - public static ObjectReferenceType createObjectRef(PrismObject object) { + public static ObjectReferenceType createObjectRef(PrismObject object, PrismContext prismContext) { if (object == null) { return null; } - return createObjectRef(object, getPrismContextFromObject(object).getDefaultRelation()); + return createObjectRef(object, prismContext.getDefaultRelation()); } public static ObjectReferenceType createObjectRef(PrismObject object, QName relation) { @@ -336,11 +328,12 @@ public static ObjectReferenceType createObjectRef(PrismOb return ref; } - public static ObjectReferenceType createObjectRefWithFullObject(PrismObject object) { + public static ObjectReferenceType createObjectRefWithFullObject(PrismObject object, + PrismContext prismContext) { if (object == null) { return null; } - ObjectReferenceType ref = createObjectRef(object); + ObjectReferenceType ref = createObjectRef(object, prismContext); ref.asReferenceValue().setObject(object); return ref; } @@ -694,7 +687,6 @@ public static void normalizeFilter(ObjectFilter filter, RelationRegistry relatio } } - // TODO public static RelationDefinitionType findRelationDefinition(List relationDefinitions, QName qname) { for (RelationDefinitionType relation: relationDefinitions) { if (QNameUtil.match(qname, relation.getRef())) { diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertCaseOperationsHelper.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertCaseOperationsHelper.java index ec4a06ea1f6..8741be8500c 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertCaseOperationsHelper.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertCaseOperationsHelper.java @@ -43,7 +43,6 @@ import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.commons.lang.ObjectUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -99,7 +98,7 @@ void recordDecision(String campaignOid, long caseId, long workItemId, AccessCert throw new ObjectNotFoundException("Work item " + workItemId + " was not found in campaign " + toShortString(campaign) + ", case " + caseId); } - ObjectReferenceType responderRef = ObjectTypeUtil.createObjectRef(securityContextManager.getPrincipal().getUser()); + ObjectReferenceType responderRef = ObjectTypeUtil.createObjectRef(securityContextManager.getPrincipal().getUser(), prismContext); XMLGregorianCalendar now = clock.currentTimeXMLGregorianCalendar(); ItemPath workItemPath = new ItemPath(F_CASE, caseId, F_WORK_ITEM, workItemId); Collection> deltaList = DeltaBuilder.deltaFor(AccessCertificationCampaignType.class, prismContext) @@ -146,8 +145,8 @@ void delegateWorkItems(String campaignOid, List MidPointPrincipal principal = securityContextManager.getPrincipal(); result.addContext("user", toShortString(principal.getUser())); - ObjectReferenceType initiator = ObjectTypeUtil.createObjectRef(principal.getUser()); - ObjectReferenceType attorney = ObjectTypeUtil.createObjectRef(principal.getAttorney()); + ObjectReferenceType initiator = ObjectTypeUtil.createObjectRef(principal.getUser(), prismContext); + ObjectReferenceType attorney = ObjectTypeUtil.createObjectRef(principal.getAttorney(), prismContext); XMLGregorianCalendar now = clock.currentTimeXMLGregorianCalendar(); List> deltas = new ArrayList<>(); @@ -212,8 +211,8 @@ public void escalateCampaign(String campaignOid, EscalateWorkItemActionType esca throws SchemaException, ObjectNotFoundException, ObjectAlreadyExistsException, SecurityViolationException { MidPointPrincipal principal = securityContextManager.getPrincipal(); result.addContext("user", toShortString(principal.getUser())); - ObjectReferenceType initiator = ObjectTypeUtil.createObjectRef(principal.getUser()); - ObjectReferenceType attorney = ObjectTypeUtil.createObjectRef(principal.getAttorney()); + ObjectReferenceType initiator = ObjectTypeUtil.createObjectRef(principal.getUser(), prismContext); + ObjectReferenceType attorney = ObjectTypeUtil.createObjectRef(principal.getAttorney(), prismContext); List workItems = queryHelper.searchOpenWorkItems( CertCampaignTypeUtil.createWorkItemsForCampaignQuery(campaignOid, prismContext), diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertOpenerHelper.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertOpenerHelper.java index c108d60f292..5748eba613c 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertOpenerHelper.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertOpenerHelper.java @@ -124,7 +124,7 @@ private AccessCertificationCampaignType createCampaignObject(AccessCertification newCampaign.setDescription(definition.getDescription()); newCampaign.setOwnerRef(securityContextManager.getPrincipal().toObjectReference()); newCampaign.setTenantRef(definition.getTenantRef()); - newCampaign.setDefinitionRef(ObjectTypeUtil.createObjectRef(definition)); + newCampaign.setDefinitionRef(ObjectTypeUtil.createObjectRef(definition, prismContext)); if (definition.getHandlerUri() != null) { newCampaign.setHandlerUri(definition.getHandlerUri()); diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertQueryHelper.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertQueryHelper.java index d4dadbe6a9c..7ff40838c23 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertQueryHelper.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertQueryHelper.java @@ -138,7 +138,8 @@ private ObjectFilter getReviewerAndEnabledFilterForWI(MidPointPrincipal principa return QueryUtils.filterForAssignees( QueryBuilder.queryFor(AccessCertificationWorkItemType.class, prismContext), principal, - OtherPrivilegesLimitationType.F_CERTIFICATION_WORK_ITEMS) + OtherPrivilegesLimitationType.F_CERTIFICATION_WORK_ITEMS, + prismContext) // TODO MID-3581 .and().item(F_CLOSE_TIMESTAMP).isNull() .buildFilter(); } else { diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertReviewersHelper.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertReviewersHelper.java index 2c6de54c44b..d1c3f3bb8f1 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertReviewersHelper.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccCertReviewersHelper.java @@ -135,7 +135,7 @@ private List getMembers(ObjectReferenceType abstractRoleRef .item(UserType.F_ROLE_MEMBERSHIP_REF).ref(abstractRoleRef.getOid()) .build(); return repositoryService.searchObjects(UserType.class, query, null, result).stream() - .map(obj -> ObjectTypeUtil.createObjectRef(obj)) + .map(obj -> ObjectTypeUtil.createObjectRef(obj, prismContext)) // TODO MID-3581 .collect(Collectors.toList()); } @@ -184,7 +184,7 @@ private Collection getObjectManagers(AccessCertificationCas } List retval = new ArrayList<>(managers.size()); for (UserType manager : managers) { - retval.add(ObjectTypeUtil.createObjectRef(manager)); + retval.add(ObjectTypeUtil.createObjectRef(manager, prismContext)); } return retval; } catch (SecurityViolationException e) { @@ -232,7 +232,7 @@ private List getAssignees(AbstractRoleType role, RelationKi .build(); List> assignees = repositoryService.searchObjects(FocusType.class, query, null, result); LOGGER.trace("Looking for '{}' of {} using {}: found: {}", relationKind, role, query, assignees); - assignees.forEach(o -> rv.add(ObjectTypeUtil.createObjectRef(o))); + assignees.forEach(o -> rv.add(ObjectTypeUtil.createObjectRef(o, prismContext))); return rv; } diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationClosingTaskHandler.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationClosingTaskHandler.java index 02b83d79ccb..f6dc9857849 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationClosingTaskHandler.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationClosingTaskHandler.java @@ -265,7 +265,7 @@ public void launch(AccessCertificationCampaignType campaign, OperationResult par Task task = taskManager.createTaskInstance(); task.setHandlerUri(HANDLER_URI); task.setName(new PolyStringType("Closing " + campaign.getName())); - task.setObjectRef(ObjectTypeUtil.createObjectRef(campaign)); + task.setObjectRef(ObjectTypeUtil.createObjectRef(campaign, prismContext)); task.setOwner(repositoryService.getObject(UserType.class, SystemObjectsType.USER_ADMINISTRATOR.value(), null, result)); taskManager.switchToBackground(task, result); result.setBackgroundTaskOid(task.getOid()); diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationRemediationTaskHandler.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationRemediationTaskHandler.java index 44a91caf2bf..e8d5e21969b 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationRemediationTaskHandler.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/AccessCertificationRemediationTaskHandler.java @@ -17,6 +17,7 @@ import com.evolveum.midpoint.certification.api.OutcomeUtils; import com.evolveum.midpoint.certification.impl.handlers.CertificationHandler; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.repo.api.RepositoryService; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; @@ -63,6 +64,7 @@ public class AccessCertificationRemediationTaskHandler implements TaskHandler { @Autowired private AccCertGeneralHelper helper; @Autowired private AccCertCaseOperationsHelper caseHelper; @Autowired private AccCertQueryHelper queryHelper; + @Autowired private PrismContext prismContext; @Autowired @Qualifier("cacheRepositoryService") private RepositoryService repositoryService; private static final transient Trace LOGGER = TraceManager.getTrace(AccessCertificationRemediationTaskHandler.class); @@ -188,7 +190,7 @@ public void launch(AccessCertificationCampaignType campaign, OperationResult par task.setName(polyString); // Set reference to the resource - task.setObjectRef(ObjectTypeUtil.createObjectRef(campaign)); + task.setObjectRef(ObjectTypeUtil.createObjectRef(campaign, prismContext)); task.setOwner(repositoryService.getObject(UserType.class, SystemObjectsType.USER_ADMINISTRATOR.value(), null, result)); diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/DirectAssignmentCertificationHandler.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/DirectAssignmentCertificationHandler.java index 2c1da07a138..2cf11b01747 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/DirectAssignmentCertificationHandler.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/DirectAssignmentCertificationHandler.java @@ -20,7 +20,6 @@ import com.evolveum.midpoint.repo.common.expression.ExpressionVariables; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.schema.constants.ExpressionConstants; -import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.schema.util.ActivationUtil; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; @@ -33,8 +32,6 @@ import com.evolveum.midpoint.util.exception.PolicyViolationException; import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.util.exception.SecurityViolationException; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.springframework.stereotype.Component; @@ -96,7 +93,7 @@ private void processAssignment(AssignmentType assignment, boolean isInducement, AccessCertificationAssignmentCaseType assignmentCase = new AccessCertificationAssignmentCaseType(prismContext); assignmentCase.setAssignment(assignment.clone()); assignmentCase.setIsInducement(isInducement); - assignmentCase.setObjectRef(ObjectTypeUtil.createObjectRef(object)); + assignmentCase.setObjectRef(ObjectTypeUtil.createObjectRef(object, prismContext)); assignmentCase.setTenantRef(assignment.getTenantRef()); assignmentCase.setOrgRef(assignment.getOrgRef()); assignmentCase.setActivation(assignment.getActivation()); diff --git a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/ExclusionCertificationHandler.java b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/ExclusionCertificationHandler.java index c7e9bd9912c..ed08749b8c0 100644 --- a/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/ExclusionCertificationHandler.java +++ b/model/certification-impl/src/main/java/com/evolveum/midpoint/certification/impl/handlers/ExclusionCertificationHandler.java @@ -23,8 +23,6 @@ import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.exception.*; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.springframework.stereotype.Component; @@ -71,7 +69,7 @@ public Collection c private void processAssignment(AssignmentType assignment, ObjectType object, List caseList) { AccessCertificationAssignmentCaseType assignmentCase = new AccessCertificationAssignmentCaseType(prismContext); assignmentCase.setAssignment(assignment.clone()); - assignmentCase.setObjectRef(ObjectTypeUtil.createObjectRef(object)); + assignmentCase.setObjectRef(ObjectTypeUtil.createObjectRef(object, prismContext)); assignmentCase.setTenantRef(assignment.getTenantRef()); assignmentCase.setOrgRef(assignment.getOrgRef()); assignmentCase.setActivation(assignment.getActivation()); diff --git a/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java b/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java index d3ab42e95e3..beec289fd23 100644 --- a/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java +++ b/model/certification-impl/src/test/java/com/evolveum/midpoint/certification/test/AbstractCertificationTest.java @@ -423,7 +423,7 @@ protected void assertDefinitionAndOwner(AccessCertificationCampaignType campaign AccessCertificationDefinitionType certificationDefinition, String expectedOwnerOid) { assertRefEquals("Unexpected ownerRef", ObjectTypeUtil.createObjectRef(expectedOwnerOid, ObjectTypes.USER), campaign.getOwnerRef()); assertRefEquals("Unexpected definitionRef", - ObjectTypeUtil.createObjectRef(certificationDefinition), + ObjectTypeUtil.createObjectRef(certificationDefinition, prismContext), campaign.getDefinitionRef()); } diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCompositeTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCompositeTrigger.java index 6c3551d5d31..05c8fb2d44a 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCompositeTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedCompositeTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.EvaluatedLogicalTriggerType; @@ -77,11 +78,12 @@ protected void debugDumpSpecific(StringBuilder sb, int indent) { } @Override - public EvaluatedLogicalTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedLogicalTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedLogicalTriggerType rv = new EvaluatedLogicalTriggerType(); fillCommonContent(rv); if (!options.isRespectFinalFlag() || !isFinal()) { - innerTriggers.forEach(t -> rv.getEmbedded().add(t.toEvaluatedPolicyRuleTriggerType(options))); + innerTriggers.forEach(t -> rv.getEmbedded().add(t.toEvaluatedPolicyRuleTriggerType(options, prismContext))); } return rv; } diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedExclusionTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedExclusionTrigger.java index 8fee04be27c..da4c1a7e875 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedExclusionTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedExclusionTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.LocalizableMessage; @@ -90,11 +91,12 @@ protected void debugDumpSpecific(StringBuilder sb, int indent) { } @Override - public EvaluatedExclusionTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedExclusionTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedExclusionTriggerType rv = new EvaluatedExclusionTriggerType(); fillCommonContent(rv); if (options.getTriggeredRulesStorageStrategy() == FULL) { - rv.setConflictingObjectRef(ObjectTypeUtil.createObjectRef(conflictingTarget)); + rv.setConflictingObjectRef(ObjectTypeUtil.createObjectRef(conflictingTarget, prismContext)); rv.setConflictingObjectDisplayName(ObjectTypeUtil.getDisplayName(conflictingTarget)); if (conflictingPath != null) { rv.setConflictingObjectPath(conflictingPath.toAssignmentPathType(options.isIncludeAssignmentsContent())); diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedHasAssignmentTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedHasAssignmentTrigger.java index 1e77a004f63..e8acf4ff967 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedHasAssignmentTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedHasAssignmentTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.jetbrains.annotations.NotNull; @@ -31,7 +32,8 @@ public EvaluatedHasAssignmentTrigger(@NotNull PolicyConstraintKindType kind, @No } @Override - public EvaluatedHasAssignmentTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedHasAssignmentTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedHasAssignmentTriggerType rv = new EvaluatedHasAssignmentTriggerType(); fillCommonContent(rv); return rv; diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedModificationTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedModificationTrigger.java index bc83fbe68f4..89023229309 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedModificationTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedModificationTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.jetbrains.annotations.NotNull; @@ -31,7 +32,8 @@ public EvaluatedModificationTrigger(@NotNull PolicyConstraintKindType kind, @Not } @Override - public EvaluatedModificationTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedModificationTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedModificationTriggerType rv = new EvaluatedModificationTriggerType(); fillCommonContent(rv); return rv; diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedMultiplicityTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedMultiplicityTrigger.java index 1c4b60c8782..db883fcd932 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedMultiplicityTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedMultiplicityTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.jetbrains.annotations.NotNull; @@ -31,7 +32,8 @@ public EvaluatedMultiplicityTrigger(@NotNull PolicyConstraintKindType kind, @Not } @Override - public EvaluatedMultiplicityTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedMultiplicityTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedMultiplicityTriggerType rv = new EvaluatedMultiplicityTriggerType(); fillCommonContent(rv); return rv; diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRule.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRule.java index 2d84efe33be..cbfaf8fa6fb 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRule.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRule.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.function.Predicate; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.DebugDumpable; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.util.TreeNode; @@ -69,7 +70,7 @@ default boolean isTriggered() { Collection getPolicyExceptions(); void addToEvaluatedPolicyRuleTypes(Collection rules, PolicyRuleExternalizationOptions options, - Predicate> triggerSelector); + Predicate> triggerSelector, PrismContext prismContext); boolean isGlobal(); diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRuleTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRuleTrigger.java index 45065f803f0..d35f067c887 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRuleTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedPolicyRuleTrigger.java @@ -15,6 +15,7 @@ */ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.schema.util.LocalizationUtil; import com.evolveum.midpoint.schema.util.PolicyRuleTypeUtil; import com.evolveum.midpoint.util.DebugDumpable; @@ -144,7 +145,8 @@ public String toDiagShortcut() { return PolicyRuleTypeUtil.toDiagShortcut(constraintKind); } - public EvaluatedPolicyRuleTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedPolicyRuleTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedPolicyRuleTriggerType rv = new EvaluatedPolicyRuleTriggerType(); fillCommonContent(rv); return rv; diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedSituationTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedSituationTrigger.java index 9dde1b58a33..0c17edd81a1 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedSituationTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedSituationTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.schema.util.PolicyRuleTypeUtil; import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.LocalizableMessage; @@ -103,11 +104,12 @@ protected void debugDumpSpecific(StringBuilder sb, int indent) { } @Override - public EvaluatedSituationTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedSituationTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedSituationTriggerType rv = new EvaluatedSituationTriggerType(); fillCommonContent(rv); if (!options.isRespectFinalFlag() || !isFinal()) { - sourceRules.forEach(r -> r.addToEvaluatedPolicyRuleTypes(rv.getSourceRule(), options, null)); + sourceRules.forEach(r -> r.addToEvaluatedPolicyRuleTypes(rv.getSourceRule(), options, null, prismContext)); } return rv; } diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedStateTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedStateTrigger.java index 017dcbe9964..6fb3d4a2719 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedStateTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedStateTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.EvaluatedStateTriggerType; import com.evolveum.midpoint.xml.ns._public.common.common_3.PolicyConstraintKindType; @@ -33,7 +34,8 @@ public EvaluatedStateTrigger(@NotNull PolicyConstraintKindType kind, @NotNull St } @Override - public EvaluatedStateTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedStateTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedStateTriggerType rv = new EvaluatedStateTriggerType(); fillCommonContent(rv); return rv; diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTimeValidityTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTimeValidityTrigger.java index 800d47dcb8e..5e16bb9f7ed 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTimeValidityTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTimeValidityTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.jetbrains.annotations.NotNull; @@ -31,7 +32,8 @@ public EvaluatedTimeValidityTrigger(@NotNull PolicyConstraintKindType kind, @Not } @Override - public EvaluatedTimeValidityTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedTimeValidityTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedTimeValidityTriggerType rv = new EvaluatedTimeValidityTriggerType(); fillCommonContent(rv); return rv; diff --git a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTransitionTrigger.java b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTransitionTrigger.java index ac403fd4948..983c01c2b17 100644 --- a/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTransitionTrigger.java +++ b/model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/EvaluatedTransitionTrigger.java @@ -16,6 +16,7 @@ package com.evolveum.midpoint.model.api.context; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.util.DebugUtil; import com.evolveum.midpoint.util.LocalizableMessage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; @@ -75,11 +76,12 @@ protected void debugDumpSpecific(StringBuilder sb, int indent) { } @Override - public EvaluatedTransitionTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options) { + public EvaluatedTransitionTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, + PrismContext prismContext) { EvaluatedTransitionTriggerType rv = new EvaluatedTransitionTriggerType(); fillCommonContent(rv); if (!options.isRespectFinalFlag() || !isFinal()) { - innerTriggers.forEach(t -> rv.getEmbedded().add(t.toEvaluatedPolicyRuleTriggerType(options))); + innerTriggers.forEach(t -> rv.getEmbedded().add(t.toEvaluatedPolicyRuleTriggerType(options, prismContext))); } return rv; } diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelInteractionServiceImpl.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelInteractionServiceImpl.java index bec30385d89..9bfb9d9ac6d 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelInteractionServiceImpl.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelInteractionServiceImpl.java @@ -1445,7 +1445,7 @@ private void getDeputyAssignees(List deputies, AbstractWork continue; } if (determineDeputyValidity(potentialDeputy, workItem.getAssigneeRef(), workItem, OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS, task, result)) { - deputies.add(ObjectTypeUtil.createObjectRefWithFullObject(potentialDeputy)); + deputies.add(ObjectTypeUtil.createObjectRefWithFullObject(potentialDeputy, prismContext)); oidsToSkip.add(potentialDeputy.getOid()); } } @@ -1465,7 +1465,7 @@ private void getDeputyAssigneesNoWorkItem(List deputies, Ob continue; } if (determineDeputyValidity(potentialDeputy, Collections.singletonList(assigneeRef), null, limitationItemName, task, result)) { - deputies.add(ObjectTypeUtil.createObjectRefWithFullObject(potentialDeputy)); + deputies.add(ObjectTypeUtil.createObjectRefWithFullObject(potentialDeputy, prismContext)); oidsToSkip.add(potentialDeputy.getOid()); } } @@ -1696,7 +1696,7 @@ public TaskType submitTaskFromTemplate(String templateTaskOid, List> newTask.setName(PolyStringType.fromOrig(newTask.getName().getOrig() + " " + (int) (Math.random() * 10000))); newTask.setOid(null); newTask.setTaskIdentifier(null); - newTask.setOwnerRef(createObjectRef(principal.getUser())); + newTask.setOwnerRef(createObjectRef(principal.getUser(), prismContext)); newTask.setExecutionStatus(RUNNABLE); for (Item extensionItem : extensionItems) { newTask.asPrismObject().getExtension().add(extensionItem.clone()); diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/expr/MidpointFunctionsImpl.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/expr/MidpointFunctionsImpl.java index 12e00d7ef1b..ae572184a3d 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/expr/MidpointFunctionsImpl.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/expr/MidpointFunctionsImpl.java @@ -16,7 +16,6 @@ package com.evolveum.midpoint.model.impl.expr; import com.evolveum.midpoint.common.LocalizationService; -import com.evolveum.midpoint.common.SynchronizationUtils; import com.evolveum.midpoint.common.refinery.RefinedAttributeDefinition; import com.evolveum.midpoint.common.refinery.RefinedObjectClassDefinition; import com.evolveum.midpoint.common.refinery.RefinedResourceSchema; @@ -54,7 +53,6 @@ import com.evolveum.midpoint.provisioning.api.ProvisioningService; import com.evolveum.midpoint.repo.api.RepositoryService; import com.evolveum.midpoint.repo.common.expression.ExpressionFactory; -import com.evolveum.midpoint.repo.common.expression.ExpressionUtil; import com.evolveum.midpoint.schema.*; import com.evolveum.midpoint.schema.constants.SchemaConstants; import com.evolveum.midpoint.schema.result.OperationResult; @@ -1389,7 +1387,7 @@ public Map parseXmlToMap(String xml) { public List getMembersAsReferences(String orgOid) throws SchemaException, SecurityViolationException, CommunicationException, ConfigurationException, ObjectNotFoundException, ExpressionEvaluationException { return getMembers(orgOid).stream() - .map(obj -> createObjectRef(obj)) + .map(obj -> createObjectRef(obj, prismContext)) .collect(Collectors.toList()); } @@ -1607,7 +1605,7 @@ public TaskType executeChangesAsynchronously(Collection> deltas, newTask.setName(PolyStringType.fromOrig(newTask.getName().getOrig() + " " + (int) (Math.random()*10000))); newTask.setOid(null); newTask.setTaskIdentifier(null); - newTask.setOwnerRef(createObjectRef(principal.getUser())); + newTask.setOwnerRef(createObjectRef(principal.getUser(), prismContext)); newTask.setExecutionStatus(RUNNABLE); newTask.setHandlerUri(ModelPublicConstants.EXECUTE_DELTAS_TASK_HANDLER_URI); if (deltas.isEmpty()) { diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ImportAccountsFromResourceTaskHandler.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ImportAccountsFromResourceTaskHandler.java index 9d3dcec3e88..19e2fc7b91e 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ImportAccountsFromResourceTaskHandler.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ImportAccountsFromResourceTaskHandler.java @@ -140,7 +140,7 @@ public void launch(ResourceType resource, QName objectclass, Task task, Operatio // Set reference to the resource - task.setObjectRef(ObjectTypeUtil.createObjectRef(resource)); + task.setObjectRef(ObjectTypeUtil.createObjectRef(resource, prismContext)); try { PrismProperty objectclassProp = objectclassPropertyDefinition.instantiate(); diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ObjectImporter.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ObjectImporter.java index aeea21e416e..e6116735acf 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ObjectImporter.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/importer/ObjectImporter.java @@ -245,7 +245,7 @@ private EventResult importParsedObject(PrismObject pri metaData.setCreateChannel(channel); metaData.setCreateTimestamp(clock.currentTimeXMLGregorianCalendar()); if (task.getOwner() != null) { - metaData.setCreatorRef(ObjectTypeUtil.createObjectRef(task.getOwner())); + metaData.setCreatorRef(ObjectTypeUtil.createObjectRef(task.getOwner(), prismContext)); } object.asObjectable().setMetadata(metaData); } diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/AssignmentPathSegmentImpl.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/AssignmentPathSegmentImpl.java index 9fa944e68f0..fb2d4897120 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/AssignmentPathSegmentImpl.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/AssignmentPathSegmentImpl.java @@ -622,11 +622,11 @@ public AssignmentPathSegmentType toAssignmentPathSegmentType(boolean includeAssi rv.setAssignmentId(assignment.getId()); } if (source != null) { - rv.setSourceRef(ObjectTypeUtil.createObjectRef(source)); + rv.setSourceRef(ObjectTypeUtil.createObjectRef(source, prismContext)); rv.setSourceDisplayName(ObjectTypeUtil.getDisplayName(source)); } if (target != null) { - rv.setTargetRef(ObjectTypeUtil.createObjectRef(target)); + rv.setTargetRef(ObjectTypeUtil.createObjectRef(target, prismContext)); rv.setTargetDisplayName(ObjectTypeUtil.getDisplayName(target)); } rv.setMatchingOrder(isMatchingOrder()); diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/Clockwork.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/Clockwork.java index c8d1143e6b0..85151ee289e 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/Clockwork.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/Clockwork.java @@ -927,10 +927,10 @@ private void setOperationContext(OperationExecutionType operation, task = task.getParentForLightweightAsynchronousTask(); } if (task.isPersistent()) { - operation.setTaskRef(ObjectTypeUtil.createObjectRef(task.getTaskPrismObject())); + operation.setTaskRef(ObjectTypeUtil.createObjectRef(task.getTaskPrismObject(), prismContext)); } operation.setStatus(overallStatus); - operation.setInitiatorRef(ObjectTypeUtil.createObjectRef(task.getOwner())); // TODO what if the real initiator is different? (e.g. when executing approved changes) + operation.setInitiatorRef(ObjectTypeUtil.createObjectRef(task.getOwner(), prismContext)); // TODO what if the real initiator is different? (e.g. when executing approved changes) operation.setChannel(channel); operation.setTimestamp(now); } @@ -1103,7 +1103,7 @@ private void auditEvent(LensContext context, AuditEven AuditEventRecord auditRecord = new AuditEventRecord(eventType, stage); if (primaryObject != null) { - auditRecord.setTarget(primaryObject.clone()); + auditRecord.setTarget(primaryObject.clone(), prismContext); // } else { // throw new IllegalStateException("No primary object in:\n"+context.dump()); } diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/EvaluatedPolicyRuleImpl.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/EvaluatedPolicyRuleImpl.java index e01e245d8c3..4c4cea39b52 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/EvaluatedPolicyRuleImpl.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/EvaluatedPolicyRuleImpl.java @@ -337,7 +337,7 @@ public List> extractShortMessages() { @Override public void addToEvaluatedPolicyRuleTypes(Collection rules, PolicyRuleExternalizationOptions options, - Predicate> triggerSelector) { + Predicate> triggerSelector, PrismContext prismContext) { EvaluatedPolicyRuleType rv = new EvaluatedPolicyRuleType(); rv.setRuleName(getName()); boolean isFull = options.getTriggeredRulesStorageStrategy() == FULL; @@ -345,7 +345,7 @@ public void addToEvaluatedPolicyRuleTypes(Collection ru rv.setAssignmentPath(assignmentPath.toAssignmentPathType(options.isIncludeAssignmentsContent())); } if (isFull && directOwner != null) { - rv.setDirectOwnerRef(ObjectTypeUtil.createObjectRef(directOwner)); + rv.setDirectOwnerRef(ObjectTypeUtil.createObjectRef(directOwner, prismContext)); rv.setDirectOwnerDisplayName(ObjectTypeUtil.getDisplayName(directOwner)); } for (EvaluatedPolicyRuleTrigger trigger : triggers) { @@ -354,10 +354,10 @@ public void addToEvaluatedPolicyRuleTypes(Collection ru } if (trigger instanceof EvaluatedSituationTrigger && trigger.isHidden()) { for (EvaluatedPolicyRule sourceRule : ((EvaluatedSituationTrigger) trigger).getSourceRules()) { - sourceRule.addToEvaluatedPolicyRuleTypes(rules, options, null); + sourceRule.addToEvaluatedPolicyRuleTypes(rules, options, null, prismContext); } } else { - rv.getTrigger().add(trigger.toEvaluatedPolicyRuleTriggerType(options)); + rv.getTrigger().add(trigger.toEvaluatedPolicyRuleTriggerType(options, prismContext)); } } if (rv.getTrigger().isEmpty()) { diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java index 3f2ce5e0022..93b2b61ad32 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java @@ -654,14 +654,14 @@ private PrismObject cloneObject(PrismObject thisObject) { void storeIntoLensElementContextType(LensElementContextType lensElementContextType, boolean reduced) throws SchemaException { if (objectOld != null) { if (reduced) { - lensElementContextType.setObjectOldRef(ObjectTypeUtil.createObjectRef(objectOld)); + lensElementContextType.setObjectOldRef(ObjectTypeUtil.createObjectRef(objectOld, getPrismContext())); } else { lensElementContextType.setObjectOld(objectOld.asObjectable()); } } if (objectNew != null) { if (reduced) { - lensElementContextType.setObjectNewRef(ObjectTypeUtil.createObjectRef(objectNew)); + lensElementContextType.setObjectNewRef(ObjectTypeUtil.createObjectRef(objectNew, getPrismContext())); } else { lensElementContextType.setObjectNew(objectNew.asObjectable()); } diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java index 7687a90c857..f2a26f20cea 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensUtil.java @@ -576,7 +576,7 @@ public static Collection getForcedA if (virtualAssignmenetSpecification != null) { ResultHandler handler = (object, parentResult) -> { - AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(object); + AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(object, prismContext); return forcedAssignments.add(assignment); }; diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/OperationalDataManager.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/OperationalDataManager.java index 6474458b9af..936752516d8 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/OperationalDataManager.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/OperationalDataManager.java @@ -81,7 +81,7 @@ private MetadataType collectRequestMetadata(LensContext void applyCreateMetadata(LensContext context, metaData.setCreateChannel(channel); metaData.setCreateTimestamp(now); if (task.getOwner() != null) { - metaData.setCreatorRef(createObjectRef(task.getOwner())); + metaData.setCreatorRef(createObjectRef(task.getOwner(), prismContext)); } - metaData.setCreateTaskRef(task.getOid() != null ? createObjectRef(task.getTaskPrismObject()) : null); + metaData.setCreateTaskRef(task.getOid() != null ? createObjectRef(task.getTaskPrismObject(), prismContext) : null); } public Collection> createModifyMetadataDeltas(LensContext context, @@ -264,9 +264,9 @@ public Collection> c return DeltaBuilder.deltaFor(objectType, prismContext) .item(metadataPath.subPath(MetadataType.F_MODIFY_CHANNEL)).replace(LensUtil.getChannel(context, task)) .item(metadataPath.subPath(MetadataType.F_MODIFY_TIMESTAMP)).replace(now) - .item(metadataPath.subPath(MetadataType.F_MODIFIER_REF)).replace(createObjectRef(task.getOwner())) + .item(metadataPath.subPath(MetadataType.F_MODIFIER_REF)).replace(createObjectRef(task.getOwner(), prismContext)) .item(metadataPath.subPath(MetadataType.F_MODIFY_TASK_REF)).replaceRealValues( - task.getOid() != null ? singleton(createObjectRef(task.getTaskPrismObject())) : emptySet()) + task.getOid() != null ? singleton(createObjectRef(task.getTaskPrismObject(), prismContext)) : emptySet()) .asItemDeltas(); } diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AssignmentProcessor.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AssignmentProcessor.java index 14eaebefcb4..af2bf3553f2 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AssignmentProcessor.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AssignmentProcessor.java @@ -729,7 +729,7 @@ private void createAssignmentDelta(LensContext context, ContainerDelta assignmentDelta = ContainerDelta.createDelta(FocusType.F_ASSIGNMENT, focusClass, prismContext); AssignmentType assignment = new AssignmentType(); ConstructionType constructionType = new ConstructionType(); - constructionType.setResourceRef(ObjectTypeUtil.createObjectRef(accountContext.getResource())); + constructionType.setResourceRef(ObjectTypeUtil.createObjectRef(accountContext.getResource(), prismContext)); assignment.setConstruction(constructionType); assignmentDelta.addValueToAdd(assignment.asPrismContainerValue()); PrismContainerDefinition containerDefinition = prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(focusClass).findContainerDefinition(FocusType.F_ASSIGNMENT); diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleEnforcer.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleEnforcer.java index e23445dcdaa..8175ee4f864 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleEnforcer.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyRuleEnforcer.java @@ -141,7 +141,7 @@ private void enforceTriggeredRules(EvaluationContext evalCtx, Collection enforceAll || t.isEnforcementOverride()); + t -> enforceAll || t.isEnforcementOverride(), prismContext); List> messageTrees = EvaluatedPolicyRuleUtil.extractMessages(triggersFiltered, EvaluatedPolicyRuleUtil.MessageKind.NORMAL); for (TreeNode messageTree : messageTrees) { diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyStateRecorder.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyStateRecorder.java index b0ed2ee6060..528ef035c63 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyStateRecorder.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/policy/PolicyStateRecorder.java @@ -119,7 +119,7 @@ private ComputationResult compute(@NotNull List rulesToReco if (recordAction.getPolicyRules() != TriggeredPolicyRulesStorageStrategyType.NONE) { PolicyRuleExternalizationOptions externalizationOptions = new PolicyRuleExternalizationOptions( recordAction.getPolicyRules(), false, true); - rule.addToEvaluatedPolicyRuleTypes(cr.newTriggeredRules, externalizationOptions, null); + rule.addToEvaluatedPolicyRuleTypes(cr.newTriggeredRules, externalizationOptions, null, prismContext); } } cr.oldPolicySituations.addAll(existingPolicySituation); diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/scripting/PipelineData.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/scripting/PipelineData.java index 1989c332131..e498bceb3c2 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/scripting/PipelineData.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/scripting/PipelineData.java @@ -178,7 +178,7 @@ private Collection resolveQuery(Class ObjectQuery query = QueryJaxbConvertor.createObjectQuery(type, queryBean, context.getPrismContext()); SearchResultList> objects = context.getModelService() .searchObjects(type, query, null, context.getTask(), result); - return objects.stream().map(o -> ObjectTypeUtil.createObjectRef(o)).collect(Collectors.toList()); + return objects.stream().map(o -> ObjectTypeUtil.createObjectRef(o, context.getPrismContext())).collect(Collectors.toList()); } static PipelineData parseFrom(ValueListType input, Map frozenInitialVariables, PrismContext prismContext) { diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/ReconciliationTaskHandler.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/ReconciliationTaskHandler.java index 4142b6b5481..3daa840b655 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/ReconciliationTaskHandler.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/ReconciliationTaskHandler.java @@ -238,7 +238,7 @@ public TaskWorkBucketProcessingResult run(Task localCoordinatorTask, WorkBucketT long reconStartTimestamp = clock.currentTimeMillis(); AuditEventRecord requestRecord = new AuditEventRecord(AuditEventType.RECONCILIATION, AuditEventStage.REQUEST); - requestRecord.setTarget(resource); + requestRecord.setTarget(resource, prismContext); requestRecord.setMessage("Stage: " + stage + ", Work bucket: " + workBucket); auditService.audit(requestRecord, localCoordinatorTask); @@ -320,7 +320,7 @@ public TaskWorkBucketProcessingResult run(Task localCoordinatorTask, WorkBucketT } AuditEventRecord executionRecord = new AuditEventRecord(AuditEventType.RECONCILIATION, AuditEventStage.EXECUTION); - executionRecord.setTarget(resource); + executionRecord.setTarget(resource, prismContext); executionRecord.setOutcome(OperationResultStatus.SUCCESS); executionRecord.setMessage(requestRecord.getMessage()); auditService.audit(executionRecord, localCoordinatorTask); @@ -391,7 +391,7 @@ public void launch(ResourceType resource, QName objectclass, Task task, Operatio task.setName(polyString); // Set reference to the resource - task.setObjectRef(ObjectTypeUtil.createObjectRef(resource)); + task.setObjectRef(ObjectTypeUtil.createObjectRef(resource, prismContext)); try { task.setExtensionPropertyValue(ModelConstants.OBJECTCLASS_PROPERTY_NAME, objectclass); @@ -453,7 +453,7 @@ private void processErrorFinal(TaskRunResult runResult, String errorDesc, Except runResult.setRunResultStatus(runResultStatus); AuditEventRecord executionRecord = new AuditEventRecord(AuditEventType.RECONCILIATION, AuditEventStage.EXECUTION); - executionRecord.setTarget(resource); + executionRecord.setTarget(resource, prismContext); executionRecord.setOutcome(OperationResultStatus.FATAL_ERROR); executionRecord.setMessage(ex.getMessage()); auditService.audit(executionRecord , task); @@ -553,7 +553,7 @@ private boolean performShadowReconciliation(final PrismObject reso .item(ShadowType.F_FULL_SYNCHRONIZATION_TIMESTAMP).le(XmlTypeConverter.createXMLGregorianCalendar(startTimestamp)) .or().item(ShadowType.F_FULL_SYNCHRONIZATION_TIMESTAMP).isNull() .endBlock() - .and().item(ShadowType.F_RESOURCE_REF).ref(ObjectTypeUtil.createObjectRef(resource).asReferenceValue()) + .and().item(ShadowType.F_RESOURCE_REF).ref(ObjectTypeUtil.createObjectRef(resource, prismContext).asReferenceValue()) // TODO MID-3581 .and().item(ShadowType.F_OBJECT_CLASS).eq(objectclassDef.getTypeName()) .build(); diff --git a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/validator/ResourceValidatorImpl.java b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/validator/ResourceValidatorImpl.java index 7cce81316d5..cc44142780a 100644 --- a/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/validator/ResourceValidatorImpl.java +++ b/model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/validator/ResourceValidatorImpl.java @@ -94,9 +94,10 @@ private static class ResourceValidationContext { ResourceValidationContext( @NotNull PrismObject resourceObject, @NotNull Scope scope, @NotNull Task task, - @NotNull ValidationResult validationResult, ResourceSchema resourceSchema) { + @NotNull ValidationResult validationResult, ResourceSchema resourceSchema, + PrismContext prismContext) { this.resourceObject = resourceObject; - this.resourceRef = ObjectTypeUtil.createObjectRef(resourceObject); + this.resourceRef = ObjectTypeUtil.createObjectRef(resourceObject, prismContext); this.scope = scope; this.task = task; this.validationResult = validationResult; @@ -118,10 +119,10 @@ public ValidationResult validate(@NotNull PrismObject resourceObje } catch (Throwable t) { vr.add(Issue.Severity.WARNING, CAT_SCHEMA, C_NO_SCHEMA, getString(CLASS_DOT + C_NO_SCHEMA, t.getMessage()), - ObjectTypeUtil.createObjectRef(resourceObject), ItemPath.EMPTY_PATH); + ObjectTypeUtil.createObjectRef(resourceObject, prismContext), ItemPath.EMPTY_PATH); } - ResourceValidationContext ctx = new ResourceValidationContext(resourceObject, scope, task, vr, resourceSchema); + ResourceValidationContext ctx = new ResourceValidationContext(resourceObject, scope, task, vr, resourceSchema, prismContext); SchemaHandlingType schemaHandling = resource.getSchemaHandling(); if (schemaHandling != null) { diff --git a/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/lens/TestAssignmentProcessor2.java b/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/lens/TestAssignmentProcessor2.java index 70fdd89eefd..27da9707c51 100644 --- a/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/lens/TestAssignmentProcessor2.java +++ b/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/lens/TestAssignmentProcessor2.java @@ -2039,7 +2039,7 @@ private void createObjectsInFourthPart(boolean deleteFirst, Task task, Operation assign(org11, org1); assign(org21, org2); // org1->roleAdmin - AssignmentType inducement = ObjectTypeUtil.createAssignmentTo(roleAdmin.asPrismObject()) + AssignmentType inducement = ObjectTypeUtil.createAssignmentTo(roleAdmin.asPrismObject(), prismContext) .beginOrderConstraint() .orderMin("1") .orderMax("unbounded") @@ -2048,7 +2048,7 @@ private void createObjectsInFourthPart(boolean deleteFirst, Task task, Operation org1.getInducement().add(inducement); // org2->roleAdmin - AssignmentType inducement2 = ObjectTypeUtil.createAssignmentTo(roleAdmin.asPrismObject()) + AssignmentType inducement2 = ObjectTypeUtil.createAssignmentTo(roleAdmin.asPrismObject(), prismContext) .beginOrderConstraint() .order(1) .relation(SchemaConstants.ORG_MANAGER) @@ -2069,7 +2069,7 @@ private void createObjectsInFourthPart(boolean deleteFirst, Task task, Operation * Org41 Admin */ assign(org41, org4); - AssignmentType inducement4 = ObjectTypeUtil.createAssignmentTo(roleAdmin.asPrismObject()) + AssignmentType inducement4 = ObjectTypeUtil.createAssignmentTo(roleAdmin.asPrismObject(), prismContext) .beginOrderConstraint() .orderMin("0") .orderMax("unbounded") @@ -2229,7 +2229,7 @@ private String createDumpConditionCode(String text) { } private void induce(AbstractRoleType source, AbstractRoleType target, int inducementOrder) { - AssignmentType inducement = ObjectTypeUtil.createAssignmentTo(target.asPrismObject()); + AssignmentType inducement = ObjectTypeUtil.createAssignmentTo(target.asPrismObject(), prismContext); if (inducementOrder > 1) { inducement.setOrder(inducementOrder); } @@ -2237,12 +2237,12 @@ private void induce(AbstractRoleType source, AbstractRoleType target, int induce } private void assign(AbstractRoleType source, AbstractRoleType target) { - AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(target.asPrismObject()); + AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(target.asPrismObject(), prismContext); source.getAssignment().add(assignment); } private void assign(AbstractRoleType source, AbstractRoleType target, QName relation) { - AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(target.asPrismObject()); + AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(target.asPrismObject(), prismContext); assignment.getTargetRef().setRelation(relation); source.getAssignment().add(assignment); } diff --git a/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/visualizer/TestVisualizer.java b/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/visualizer/TestVisualizer.java index 6b86cbb83ad..110344d167d 100644 --- a/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/visualizer/TestVisualizer.java +++ b/model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/visualizer/TestVisualizer.java @@ -22,7 +22,6 @@ import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.delta.ObjectDelta; -import com.evolveum.midpoint.prism.delta.builder.DeltaBuilder; import com.evolveum.midpoint.prism.util.PrismTestUtil; import com.evolveum.midpoint.prism.xml.XmlTypeConverter; import com.evolveum.midpoint.schema.MidPointPrismContextFactory; diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java index 28b7034f71d..b3cb5b0a4c1 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestActivation.java @@ -2664,7 +2664,7 @@ public void test600AddUser1() throws Exception { PrismObject user1 = prismContext.createObject(UserType.class); DeltaBuilder.deltaFor(UserType.class, prismContext) .item(UserType.F_NAME).replace(new PolyString("user1")) - .item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(resourceDummyCoral).asPrismContainerValue()) + .item(UserType.F_ASSIGNMENT).add(ObjectTypeUtil.createAssignmentTo(resourceDummyCoral, prismContext).asPrismContainerValue()) .item(ACTIVATION_ADMINISTRATIVE_STATUS_PATH).replace(ActivationStatusType.DISABLED) .asObjectDelta(null) .applyTo((PrismObject) user1); diff --git a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/rbac/TestAssignmentValidity.java b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/rbac/TestAssignmentValidity.java index 9787cfbf486..d4f526708b5 100644 --- a/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/rbac/TestAssignmentValidity.java +++ b/model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/rbac/TestAssignmentValidity.java @@ -1775,7 +1775,7 @@ public void test250JackAssignFocusExistsResource() throws Exception { ActivationType activation = new ActivationType(); activation.setValidFrom(getTimestamp("PT10M")); - AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(resourceDummyFocusExists).activation(activation); + AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(resourceDummyFocusExists, prismContext).activation(activation); // WHEN displayWhen(TEST_NAME); diff --git a/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportCreateTaskHandler.java b/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportCreateTaskHandler.java index 05b8e3242cc..fd64be050c3 100644 --- a/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportCreateTaskHandler.java +++ b/model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/ReportCreateTaskHandler.java @@ -516,7 +516,7 @@ private void saveReportOutputType(String filePath, ReportType reportType, Task t throw new IllegalStateException("Found more than one node with ID " + task.getNode()); } - reportOutputType.setNodeRef(ObjectTypeUtil.createObjectRef(nodes.iterator().next())); + reportOutputType.setNodeRef(ObjectTypeUtil.createObjectRef(nodes.iterator().next(), prismContext)); ObjectDelta objectDelta = null; Collection> deltas = new ArrayList<>(); diff --git a/model/workflow-api/src/main/java/com/evolveum/midpoint/wf/util/QueryUtils.java b/model/workflow-api/src/main/java/com/evolveum/midpoint/wf/util/QueryUtils.java index a62c7630894..811f5d6ecc3 100644 --- a/model/workflow-api/src/main/java/com/evolveum/midpoint/wf/util/QueryUtils.java +++ b/model/workflow-api/src/main/java/com/evolveum/midpoint/wf/util/QueryUtils.java @@ -17,6 +17,7 @@ package com.evolveum.midpoint.wf.util; import com.evolveum.midpoint.model.api.util.DeputyUtils; +import com.evolveum.midpoint.prism.PrismContext; import com.evolveum.midpoint.prism.PrismReferenceValue; import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterExit; import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty; @@ -49,12 +50,13 @@ public class QueryUtils { * * Note that work item limitations are supported only in the current (crude) form: all or none. */ + // TODO consider other default relations here!!! MID-3851 public static S_AtomicFilterExit filterForAssignees(S_FilterEntryOrEmpty q, MidPointPrincipal principal, - QName limitationItemName) throws SchemaException { + QName limitationItemName, PrismContext prismContext) { if (principal == null) { return q.none(); } else { - return q.item(WorkItemType.F_ASSIGNEE_REF).ref(getPotentialAssigneesForUser(principal, limitationItemName)); + return q.item(WorkItemType.F_ASSIGNEE_REF).ref(getPotentialAssigneesForUser(principal, limitationItemName, prismContext)); } } @@ -64,12 +66,12 @@ public static S_FilterExit filterForGroups(S_FilterEntryOrEmpty q, String userOi } private static List getPotentialAssigneesForUser(MidPointPrincipal principal, - QName limitationItemName) throws SchemaException { + QName limitationItemName, PrismContext prismContext) { List rv = new ArrayList<>(); rv.add(new PrismReferenceValue(principal.getOid(), UserType.COMPLEX_TYPE)); for (DelegatorWithOtherPrivilegesLimitations delegator : principal.getDelegatorWithOtherPrivilegesLimitationsCollection()) { if (DeputyUtils.limitationsAllow(delegator.getLimitations(), limitationItemName)) { - rv.add(ObjectTypeUtil.createObjectRef(delegator.getDelegator()).asReferenceValue()); + rv.add(ObjectTypeUtil.createObjectRef(delegator.getDelegator(), prismContext).asReferenceValue()); } } return rv; diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/ApprovalSchemaExecutionInformationHelper.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/ApprovalSchemaExecutionInformationHelper.java index d4a0b9a3d5c..ec24e0eeab3 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/ApprovalSchemaExecutionInformationHelper.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/ApprovalSchemaExecutionInformationHelper.java @@ -94,7 +94,7 @@ List getApprovalSchemaPreview(ModelConte private ApprovalSchemaExecutionInformationType getApprovalSchemaExecutionInformation(TaskType wfTask, boolean purePreview, Task opTask, OperationResult result) { ApprovalSchemaExecutionInformationType rv = new ApprovalSchemaExecutionInformationType(prismContext); - rv.setTaskRef(ObjectTypeUtil.createObjectRefWithFullObject(wfTask)); + rv.setTaskRef(ObjectTypeUtil.createObjectRefWithFullObject(wfTask, prismContext)); WfContextType wfc = wfTask.getWorkflowContext(); if (wfc == null) { result.recordFatalError("Workflow context in " + wfTask + " is missing or not accessible."); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/activiti/dao/WorkItemManager.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/activiti/dao/WorkItemManager.java index a5bd54a717d..35dfa03c254 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/activiti/dao/WorkItemManager.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/activiti/dao/WorkItemManager.java @@ -249,7 +249,7 @@ public void delegateWorkItem(String workItemId, List delega ObjectReferenceType initiator = causeInformation == null || causeInformation.getType() == WorkItemEventCauseTypeType.USER_ACTION ? - ObjectTypeUtil.createObjectRef(principal.getUser()) : null; + ObjectTypeUtil.createObjectRef(principal.getUser(), prismContext) : null; LOGGER.trace("Delegating work item {} to {}: escalation={}; cause={}", workItemId, delegates, escalation != null ? escalation.getName() + "/" + escalation.getDisplayName() : "none", causeInformation); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/common/ActivitiUtil.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/common/ActivitiUtil.java index 2bfbdd1b348..9b55ef1ad60 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/common/ActivitiUtil.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/common/ActivitiUtil.java @@ -176,8 +176,8 @@ public static List toLightweightReferences(Collection variables, PrismContext prismContext) { if (currentUser != null) { - event.setInitiatorRef(ObjectTypeUtil.createObjectRef(currentUser.getUser())); - event.setAttorneyRef(ObjectTypeUtil.createObjectRef(currentUser.getAttorney())); + event.setInitiatorRef(ObjectTypeUtil.createObjectRef(currentUser.getUser(), prismContext)); + event.setAttorneyRef(ObjectTypeUtil.createObjectRef(currentUser.getAttorney(), prismContext)); } event.setTimestamp(XmlTypeConverter.createXMLGregorianCalendar(new Date())); event.setExternalWorkItemId(workItemId); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/itemApproval/MidpointUtil.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/itemApproval/MidpointUtil.java index 204fd929044..ef0bbb683e0 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/itemApproval/MidpointUtil.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processes/itemApproval/MidpointUtil.java @@ -130,7 +130,7 @@ private static Collection expandAbstractRole(ObjectReferenc return getCacheRepositoryService() .searchObjects(UserType.class, query, null, new OperationResult("dummy")) .stream() - .map(o -> ObjectTypeUtil.createObjectRef(o)) + .map(o -> ObjectTypeUtil.createObjectRef(o, prismContext)) .collect(Collectors.toList()); } catch (SchemaException e) { throw new SystemException("Couldn't resolve " + approverRef + ": " + e.getMessage(), e); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/BaseAuditHelper.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/BaseAuditHelper.java index 69b95755634..b813e7ca0a7 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/BaseAuditHelper.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/BaseAuditHelper.java @@ -111,7 +111,7 @@ private ObjectReferenceType resolveIfNeeded(ObjectReferenceType ref, OperationRe } try { return ObjectTypeUtil.createObjectRef( - repositoryService.getObject(types.getClassDefinition(), ref.getOid(), null, result)); + repositoryService.getObject(types.getClassDefinition(), ref.getOid(), null, result), prismContext); } catch (ObjectNotFoundException|SchemaException e) { LoggingUtils.logUnexpectedException(LOGGER, "Couldn't resolve {}", e, ref); return ref; diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/PcpChildWfTaskCreationInstruction.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/PcpChildWfTaskCreationInstruction.java index 80542555a28..61dfa0368e2 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/PcpChildWfTaskCreationInstruction.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/PcpChildWfTaskCreationInstruction.java @@ -84,7 +84,7 @@ public void prepareCommonAttributes(PrimaryChangeAspect aspect, ModelContext CaseCreationEventType event = new CaseCreationEventType(); event.setTimestamp(XmlTypeConverter.createXMLGregorianCalendar(new Date())); if (requester != null) { - event.setInitiatorRef(ObjectTypeUtil.createObjectRef(requester)); + event.setInitiatorRef(ObjectTypeUtil.createObjectRef(requester, getPrismContext())); // attorney does not need to be set here (for now) } event.setBusinessContext(((LensContext) modelContext).getRequestBusinessContext()); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/aspect/BasePrimaryChangeAspect.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/aspect/BasePrimaryChangeAspect.java index 7941a11a34c..1d4429bbeb4 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/aspect/BasePrimaryChangeAspect.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/aspect/BasePrimaryChangeAspect.java @@ -198,7 +198,7 @@ private List r SearchResultList> targets = repositoryService.searchObjects(clazz, ObjectQuery.createObjectQuery(evaluatedFilter), null, result); return targets.stream() - .map(ObjectTypeUtil::createObjectRef) + .map(object -> ObjectTypeUtil.createObjectRef(object, prismContext)) .collect(Collectors.toList()); } finally { @@ -257,7 +257,7 @@ public RelationResolver createRelationResolver(PrismObject object, OperationR Set> distinctObjects = new HashSet<>(objects); LOGGER.trace("Found {} approver(s): {}", distinctObjects.size(), DebugUtil.toStringLazily(distinctObjects)); return distinctObjects.stream() - .map(ObjectTypeUtil::createObjectRef) + .map(object1 -> ObjectTypeUtil.createObjectRef(object1, prismContext)) .collect(Collectors.toList()); }; } diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/AddAssignmentAspect.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/AddAssignmentAspect.java index 2abc42e304d..229b2bacbd8 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/AddAssignmentAspect.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/AddAssignmentAspect.java @@ -246,7 +246,7 @@ private List prepareTaskInstructions(ModelCon instruction.setDeltasToProcess(delta); instruction.setObjectRef(modelContext, result); - instruction.setTargetRef(createObjectRef(target), result); + instruction.setTargetRef(createObjectRef(target, prismContext), result); String andExecuting = instruction.isExecuteApprovedChangeImmediately() ? "and execution " : ""; instruction.setTaskName("Approval " + andExecuting + "of assigning " + targetName + " to " + assigneeName); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/ModifyAssignmentAspect.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/ModifyAssignmentAspect.java index 6781245c2f1..8d0dfb87f38 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/ModifyAssignmentAspect.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/assignments/ModifyAssignmentAspect.java @@ -228,7 +228,7 @@ private List prepareJobCreateInstructions(Mod instruction.setDeltasToProcess(delta); instruction.setObjectRef(modelContext, result); - instruction.setTargetRef(ObjectTypeUtil.createObjectRef(target), result); + instruction.setTargetRef(ObjectTypeUtil.createObjectRef(target, prismContext), result); // set the names of midPoint task and activiti process instance String andExecuting = instruction.isExecuteApprovedChangeImmediately() ? "and execution " : ""; diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/entitlements/AddAssociationAspect.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/entitlements/AddAssociationAspect.java index c00d19db439..a670d68ffe2 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/entitlements/AddAssociationAspect.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/entitlements/AddAssociationAspect.java @@ -248,7 +248,7 @@ private boolean existsEquivalentValue(PrismObject shadowOld, PrismCo instruction.setDeltasToProcesses(objectTreeDeltas); instruction.setObjectRef(modelContext, result); // TODO - or should we take shadow as an object? - instruction.setTargetRef(ObjectTypeUtil.createObjectRef(target), result); + instruction.setTargetRef(ObjectTypeUtil.createObjectRef(target, prismContext), result); // set the names of midPoint task and activiti process instance String andExecuting = instruction.isExecuteApprovedChangeImmediately() ? "and execution " : ""; diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ApprovalSchemaBuilder.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ApprovalSchemaBuilder.java index 3515576513e..5d2a0f096ff 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ApprovalSchemaBuilder.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/ApprovalSchemaBuilder.java @@ -246,7 +246,7 @@ private void processFragmentGroup(List fragments, ApprovalSchemaType r if (firstFragment.policyRule != null) { List rules = new ArrayList<>(); firstFragment.policyRule.addToEvaluatedPolicyRuleTypes(rules, new PolicyRuleExternalizationOptions(FULL, - false, true), null); + false, true), null, ctx.prismContext); for (EvaluatedPolicyRuleType rule : rules) { SchemaAttachedPolicyRuleType attachedRule = new SchemaAttachedPolicyRuleType(); attachedRule.setStageMin(from); diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/AssignmentPolicyAspectPart.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/AssignmentPolicyAspectPart.java index 2bdfbb3acd7..286fd76dab9 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/AssignmentPolicyAspectPart.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/AssignmentPolicyAspectPart.java @@ -304,7 +304,7 @@ private PcpChildWfTaskCreationInstruction prepareAs instruction.setDeltasToProcess(deltaToApprove); instruction.setObjectRef(modelContext, result); - instruction.setTargetRef(createObjectRef(target), result); + instruction.setTargetRef(createObjectRef(target, prismContext), result); String taskNameInDefaultLocale = localizationService.translate( new LocalizableMessageBuilder() diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/PolicyRuleBasedAspect.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/PolicyRuleBasedAspect.java index 2cf684ddb9b..e67fd9e6673 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/PolicyRuleBasedAspect.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/processors/primary/policy/PolicyRuleBasedAspect.java @@ -180,7 +180,7 @@ private LocalizableMessage processNameFromTriggers(ApprovalSchemaBuilder.Result if (actionWithRule.getRight() != null) { for (EvaluatedPolicyRuleTrigger trigger : actionWithRule.getRight().getAllTriggers()) { // we don't care about options; these converted triggers will be thrown away - triggers.add(trigger.toEvaluatedPolicyRuleTriggerType(new PolicyRuleExternalizationOptions())); + triggers.add(trigger.toEvaluatedPolicyRuleTriggerType(new PolicyRuleExternalizationOptions(), prismContext)); } } } diff --git a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/tasks/WfTaskCreationInstruction.java b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/tasks/WfTaskCreationInstruction.java index 32dc17df135..2da506f467b 100644 --- a/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/tasks/WfTaskCreationInstruction.java +++ b/model/workflow-impl/src/main/java/com/evolveum/midpoint/wf/impl/tasks/WfTaskCreationInstruction.java @@ -276,10 +276,10 @@ public void setObjectRef(ModelContext modelContext, OperationResult result) { ObjectType focus = MiscDataUtil.getFocusObjectNewOrOld(modelContext); ObjectDelta primaryDelta = modelContext.getFocusContext().getPrimaryDelta(); if (primaryDelta != null && primaryDelta.isAdd()) { - ObjectReferenceType ref = ObjectTypeUtil.createObjectRefWithFullObject(focus); + ObjectReferenceType ref = ObjectTypeUtil.createObjectRefWithFullObject(focus, getPrismContext()); wfContext.setObjectRef(ref); } else { - setObjectRef(ObjectTypeUtil.createObjectRef(focus), result); + setObjectRef(ObjectTypeUtil.createObjectRef(focus, getPrismContext()), result); } } @@ -289,7 +289,7 @@ public void setTargetRef(ObjectReferenceType ref, OperationResult result) { } public void setRequesterRef(PrismObject requester) { - wfContext.setRequesterRef(createObjectRef(requester)); + wfContext.setRequesterRef(createObjectRef(requester, getPrismContext())); } public void setProcessInterfaceBean(ProcessMidPointInterface processInterfaceBean) { @@ -373,7 +373,7 @@ public Task createTask(WfTaskController taskController, Task parentTask, WfConfi if (taskObject != null) { //noinspection unchecked - task.setObjectRef(ObjectTypeUtil.createObjectRef(taskObject)); + task.setObjectRef(ObjectTypeUtil.createObjectRef(taskObject, getPrismContext())); } else if (parentTask != null && parentTask.getObjectRef() != null) { task.setObjectRef(parentTask.getObjectRef().clone()); } diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/AbstractWfTestPolicy.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/AbstractWfTestPolicy.java index 69316ccad8b..6b50cfe056a 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/AbstractWfTestPolicy.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/AbstractWfTestPolicy.java @@ -1029,7 +1029,7 @@ protected void checkVisibleWorkItem(ExpectedWorkItem expectedWorkItem, int count throws SchemaException, ObjectNotFoundException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException, CommunicationException { S_AtomicFilterExit q = QueryUtils .filterForAssignees(QueryBuilder.queryFor(WorkItemType.class, prismContext), SecurityUtil.getPrincipal(), - OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS); + OtherPrivilegesLimitationType.F_APPROVAL_WORK_ITEMS, prismContext); // TODO MID-3581 List currentWorkItems = modelService.searchContainers(WorkItemType.class, q.build(), null, task, result); long found = currentWorkItems.stream().filter(wi -> expectedWorkItem == null || expectedWorkItem.matches(wi)).count(); assertEquals("Wrong # of matching work items", count, found); diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/AbstractTestAssignmentApproval.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/AbstractTestAssignmentApproval.java index 0c24979b0a5..68545ecbf04 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/AbstractTestAssignmentApproval.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/assignments/AbstractTestAssignmentApproval.java @@ -367,7 +367,7 @@ protected Boolean decideOnApproval(String executionId, org.activiti.engine.task. protected List getPotentialAssignees(PrismObject user) { List rv = new ArrayList<>(); - rv.add(ObjectTypeUtil.createObjectRef(user).asReferenceValue()); + rv.add(ObjectTypeUtil.createObjectRef(user, prismContext).asReferenceValue()); rv.addAll(DeputyUtils.getDelegatorReferences(user.asObjectable(), relationRegistry)); return rv; } diff --git a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/other/TestMiscellaneous.java b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/other/TestMiscellaneous.java index 8aeb0ca66d0..ac45d2230bc 100644 --- a/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/other/TestMiscellaneous.java +++ b/model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/policy/other/TestMiscellaneous.java @@ -116,7 +116,7 @@ public void test100RequesterComment() throws Exception { display("assignment after creation", assignment); MetadataType metadata = assignment.getMetadata(); assertNotNull("Null request timestamp in metadata", metadata.getRequestTimestamp()); - assertRefEquals("Wrong requestorRef in metadata", ObjectTypeUtil.createObjectRef(userAdministrator), metadata.getRequestorRef()); + assertRefEquals("Wrong requestorRef in metadata", ObjectTypeUtil.createObjectRef(userAdministrator, prismContext), metadata.getRequestorRef()); assertEquals("Wrong requestorComment in metadata", REQUESTER_COMMENT, metadata.getRequestorComment()); } @@ -183,7 +183,7 @@ public void test105RequesterCommentImmediate() throws Exception { display("assignment after creation", assignment); MetadataType metadata = assignment.getMetadata(); assertNotNull("Null request timestamp in metadata", metadata.getRequestTimestamp()); - assertRefEquals("Wrong requestorRef in metadata", ObjectTypeUtil.createObjectRef(userAdministrator), metadata.getRequestorRef()); + assertRefEquals("Wrong requestorRef in metadata", ObjectTypeUtil.createObjectRef(userAdministrator, prismContext), metadata.getRequestorRef()); assertEquals("Wrong requestorComment in metadata", REQUESTER_COMMENT, metadata.getRequestorComment()); } diff --git a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java index 95e08cbc109..190f66f937f 100644 --- a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java +++ b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCache.java @@ -24,8 +24,6 @@ import com.evolveum.midpoint.prism.crypto.EncryptionException; import com.evolveum.midpoint.prism.crypto.Protector; import com.evolveum.midpoint.prism.delta.*; -import com.evolveum.midpoint.prism.delta.builder.DeltaBuilder; -import com.evolveum.midpoint.prism.delta.builder.S_ItemEntry; import com.evolveum.midpoint.prism.match.MatchingRuleRegistry; import com.evolveum.midpoint.prism.path.IdItemPathSegment; import com.evolveum.midpoint.prism.path.ItemPath; @@ -2716,7 +2714,7 @@ private PrismObject completeShadow(ProvisioningContext ctx, resultShadowType.setObjectClass(resourceAttributesContainer.getDefinition().getTypeName()); } if (resultShadowType.getResource() == null) { - resultShadowType.setResourceRef(ObjectTypeUtil.createObjectRef(ctx.getResource())); + resultShadowType.setResourceRef(ObjectTypeUtil.createObjectRef(ctx.getResource(), prismContext)); } // Attributes @@ -2847,7 +2845,7 @@ private PrismObject completeShadow(ProvisioningContext ctx, entitlementRepoShadow = lookupOrCreateLiveShadowInRepository(ctxEntitlement, entitlementShadow, false, isDoDiscovery, parentResult); } - ObjectReferenceType shadowRefType = ObjectTypeUtil.createObjectRef(entitlementRepoShadow); + ObjectReferenceType shadowRefType = ObjectTypeUtil.createObjectRef(entitlementRepoShadow, prismContext); shadowAssociationType.setShadowRef(shadowRefType); } } diff --git a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowManager.java b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowManager.java index 1d039ca0710..95fc8f772f1 100644 --- a/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowManager.java +++ b/provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowManager.java @@ -20,12 +20,10 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.function.Supplier; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; -import com.evolveum.midpoint.util.QNameUtil; import org.apache.commons.lang.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -68,7 +66,6 @@ import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterEntry; import com.evolveum.midpoint.prism.query.builder.S_FilterEntry; import com.evolveum.midpoint.provisioning.api.ProvisioningOperationOptions; -import com.evolveum.midpoint.provisioning.api.ResourceOperationDescription; import com.evolveum.midpoint.provisioning.ucf.api.Change; import com.evolveum.midpoint.provisioning.util.ProvisioningUtil; import com.evolveum.midpoint.repo.api.ModificationPrecondition; @@ -125,7 +122,6 @@ import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; -import com.evolveum.prism.xml.ns._public.types_3.ChangeTypeType; import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType; import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType; @@ -1496,13 +1492,13 @@ private PrismObject createRepositoryShadow(ProvisioningContext ctx, // convert to the resource reference. if (repoShadowType.getResource() != null) { repoShadowType.setResource(null); - repoShadowType.setResourceRef(ObjectTypeUtil.createObjectRef(ctx.getResource())); + repoShadowType.setResourceRef(ObjectTypeUtil.createObjectRef(ctx.getResource(), prismContext)); } // if shadow does not contain resource or resource reference, create it // now if (repoShadowType.getResourceRef() == null) { - repoShadowType.setResourceRef(ObjectTypeUtil.createObjectRef(ctx.getResource())); + repoShadowType.setResourceRef(ObjectTypeUtil.createObjectRef(ctx.getResource(), prismContext)); } if (repoShadowType.getName() == null) { diff --git a/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java b/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java index 52c1fdc5f79..5e3a569eac0 100644 --- a/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java +++ b/repo/audit-api/src/main/java/com/evolveum/midpoint/audit/api/AuditEventRecord.java @@ -258,9 +258,9 @@ public void setTarget(PrismReferenceValue target) { } // Compatibility and convenience - public void setTarget(PrismObject targetObject) { + public void setTarget(PrismObject targetObject, PrismContext prismContext) { if (targetObject != null) { - this.target = ObjectTypeUtil.createObjectRef((ObjectType) targetObject.asObjectable()).asReferenceValue(); + this.target = ObjectTypeUtil.createObjectRef((ObjectType) targetObject.asObjectable(), prismContext).asReferenceValue(); } else { this.target = null; } diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java index a98b7fb9468..a21c06c032a 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/SqlAuditServiceImpl.java @@ -234,7 +234,8 @@ private void listRecordsIterativeAttempt(String query, Map param // TODO what if original name (in audit log) differs from the current one (in repo) ? audit.setInitiator(resolve(session, raudit.getInitiatorOid(), raudit.getInitiatorName(), defaultIfNull(raudit.getInitiatorType(), RObjectType.USER))); audit.setAttorney(resolve(session, raudit.getAttorneyOid(), raudit.getAttorneyName(), RObjectType.USER)); - audit.setTarget(resolve(session, raudit.getTargetOid(), raudit.getTargetName(), raudit.getTargetType())); + audit.setTarget(resolve(session, raudit.getTargetOid(), raudit.getTargetName(), raudit.getTargetType()), + getPrismContext()); audit.setTargetOwner(resolve(session, raudit.getTargetOwnerOid(), raudit.getTargetOwnerName(), raudit.getTargetOwnerType())); count++; if (!handler.handle(audit)) { diff --git a/testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestConsistencyMechanism.java b/testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestConsistencyMechanism.java index 61bdfc03ba5..652bb162218 100644 --- a/testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestConsistencyMechanism.java +++ b/testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestConsistencyMechanism.java @@ -2023,7 +2023,7 @@ public void test511AssignAccountMorgan() throws Exception { ConstructionType construction = new ConstructionType(); construction.getAttribute().add(attrDefType); - construction.setResourceRef(ObjectTypeUtil.createObjectRef(resourceTypeOpenDjrepo)); + construction.setResourceRef(ObjectTypeUtil.createObjectRef(resourceTypeOpenDjrepo, prismContext)); AssignmentType assignment = new AssignmentType(); assignment.setConstruction(construction);