Skip to content

Commit

Permalink
MID-7534 added ProvisioningOperationContext to provisioning api, fixe…
Browse files Browse the repository at this point in the history
…d compilation issues
  • Loading branch information
1azyman committed May 22, 2023
1 parent 2ff8f49 commit 9f05bf9
Show file tree
Hide file tree
Showing 17 changed files with 116 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

package com.evolveum.midpoint.certification.impl;

import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironment;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironmentThreadLocalHolder;
import com.evolveum.midpoint.schema.expression.VariablesMap;
import com.evolveum.midpoint.model.api.expr.OrgStructFunctions;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.PrismValue;
import com.evolveum.midpoint.repo.common.expression.Expression;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironment;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import com.evolveum.midpoint.model.api.context.ModelContext;
import com.evolveum.midpoint.model.api.context.ModelProjectionContext;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironment;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironmentThreadLocalHolder;
import com.evolveum.midpoint.model.api.context.Mapping;
import com.evolveum.midpoint.prism.ItemDefinition;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

package com.evolveum.midpoint.model.impl.controller;

import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironment;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironmentThreadLocalHolder;

import org.jetbrains.annotations.NotNull;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public static ProvisioningService createProvisioningService() {
@NotNull Class<T> type,
@NotNull String oid,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) {
throw new UnsupportedOperationException();
Expand All @@ -55,6 +56,7 @@ public <T extends ObjectType> String addObject(
@NotNull PrismObject<T> object,
@Nullable OperationProvisioningScriptsType scripts,
@Nullable ProvisioningOperationOptions options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) {
return null;
Expand Down Expand Up @@ -85,6 +87,7 @@ public <T extends ObjectType> SearchResultList<PrismObject<T>> searchObjects(
@NotNull Class<T> type,
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) {
return new SearchResultList<>(new ArrayList<>(0));
Expand All @@ -95,6 +98,7 @@ public <T extends ObjectType> Integer countObjects(
@NotNull Class<T> type,
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) {
return null;
Expand All @@ -106,6 +110,7 @@ public <T extends ObjectType> SearchResultMetadata searchObjectsIterative(
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@NotNull ResultHandler<T> handler,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) {
return null;
Expand All @@ -118,6 +123,7 @@ public <T extends ObjectType> String modifyObject(
@NotNull Collection<? extends ItemDelta<?, ?>> modifications,
@Nullable OperationProvisioningScriptsType scripts,
@Nullable ProvisioningOperationOptions options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) {
return null;
Expand All @@ -129,6 +135,7 @@ public <T extends ObjectType> PrismObject<T> deleteObject(
String oid,
ProvisioningOperationOptions option,
OperationProvisioningScriptsType scripts,
@Nullable ProvisioningOperationContext context,
Task task,
OperationResult parentResult) {
return null;
Expand Down Expand Up @@ -186,6 +193,7 @@ public List<ConnectorOperationalStatus> getConnectorOperationalStatus(
public void refreshShadow(
PrismObject<ShadowType> shadow,
ProvisioningOperationOptions options,
ProvisioningOperationContext context,
Task task,
OperationResult parentResult) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

import com.evolveum.midpoint.model.api.expr.MidpointFunctions;
import com.evolveum.midpoint.repo.api.CacheDispatcher;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;
import com.evolveum.midpoint.util.*;
import com.evolveum.midpoint.util.exception.SystemException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
import com.evolveum.midpoint.repo.common.SystemObjectCache;
import com.evolveum.midpoint.repo.common.activity.ReportOutputCreatedListener;
import com.evolveum.midpoint.repo.common.commandline.CommandLineScriptExecutor;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironment;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;
import com.evolveum.midpoint.repo.common.expression.ExpressionEnvironmentThreadLocalHolder;
import com.evolveum.midpoint.repo.common.expression.ExpressionFactory;
import com.evolveum.midpoint.repo.common.expression.ExpressionUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,16 @@

import com.evolveum.midpoint.schema.expression.ExpressionProfile;
import com.evolveum.midpoint.schema.util.ObjectDeltaSchemaLevelUtil;
import com.evolveum.midpoint.task.api.ExpressionEnvironment;

import java.util.function.Supplier;

public class ProvisioningOperationContext {

private String requestIdentifier;

private Supplier<ExpressionEnvironment> expressionEnvironment;

private ExpressionProfile expressionProfile;

private ObjectDeltaSchemaLevelUtil.NameResolver nameResolver;
Expand Down Expand Up @@ -44,4 +49,13 @@ public ProvisioningOperationContext nameResolver(ObjectDeltaSchemaLevelUtil.Name
this.nameResolver = nameResolver;
return this;
}

public Supplier<ExpressionEnvironment> expressionEnvironment() {
return expressionEnvironment;
}

public ProvisioningOperationContext expressionEnvironment(Supplier<ExpressionEnvironment> expressionEnvironment) {
this.expressionEnvironment = expressionEnvironment;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -635,11 +635,23 @@ <T extends ObjectType> Integer countObjects(
@NotNull Class<T> type,
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult)
throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException,
SecurityViolationException, ExpressionEvaluationException;

default <T extends ObjectType> Integer countObjects(
@NotNull Class<T> type,
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@NotNull Task task,
@NotNull OperationResult parentResult)
throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException,
SecurityViolationException, ExpressionEvaluationException {
return countObjects(type, query, options, new ProvisioningOperationContext(), task, parentResult);
}

/**
* Search for objects iteratively. Searches through all object types. Calls a specified handler for each object found.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.provisioning.api.ProvisioningOperationContext;
import com.evolveum.midpoint.schema.CapabilityUtil;
import com.evolveum.midpoint.schema.TaskExecutionMode;
import com.evolveum.midpoint.schema.util.*;
Expand Down Expand Up @@ -130,6 +131,8 @@ public class ProvisioningContext {
*/
private Collection<ResourceObjectPattern> protectedObjectPatterns;

private ProvisioningOperationContext operationContext;

/** Creating context from scratch. */
ProvisioningContext(
@NotNull Task task,
Expand Down Expand Up @@ -164,6 +167,10 @@ public class ProvisioningContext {
LOGGER.trace("Created/spawned {}", this);
}

public ProvisioningOperationContext getOperationContext() {
return operationContext;
}

public void setGetOperationOptions(Collection<SelectorOptions<GetOperationOptions>> getOperationOptions) {
this.getOperationOptions = getOperationOptions;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ public class ProvisioningServiceImpl implements ProvisioningService, SystemConfi
@NotNull Class<T> type,
@NotNull String oid,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) throws ObjectNotFoundException,
CommunicationException, SchemaException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException {
Expand Down Expand Up @@ -333,6 +334,7 @@ public <T extends ObjectType> SearchResultList<PrismObject<T>> searchObjects(
@NotNull Class<T> type,
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult)
throws SchemaException, ObjectNotFoundException, CommunicationException,
Expand Down Expand Up @@ -369,6 +371,7 @@ public <T extends ObjectType> Integer countObjects(
@NotNull Class<T> type,
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult)
throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException,
Expand Down Expand Up @@ -409,6 +412,7 @@ public <T extends ObjectType> String modifyObject(
@NotNull Collection<? extends ItemDelta<?, ?>> modifications,
@Nullable OperationProvisioningScriptsType scripts,
@Nullable ProvisioningOperationOptions options,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult)
throws ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException,
Expand Down Expand Up @@ -479,7 +483,7 @@ public <T extends ObjectType> String modifyObject(

@Override
public <T extends ObjectType> PrismObject<T> deleteObject(Class<T> type, String oid, ProvisioningOperationOptions options,
OperationProvisioningScriptsType scripts, Task task, OperationResult parentResult) throws ObjectNotFoundException,
OperationProvisioningScriptsType scripts, ProvisioningOperationContext context, Task task, OperationResult parentResult) throws ObjectNotFoundException,
CommunicationException, SchemaException, ConfigurationException, SecurityViolationException, PolicyViolationException,
ExpressionEvaluationException {

Expand Down Expand Up @@ -736,6 +740,7 @@ public <T extends ObjectType> SearchResultMetadata searchObjectsIterative(
@Nullable ObjectQuery query,
@Nullable Collection<SelectorOptions<GetOperationOptions>> options,
@NotNull ResultHandler<T> handler,
@Nullable ProvisioningOperationContext context,
@NotNull Task task,
@NotNull OperationResult parentResult) throws SchemaException, ObjectNotFoundException, CommunicationException,
ConfigurationException, SecurityViolationException, ExpressionEvaluationException {
Expand Down

0 comments on commit 9f05bf9

Please sign in to comment.