[midPoint-git] [Evolveum/midpoint] c9cb44: Support activity policy rules anywhere in tree

mederly noreply at github.com
Wed Oct 29 15:46:33 CET 2025


  Branch: refs/heads/feature/mid-10412-skip-restart-activity
  Home:   https://github.com/Evolveum/midpoint
  Commit: c9cb448f512d38ba0ccced5b0748d46db3aa6680
      https://github.com/Evolveum/midpoint/commit/c9cb448f512d38ba0ccced5b0748d46db3aa6680
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-10-29 (Wed, 29 Oct 2025)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/task/ActivityItemProcessingStatisticsUtil.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/task/ActivityPerformanceInformation.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/task/ActivityTreeUtil.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/task/WallClockTimeComputer.java
    M infra/schema/src/main/resources/xml/ns/public/common/common-tasks-3.xsd
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/cleanup/CleanupActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/cleanup/ShadowRefreshActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/tasks/async/AsyncUpdateActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/tasks/recon/ReconciliationActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/tasks/sync/LiveSyncActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/tasks/cluster/AutoScalingActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/tasks/scanner/FocusValidityScanActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/trigger/TriggerScanActivityHandler.java
    M model/model-intest/src/test/resources/tasks/thresholds/task-non-iterative-restart.xml
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportExportActivityHandler.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/DistributedReportExportActivityHandler.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/DistributedReportExportActivitySupport.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/Activity.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/ActivityTreeStateOverview.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/EmbeddedActivity.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/StandaloneActivity.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/TaskActivityManager.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/handlers/ActivityHandler.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/handlers/CustomCompositeActivityHandler.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyConstraintsEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyProcessorHelper.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyRuleEvaluationContext.java
    A repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyRuleIdentifier.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyRuleUpdater.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyRulesContext.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ActivityPolicyRulesProcessor.java
    A repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/ComputationUtil.java
    A repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/DataNeed.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/EvaluatedActivityPolicyRule.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/EvaluatedPolicyReaction.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/EvaluatedPolicyRule.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/PolicyRuleCounterUpdater.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/PolicyRulesContext.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/PolicyViolationContextBuilder.java
    A repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/PreexistingValues.java
    A repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/PreexistingValuesComputer.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/evaluator/ActivityCompositeConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/evaluator/DurationConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/evaluator/ExecutionAttemptsConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/evaluator/ExecutionTimeConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/evaluator/ItemStateConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/policy/evaluator/NumericConstraintEvaluator.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/AbstractActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/DelegatingActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/LocalActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/processing/ItemProcessingGatekeeper.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/state/ActivityState.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/state/ActivityStateDefinition.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/state/CurrentActivityState.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/state/OtherActivityState.java
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/TestActivityPolicies.java
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/handlers/composite/CompositeMockActivityHandler.java
    M repo/repo-common/src/test/resources/tasks/activities/policies/task-100-simple-suspend-on-execution-time.xml
    M repo/repo-common/src/test/resources/tasks/activities/policies/task-110-child-suspend-on-own-execution-time.xml
    M repo/repo-common/src/test/resources/tasks/activities/policies/task-120-child-suspend-on-parent-execution-time.xml
    M repo/repo-common/src/test/resources/tasks/activities/policies/task-150-multinode-suspend-on-execution-time.xml
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/ActivityItemProcessingStatisticsAsserter.java
    M repo/task-api/src/main/java/com/evolveum/midpoint/task/api/Task.java
    M repo/task-api/src/main/java/com/evolveum/midpoint/task/api/test/NullTaskImpl.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/TaskQuartzImpl.java
    M testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestThresholdsStoryLiveSync.java
    M testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestThresholdsStoryRecon.java

  Log Message:
  -----------
  Support activity policy rules anywhere in tree

Now we can specify policy rules anywhere in the activity tree. They
will be evaluated in all child activities. For performance reasons,
the state (e.g., counters) is maintained locally, in each activity
involved. The initial values for each activity are determined at the
beginning, see PreexistingValues class.

Limitations:

1. Some tests in TestActivityPolicies fail.

2. There is still the problem of collecting rules from predefined
composite activities (like reconciliation) twice.

3. Policy state recording is done at the place where the policy rule
was triggered. But it should be at the place where it is defined, e.g.,
to treat notification suppression when the rule is triggered at
different places in the tree.

Related changes:

1. Unused type parameter in ActivityStateDefinition was removed.

2. Rule collecting is now done in LocalActivityRun, as it is not needed
for delegating and distributing activities. We can add it there later,
if necessary. The collecting was also removed from
ActivityPolicyProcessorHelper, as it's not needed there as well.

3. ActivityPolicyRuleIdentifier was added, to clearly mark this data
type.

4. Terminology change: instead of "enforcing" rules we "execute" them.
This is because rule enforcement is only one of possible actions in
object-based policy rules in midPoint. (Note: not all places were
changed yet.)

5. Minor code/doc improvements.


  Commit: aa506df290ea8a8d3249153d17392ad604bc76e5
      https://github.com/Evolveum/midpoint/commit/aa506df290ea8a8d3249153d17392ad604bc76e5
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-10-29 (Wed, 29 Oct 2025)

  Changed paths:
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/TestActivityPolicies.java
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-400-simple-restart-on-execution-time.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-410-child-restart-on-own-execution-time.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-420-child-restart-on-parent-execution-time.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-430-child-restart-on-own-execution-time-with-subtasks.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-440-child-restart-on-parent-execution-time-with-subtasks.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-450-multinode-restart-on-execution-time.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-460-multinode-child-restart-on-own-execution-time-with-subtasks.xml
    A repo/repo-common/src/test/resources/tasks/activities/policies/task-470-multinode-child-restart-on-root-execution-time-with-subtasks.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/feature/mid-10142-skip-restart-activity'

Resolved 1 conflict (TestActivityPolicies) during merge.


  Commit: d2d4b946af6962e31f22d35475fcbeeceb568c63
      https://github.com/Evolveum/midpoint/commit/d2d4b946af6962e31f22d35475fcbeeceb568c63
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-10-29 (Wed, 29 Oct 2025)

  Changed paths:
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/TestActivityPolicies.java
    M repo/repo-common/src/test/resources/tasks/activities/policies/task-120-child-suspend-on-parent-execution-time.xml

  Log Message:
  -----------
  Fix TestActivityPolicies after merge


Compare: https://github.com/Evolveum/midpoint/compare/d004687a25fa...d2d4b946af69

To unsubscribe from these emails, change your notification settings at https://github.com/Evolveum/midpoint/settings/notifications


More information about the midPoint-svn mailing list