[midPoint-git] [Evolveum/prism] 19ee8a: Reduce cloning for estimated old values in deltas
mederly
noreply at github.com
Fri Mar 21 22:11:13 CET 2025
Branch: refs/heads/master
Home: https://github.com/Evolveum/prism
Commit: 19ee8a673f32ac8ba4cef6f0c333098b3608bea2
https://github.com/Evolveum/prism/commit/19ee8a673f32ac8ba4cef6f0c333098b3608bea2
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-07 (Fri, 07 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/CloneUtil.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/delta/ObjectDeltaImpl.java
Log Message:
-----------
Reduce cloning for estimated old values in deltas
Now we store immutable values there "as is" (even with a parent). To
utilize this feature, even more aggressive freezing in the projector was
introduced.
(May break some tests; we'll see.)
Commit: 08bbfbb3e0511fb448cd4ed91a16f38ecd70b541
https://github.com/Evolveum/prism/commit/08bbfbb3e0511fb448cd4ed91a16f38ecd70b541
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-12 (Wed, 12 Mar 2025)
Changed paths:
M infra/axiom/src/main/antlr4/com/evolveum/axiom/lang/antlr/query/AxiomQueryLexer.g4
Log Message:
-----------
Merge remote-tracking branch 'origin/master' into feature/less-cloning
Commit: 67fcdbe3ee21eff4a1d516f3ff33eabb9f2aabb3
https://github.com/Evolveum/prism/commit/67fcdbe3ee21eff4a1d516f3ff33eabb9f2aabb3
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-13 (Thu, 13 Mar 2025)
Changed paths:
A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/EmbeddedPrismObjectImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ItemImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/binding/AbstractMutableObjectable.java
Log Message:
-----------
Improve support for embedded prism objects
These are used e.g. in identities/identity/data. Their support is still
fragile; however, this commit improves it a bit by supporting
asContainerable() calls in more cases.
It was needed when optimizing # of cloning operations in Projector by
freezing objectNew. It fixes TestIdentities.
Commit: d756ce2f8b3e8e6c7906f8ef50fe2567e8328f23
https://github.com/Evolveum/prism/commit/d756ce2f8b3e8e6c7906f8ef50fe2567e8328f23
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-14 (Fri, 14 Mar 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/CloneStrategy.java
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/ComplexCopyable.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/Item.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismContainer.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismObject.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismProperty.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismReference.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismValueCollectionsUtil.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/ItemDelegator.java
M 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/PrismObjectDelegator.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismPropertyDelegator.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismReferenceDelegator.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/lazy/FlyweightClonedItem.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/FlyweightClonedValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/CloneUtil.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/ItemDeltaItem.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ItemImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContainerImpl.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/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/PrismPropertyImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismPropertyValueImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismReferenceImpl.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/item/DummyContainerImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/item/DummyPropertyImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/item/DummyReferenceImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/metadata/ValueMetadataAdapter.java
Log Message:
-----------
Optimize PCV.asSingleValuedContainer
This method no longer clones the value that is to be presented
as a container.
Related changes:
- clone() is gradually being replaced by copy/mutableCopy/immutableCopy
tripled (currently for Item and its subtypes). In particular, flyweights
now correctly implement clone/mutableCopy methods, producing fully
mutable objects at output.
- CloneStrategy was extended to support the above.
Commit: 0eb89b5ef1fc11c85bd1c807527fa210081ad3c3
https://github.com/Evolveum/prism/commit/0eb89b5ef1fc11c85bd1c807527fa210081ad3c3
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-14 (Fri, 14 Mar 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismContainerValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismObjectValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismPropertyValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismReferenceValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/FlyweightClonedValue.java
Log Message:
-----------
Fix creating of FlyweightClonedValue
Originally, clone() method was used for construction from pre-existing
flyweight, but it now does a real, deep clone. Instead, copy() is
introduced in this commit, and it creates a lightweight copy.
Commit: 3ce6873cbec5972f1f6134b17169f7f7e3b79b75
https://github.com/Evolveum/prism/commit/3ce6873cbec5972f1f6134b17169f7f7e3b79b75
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-16 (Sun, 16 Mar 2025)
Changed paths:
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/GenericLazyPrismContainerValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/ItemDeltaItem.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/lazy/LazyPrismContainerValue.java
Log Message:
-----------
Add support for lazily evaluated magic assignments
See GenericLazyPrismContainerValue.
Commit: ff9d82014dd2d19736cc0ceb936ad6f643c83332
https://github.com/Evolveum/prism/commit/ff9d82014dd2d19736cc0ceb936ad6f643c83332
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-18 (Tue, 18 Mar 2025)
Changed paths:
M infra/util/src/main/java/com/evolveum/midpoint/util/MiscUtil.java
M infra/util/src/main/java/com/evolveum/midpoint/util/statistics/SingleOperationPerformanceInformation.java
Log Message:
-----------
Improve op. result performance reporting
For optional data, we now use long instead of Long values.
PoC quality. To be reviewed.
Commit: cfef0d82a9ffcdceb3b27c5814d7a4bdbdabd356
https://github.com/Evolveum/prism/commit/cfef0d82a9ffcdceb3b27c5814d7a4bdbdabd356
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-19 (Wed, 19 Mar 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/Freezable.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismObject.java
Log Message:
-----------
Add some auxiliary methods
Commit: 959352808299260bccb9af2c216d460a7104237c
https://github.com/Evolveum/prism/commit/959352808299260bccb9af2c216d460a7104237c
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-21 (Fri, 21 Mar 2025)
Changed paths:
A infra/util/src/main/java/com/evolveum/midpoint/util/CanBeNone.java
A infra/util/src/main/java/com/evolveum/midpoint/util/NoValueUtil.java
M infra/util/src/main/java/com/evolveum/midpoint/util/aspect/MethodUsageStatistics.java
M infra/util/src/main/java/com/evolveum/midpoint/util/aspect/MidpointInterceptor.java
M infra/util/src/main/java/com/evolveum/midpoint/util/aspect/ProfilingDataLog.java
M infra/util/src/main/java/com/evolveum/midpoint/util/statistics/OperationInvocationRecord.java
M infra/util/src/main/java/com/evolveum/midpoint/util/statistics/SingleOperationPerformanceInformation.java
Log Message:
-----------
Review long vs. Long in performance information
This is a refinement of ff9d82014dd2d19736cc0ceb936ad6f643c83332
that introduces long instead of Long for low-level performance
information (because of higher efficiency).
It introduces NoValueUtil#NONE_LONG constant as well as @CanBeNone
annotation for respective long fields, variables, parameters,
and return values.
Commit: 568362093de89729981da8007d9098209850bf5f
https://github.com/Evolveum/prism/commit/568362093de89729981da8007d9098209850bf5f
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-21 (Fri, 21 Mar 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/Item.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismValue.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/PrismObjectValueImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismReferenceValueImpl.java
Log Message:
-----------
Do cosmetic changes
Just a few notes in docs, a couple of annotations, and minor code
simplification.
Commit: 4d552c8db842147b47065918543c6de3426533d9
https://github.com/Evolveum/prism/commit/4d552c8db842147b47065918543c6de3426533d9
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2025-03-21 (Fri, 21 Mar 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/CloneStrategy.java
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/ComplexCopyable.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/Freezable.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/Item.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismContainer.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismContainerValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismObject.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismObjectValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismProperty.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismPropertyValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismReference.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismReferenceValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismValueCollectionsUtil.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/ItemDelegator.java
M 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/PrismObjectDelegator.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismPropertyDelegator.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismReferenceDelegator.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/lazy/FlyweightClonedItem.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/FlyweightClonedValue.java
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/GenericLazyPrismContainerValue.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/CloneUtil.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/ItemDeltaItem.java
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/PrismUtil.java
A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/EmbeddedPrismObjectImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ItemImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContainerImpl.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/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/PrismPropertyImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismPropertyValueImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismReferenceImpl.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/binding/AbstractMutableObjectable.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/item/DummyContainerImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/item/DummyPropertyImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/item/DummyReferenceImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/metadata/ValueMetadataAdapter.java
A infra/util/src/main/java/com/evolveum/midpoint/util/CanBeNone.java
M infra/util/src/main/java/com/evolveum/midpoint/util/MiscUtil.java
A infra/util/src/main/java/com/evolveum/midpoint/util/NoValueUtil.java
M infra/util/src/main/java/com/evolveum/midpoint/util/aspect/MethodUsageStatistics.java
M infra/util/src/main/java/com/evolveum/midpoint/util/aspect/MidpointInterceptor.java
M infra/util/src/main/java/com/evolveum/midpoint/util/aspect/ProfilingDataLog.java
M infra/util/src/main/java/com/evolveum/midpoint/util/statistics/OperationInvocationRecord.java
M infra/util/src/main/java/com/evolveum/midpoint/util/statistics/SingleOperationPerformanceInformation.java
Log Message:
-----------
Merge branch 'feature/less-cloning'
# Conflicts:
# infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismReferenceValueImpl.java
Compare: https://github.com/Evolveum/prism/compare/e760360bf99c...4d552c8db842
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