[midPoint-git] [Evolveum/prism] d17d84: Performance: Added initial implementation of lazy ...
Tony Tkáčik
noreply at github.com
Mon Jan 13 11:35:55 CET 2025
Branch: refs/heads/support-4.9
Home: https://github.com/Evolveum/prism
Commit: d17d844c0260757b2ff94d8adeaae72ff8078a60
https://github.com/Evolveum/prism/commit/d17d844c0260757b2ff94d8adeaae72ff8078a60
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/ParsingContext.java
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/deleg/PrismContainerValueDelegator.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ParsingContextImpl.java
A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java
A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyXNodeBasedValue.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/PrismUnmarshaller.java
Log Message:
-----------
Performance: Added initial implementation of lazy deserialized containers
- ParsingContext allows customization for which types lazy deserialized containers
should be used
- Lazy deserialization is implemented using delegator pattern
- when method requiring real container is called, data are parsed
- some methods (based on quick testing and debugs) now does not
require full data parsed
(cherry picked from commit 0ecb4c35de70ca1df5fee16d08b408fd49148325)
Commit: f59d60b2f8ec506764bc1a17bbe544b05507d01c
https://github.com/Evolveum/prism/commit/f59d60b2f8ec506764bc1a17bbe544b05507d01c
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismContainerImpl.java
Log Message:
-----------
Proxy: Fixed class cast during delta apply
(cherry picked from commit 1a05b653946cba50565524666eacfe1eb9b1a676)
Commit: 2ea5c3fe9e761998dd382882aa10056a297ae83d
https://github.com/Evolveum/prism/commit/2ea5c3fe9e761998dd382882aa10056a297ae83d
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/LazyXNodeBasedPrismValue.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java
R infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyXNodeBasedValue.java
Log Message:
-----------
Lazy Parsing: improved behaviour when container is parsed
- Container is not parsed if:
- isEmpty / hasItems checks are performed
- is frozen (Xnodes are immutable and it is safe to parse later)
- is cloned (Xnodes are "immutable" and it is safe to parse later)
- getDefinition() is called
- Deprecated code is set of testing methods, which triggers
breakpoint when materialization is triggered with exclusion
for valid use-cases, these are disabled by default and are
intented only for manual testing
(cherry picked from commit eb7aabbf5437e51275a08ee6892b60fb96d37883)
Commit: 9507a8f86168f1da073be117dfc9fbe5a9313629
https://github.com/Evolveum/prism/commit/9507a8f86168f1da073be117dfc9fbe5a9313629
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/PrismMarshaller.java
Log Message:
-----------
Lazy Parsing: Prism marshaller uses Xnodes if available.
(cherry picked from commit e87e390edd508f7a82620da0c02357ae98cecc12)
Commit: ab6d21492502617dde771112c6c4580ea9292878
https://github.com/Evolveum/prism/commit/ab6d21492502617dde771112c6c4580ea9292878
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 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/PrismContainerValue.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
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismVisitable.java
A infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismVisitor.java
Log Message:
-----------
Introduced PrismVisitable and PrismVisitor
Original interfaces (Visitor and Visitable) used for processing data
does not allow to exclude visiting children - their use will always
trigger full deserialization. The PrismVisitable and PrismVisitor
are better suited, since they provide option for visitor to decide
to not visit children. These visitors can then prevent additional
computation.
(cherry picked from commit caff31f47dd582883dce2dd492c1227eb8e4d65d)
Commit: 841cd97ff7caab7f79f80e7240d8db452836c659
https://github.com/Evolveum/prism/commit/841cd97ff7caab7f79f80e7240d8db452836c659
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/lazy/LazyXNodeBasedPrismValue.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java
Log Message:
-----------
Performance: LazyXNode equals check if other value is unparsed clone of same XNode
(cherry picked from commit 1e5a43a5558d4a621c8fad9b89267d59cae3408f)
Commit: 7d403a62a42f302de07c8e0797fea345ade00bcf
https://github.com/Evolveum/prism/commit/7d403a62a42f302de07c8e0797fea345ade00bcf
Author: Tony Tkáčik <tonydamage at gmail.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lazy/LazyPrismContainerValue.java
Log Message:
-----------
Make LazyPrismContainerValue serializable
(cherry picked from commit 8c278ed56378b0005843f0f5ec186998ed63ce90)
Compare: https://github.com/Evolveum/prism/compare/13dbf16b255b...7d403a62a42f
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