Skip to content

Commit

Permalink
Outbound multiaccounts: tests passing (MID-6242)
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed May 19, 2020
1 parent dfecf6b commit 62756b0
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 24 deletions.
Expand Up @@ -156,7 +156,7 @@ public void after(PersonaKey key, String desc,
evaluatedConstruction -> new PersonaKey(((PersonaConstruction<F>)evaluatedConstruction.getConstruction()).getConstructionType()),
consumer);

LOGGER.trace("activePersonaKeyTriple:\n{}", activePersonaKeyTriple.debugDumpLazily());
LOGGER.trace("activePersonaKeyTriple:\n{}", activePersonaKeyTriple.debugDumpLazily(1));

List<FocusType> existingPersonas = readExistingPersonas(context, task, result);
LOGGER.trace("existingPersonas:\n{}", existingPersonas);
Expand Down
Expand Up @@ -399,11 +399,9 @@ private void evaluateObjectClassDefinition(ResourceType resource, Task task, Ope
}

protected void createEvaluatedConstructions(Task task, OperationResult result) throws CommunicationException, ObjectNotFoundException, SchemaException, SecurityViolationException, ConfigurationException, ExpressionEvaluationException {
PrismValueDeltaSetTriple<PrismPropertyValue<String>> tagTriple = evaluateTagTripe(task, result);
LOGGER.info("XXXX: tagTriple\n{}", DebugUtil.debugDump(tagTriple));

evaluatedConstructionTriple = getPrismContext().deltaFactory().createDeltaSetTriple();

PrismValueDeltaSetTriple<PrismPropertyValue<String>> tagTriple = evaluateTagTripe(task, result);
if (tagTriple == null) {
// Singleaccount case (not multiaccount). We just create a simple EvaluatedConstruction
EC evaluatedConstruction = createEvaluatedConstruction((String)null);
Expand All @@ -413,8 +411,6 @@ protected void createEvaluatedConstructions(Task task, OperationResult result) t

tagTriple.transform(evaluatedConstructionTriple, tag -> createEvaluatedConstruction(tag.getRealValue()));
}

LOGGER.info("XXXX: evaluatedConstructionTriple\n{}", DebugUtil.debugDump(evaluatedConstructionTriple));
}


Expand Down
Expand Up @@ -77,9 +77,11 @@ private void collectToConstructionMapFromConstructions(
for (AC construction : constructions) {
LOGGER.trace("Collecting evaluated constructions from construction:\n{}", construction.debugDumpLazily(1));
DeltaSetTriple<EC> evaluatedConstructionTriple = construction.getEvaluatedConstructionTriple();
collectToConstructionMapFromEvaluatedConstructions(evaluatedAssignment, evaluatedConstructionTriple.getZeroSet(), mode1, mode2, PlusMinusZero.ZERO);
collectToConstructionMapFromEvaluatedConstructions(evaluatedAssignment, evaluatedConstructionTriple.getPlusSet(), mode1, mode2, PlusMinusZero.PLUS);
collectToConstructionMapFromEvaluatedConstructions(evaluatedAssignment, evaluatedConstructionTriple.getMinusSet(), mode1, mode2, PlusMinusZero.MINUS);
if (evaluatedConstructionTriple != null) {
collectToConstructionMapFromEvaluatedConstructions(evaluatedAssignment, evaluatedConstructionTriple.getZeroSet(), mode1, mode2, PlusMinusZero.ZERO);
collectToConstructionMapFromEvaluatedConstructions(evaluatedAssignment, evaluatedConstructionTriple.getPlusSet(), mode1, mode2, PlusMinusZero.PLUS);
collectToConstructionMapFromEvaluatedConstructions(evaluatedAssignment, evaluatedConstructionTriple.getMinusSet(), mode1, mode2, PlusMinusZero.MINUS);
}
}
}

Expand Down
Expand Up @@ -93,8 +93,6 @@ private NextRecompute evaluateAttributes(Task task, OperationResult result)
projectionOdo = getProjectionContext().getObjectDeltaObject();
}

LOGGER.info("XXXX: projectionOdo for {}:\n{}", getProjectionContext().getResourceShadowDiscriminator(), projectionOdo.debugDump(1));

String mappingShortDesc = "outbound mapping for " +
PrettyPrinter.prettyPrint(refinedAttributeDefinition.getItemName()) + " in " + getProjectionContext().getResource();
MappingImpl.Builder<PrismPropertyValue<?>, RefinedAttributeDefinition<?>> builder =
Expand Down
Expand Up @@ -12,6 +12,8 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PersonaConstructionType;

import java.util.Collections;

/**
* @author semancik
*
Expand All @@ -23,8 +25,8 @@ public PersonaConstruction(PersonaConstructionType constructionType, ObjectType
}

public DeltaSetTriple<EvaluatedPersonaConstructionImpl<AH>> getEvaluatedConstructionTriple() {
// TODO: return single evaluated construction in zero set?
return null;
EvaluatedPersonaConstructionImpl<AH> evaluatedConstruction = new EvaluatedPersonaConstructionImpl<>(this);
return getPrismContext().deltaFactory().createDeltaSetTriple(Collections.singleton(evaluatedConstruction), Collections.emptyList(), Collections.emptyList());
}

@Override
Expand Down
10 changes: 5 additions & 5 deletions model/model-intest/src/test/resources/logback-test.xml
Expand Up @@ -55,16 +55,16 @@
<logger name="com.evolveum.midpoint.model.impl.lens.projector.Projector" level="TRACE" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ContextLoader" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.PasswordPolicyProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ConstructionProcessor" level="TRACE" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ProjectionValuesProcessor" level="TRACE" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.OutboundProcessor" level="TRACE" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ConsolidationProcessor" level="TRACE" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ConstructionProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ProjectionValuesProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.OutboundProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ConsolidationProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ReconciliationProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.ActivationProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.DependencyProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.mappings.MappingEvaluator" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.focus.FocusActivationProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.focus.AssignmentHolderProcessor" level="TRACE" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.focus.AssignmentHolderProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.focus.InboundProcessor" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.focus.FocusConstraintsChecker" level="DEBUG" />
<logger name="com.evolveum.midpoint.model.impl.lens.projector.focus.FocusPolicyProcessor" level="DEBUG" />
Expand Down
Expand Up @@ -172,11 +172,7 @@
<multiplicity>
<maxOccurs>unbounded</maxOccurs>
<tag>
<!-- <expression>
<path>$focus/organization</path>
</expression> -->
<outbound>
<trace>true</trace>
<source>
<path>$focus/organization</path>
</source>
Expand All @@ -187,15 +183,13 @@
<ref>icfs:name</ref>
<displayName>Username</displayName>
<outbound>
<trace>true</trace>
<source>
<path>name</path>
</source>
<source>
<path>$projection/tag</path>
</source>
<expression>
<trace>true</trace>
<script>
<code>'envoy-' + name + '-' + tag.toLowerCase()</code>
</script>
Expand Down

0 comments on commit 62756b0

Please sign in to comment.