[midPoint-git] [Evolveum/midpoint] ee9eaf: Parse activity queries using correct definitions

Andrej noreply at github.com
Sat Nov 22 09:14:50 CET 2025


  Branch: refs/heads/feature/fast-simulation
  Home:   https://github.com/Evolveum/midpoint
  Commit: ee9eafcf239669cb886c435c25da786688317260
      https://github.com/Evolveum/midpoint/commit/ee9eafcf239669cb886c435c25da786688317260
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ResourceSchemaRegistry.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/processor/ValueBasedDefinitionLookupsImpl.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/sync/tasks/SyncTaskHelper.java

  Log Message:
  -----------
  Parse activity queries using correct definitions

Now we use correct resource object definitions when parsing queries
in resource-related activities (like import or correlation simulation).

The schemaContext annotation was created as well.


  Commit: c08b91a716acb1dccfd403a55f32421d608fb339
      https://github.com/Evolveum/midpoint/commit/c08b91a716acb1dccfd403a55f32421d608fb339
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M infra/schema/src/main/resources/xml/ns/public/common/common-tasks-3.xsd
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityHandler.java
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityRun.java
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationWorkDefinition.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/handlers/ActivityHandlerRegistry.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/AbstractActivityRun.java

  Log Message:
  -----------
  Add skeleton for new correlation simulation activity

**What**

Implement basic skeleton for the correlation simulation activity. It
will be used to simulate correlation with given correlator(s) on
specified set of shadows.

**Why**

It will be used to quickly simulate correlators suggested by AI.

**Notes**

This activity supports only simulation (preview) mode.


  Commit: 27c38384bed8a72ef991cd3ea764fb22e72a5196
      https://github.com/Evolveum/midpoint/commit/27c38384bed8a72ef991cd3ea764fb22e72a5196
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationDefinitionProvider.java
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/ResourceCorrelationDefinitionProvider.java
    A model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/correlator/tasks/ResourceCorrelationDefinitionProviderTest.java
    A model/model-impl/src/test/resources/correlator/correlation/merge/resource-dummy-correlation-in-attribute.xml
    A model/model-impl/src/test/resources/correlator/correlation/merge/resource-dummy-correlation-in-schema-handling.xml
    A model/model-impl/src/test/resources/correlator/correlation/merge/resource-dummy-correlation-in-synchronization.xml
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java

  Log Message:
  -----------
  Add resource based provider of correlation definition

**What**

Implement the provider of a correlation definition which reads the
definition from the resource.

**Why**

For "fast" simulation of correlations, we want to add an option for
including also existing correlation definition into the simulation. For
that purpose we need to read the correlation definition from the
resource. The work definition of the correlation simulation activity may
also contain correlation definition (in fact that is the main point of
implementing the activity).

That, however, means we have at least two sources of correlation
definitions for the activity. How those sources are accessed and
processed can differ significantly. For example when we read correlation
definition from the resource, we need to "merge" correlations, which are
possibly defined by different structures on different places of the
resource.

Because of that this change introduce the "provider" abstraction which
allows to encapsulate logic specific to particular source of
correlations.

**Notes**

As mentioned above, the correlation in resource can be defined in more
ways. Some of them are legacy, but we still support them. The provider
of the correlation implements a logic which collects all those
structures and merges them to single correlation definition. To do that
it relies on `CorrelatorsDefinitionUtils`, which provides necessary
functionality.


  Commit: 43843b9c71ec79ea6f0155996264bde2d869f9d1
      https://github.com/Evolveum/midpoint/commit/43843b9c71ec79ea6f0155996264bde2d869f9d1
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/CorrelatorsDefinitionUtil.java
    A model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationDefinitionUtilTest.java

  Log Message:
  -----------
  Implement merge of correlation definitions

**What**

Implement new utility method for merge of two correlation definitions.

**Why**

In the use case of correlation simulation we need to have ability to
merge correlation definitions from multiple sources. Resulting merged
correlation definition will be then used in simulation.

**Notes**

The only custom merging other than what is implemented by the
`BaseMergeOperation` class is that thresholds are preferred from the
target definition. That means, if both target and source has a
thresholds, only the one from target is used in resulting definition.


  Commit: b2f9f362360d51062d0b54c6030f93f9bd0e56a5
      https://github.com/Evolveum/midpoint/commit/b2f9f362360d51062d0b54c6030f93f9bd0e56a5
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    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/correlator/tasks/CorrelationDefinitionProvider.java
    A model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationDefinitionProviderFactory.java
    A model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationDefinitionProviderFactoryTest.java

  Log Message:
  -----------
  Implement union of correlation definition providers

**What**

Implement functionality to unite two providers of correlation
definition.

**Why**

In correlation simulation use case, the user can specify two sources of
correlation definition. One source is existing definition in a resource
and second source is inline definition in the work definition itself.
These sources are handled by correlation definition providers.

For the simulation, we need to merge definitions from all sources and
use the resulting definition.

To simplify that we can now "unite" the providers themself what creates
new instance of a provider which does the merging.

**Notes**

Currently the definition from provider reading definitions in resource
is used as a "target" for the merge operation. That has a consequence
mainly for the possibly present thresholds. If thresholds are in both
target and source (in this case inline definition in work def), only the
target threshold will be present in the result.


  Commit: fd8b609f8e6b2da5815547ad804bd62cb8253cb7
      https://github.com/Evolveum/midpoint/commit/fd8b609f8e6b2da5815547ad804bd62cb8253cb7
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityRun.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationWorkDefinition.java

  Log Message:
  -----------
  Wire correlation definition providers to work definition

**What**

Wire the providers of correlation definition into the work definition
itself.

**Why**

The informations needed by providers, or even by providers factory, are
present in the work definition itself.

Instead of providing getters to internal work definition state and using
that to construct correlation definition outside, I added method which
can provide correlation definition to the work definition itself. This
way we preserve proper encapsulation of internal state.


  Commit: 2f026d9859d0a47aebe92f853aebd0b77be5f8fc
      https://github.com/Evolveum/midpoint/commit/2f026d9859d0a47aebe92f853aebd0b77be5f8fc
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/correlation/CorrelationService.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlation/CorrelationServiceImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityRun.java
    A model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationServiceTest.java
    A model/model-impl/src/test/resources/correlator/correlation/task/account.csv
    A model/model-impl/src/test/resources/correlator/correlation/task/dummy-resource.xml
    A model/model-impl/src/test/resources/correlator/correlation/task/item-correlator.xml
    A model/model-impl/src/test/resources/correlator/correlation/task/users.xml

  Log Message:
  -----------
  Implement correlation with specified correlation definition

**What**

Implement new method to the correlation service, which correlate given
shadow with given correlation definition.

**Why**

In the correlation simulation use case we need to simulate given
correlation definition on specified set of shadows. The correlation
definition to use does not have to be stored in the resource, but can
also be specified explicitly.


  Commit: 960a2e535a9174fe4a01aba89f6471f6ac7cfb91
      https://github.com/Evolveum/midpoint/commit/960a2e535a9174fe4a01aba89f6471f6ac7cfb91
  Author: Andrej Zan <andrej.zan at evolveum.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/task/work/WorkDefinitionUtil.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityHandler.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationActivityRun.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/correlator/tasks/CorrelationDefinitionProviderFactory.java

  Log Message:
  -----------
  Store results of correlation simulation activity

**What**

Creates the final results structure of correlation simulation and store
it in the simulation transaction.

**Notes**

There is also a small fix of missing correlation work definition in the
`WorkDefinitionUtil` class.


Compare: https://github.com/Evolveum/midpoint/compare/ee9eafcf2396%5E...960a2e535a91

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