[midPoint-git] [Evolveum/prism] a52082: Fix working with frozen objects

mederly noreply at github.com
Fri Mar 7 09:14:37 CET 2025


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/prism
  Commit: a52082cfeff18b6e1293f03c66cf80beb4cf0cc8
      https://github.com/Evolveum/prism/commit/a52082cfeff18b6e1293f03c66cf80beb4cf0cc8
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-02-26 (Wed, 26 Feb 2025)

  Changed paths:
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/ItemFactory.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ItemFactoryImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismObjectImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismObjectValueImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/binding/AbstractMutableObjectable.java

  Log Message:
  -----------
  Fix working with frozen objects

Before this commit, if asPrismObject() was called on frozen Objectable,
the result was NOT immutable PrismObject. (But with immutable content.)
This made CloneUtil.toImmutable() inefficient, as it had to clone the
whole object.

This commit fixes that by preserving immutability when switching
between Objectable and PrismObject form.

It also removes ItemFactory#createObjectValue and createContainerValue
methods that were not used much (and complicated things related to
instantiation of prism objects).


  Commit: 6fdc586597c633def744e256286cef9a3630eb0b
      https://github.com/Evolveum/prism/commit/6fdc586597c633def744e256286cef9a3630eb0b
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-03-04 (Tue, 04 Mar 2025)

  Changed paths:
    M infra/axiom/src/main/antlr4/com/evolveum/axiom/lang/antlr/query/AxiomQueryLexer.g4
    M tools/test-ng/src/main/java/com/evolveum/midpoint/tools/testng/TestMonitor.java
    M tools/test-ng/src/main/java/com/evolveum/midpoint/tools/testng/TestReportSection.java

  Log Message:
  -----------
  Merge branch 'master' into feature/less-cloning


  Commit: e0f81daf49920a91b45f62776313c60557971d09
      https://github.com/Evolveum/prism/commit/e0f81daf49920a91b45f62776313c60557971d09
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/ItemDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismContainerDelegator.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismContainerValueDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismObjectDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismObjectValueDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismPropertyDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismPropertyValueDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismReferenceDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismReferenceValueDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismValueDelegator.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/FlyweightClonedItem.java
    A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/FlyweightClonedValue.java
    M pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into feature/less-cloning


  Commit: 0e3aaa7cd19b599eb487d338d3fc0a3b00d2e985
      https://github.com/Evolveum/prism/commit/0e3aaa7cd19b599eb487d338d3fc0a3b00d2e985
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2025-03-06 (Thu, 06 Mar 2025)

  Changed paths:
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/CloneStrategy.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/delta/ItemDelta.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/PrismUtil.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContainerValueImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismReferenceValueImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/delta/ObjectDeltaImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/delta/builder/DeltaBuilder.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java

  Log Message:
  -----------
  Support performance improvements

1. CloneStrategy is changed from enum to a record, containing flags for
ignoring value metadata, embedded objects, and container IDs. Later
further ones may come.

2. Setting up estimated old values for item deltas is changed to avoid
the need of cloning on the caller side. We will switch to flyweights
later.

3. Object ADD deltas with immutable object to be added are permitted.


Compare: https://github.com/Evolveum/prism/compare/faef63a36f67...0e3aaa7cd19b

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


More information about the midPoint-svn mailing list