[midPoint-git] [Evolveum/midpoint] 18ba4d: Smart Integration: Refactor heuristic mappings to ...

Michal Zelenčík noreply at github.com
Fri Feb 6 07:40:12 CET 2026


  Branch: refs/heads/feature/heuristic-mappings
  Home:   https://github.com/Evolveum/midpoint
  Commit: 18ba4dae515c34a1746dbd2c2824303f95aba3c5
      https://github.com/Evolveum/midpoint/commit/18ba4dae515c34a1746dbd2c2824303f95aba3c5
  Author: Michal Zelencik <michal.zelencik at evolveum.com>
  Date:   2026-02-06 (Fri, 06 Feb 2026)

  Changed paths:
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingSuggestionOperationFactory.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/ValuesPairSample.java
    R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/AbstractHeuristicMapping.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/FirstWordHeuristic.java
    R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicMapping.java
    R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicMappingManager.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicResult.java
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicRule.java
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicRuleMatcher.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/LastWordHeuristic.java
    A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/MappingExpressionFactory.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/RemoveWhitespaceHeuristic.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/StripDiacriticsHeuristic.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/ToLowerCaseHeuristic.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/ToUpperCaseHeuristic.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/TrimAndLowerCaseHeuristic.java
    M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/TrimHeuristic.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestMappingsSuggestionOperation.java
    M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestSystemMappingsSuggestion.java

  Log Message:
  -----------
  Smart Integration: Refactor heuristic mappings to use composition over inheritance

Replace inheritance-based design with factory pattern to reduce coupling
and improve modularity in the heuristic mapping system.

- Replace AbstractHeuristicMapping inheritance with MappingExpressionFactory
  functional interface
- Rename HeuristicMapping → HeuristicRule (better semantic meaning)
- Rename HeuristicMappingManager → HeuristicRuleMatcher (clearer purpose)
- Update all 8 heuristic implementations to use factory pattern
- Optimize HeuristicRuleMatcher.findBestMatch() to create HeuristicResult
  only for the best match instead of all evaluated rules
- Update both inbound and outbound expression methods to accept factory
  parameter

Addresses review comments in AbstractHeuristicMapping.java,
HeuristicMapping.java, and HeuristicMappingManager.java.



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