[midPoint-git] [Evolveum/prism] eb7aab: Lazy Parsing: improved behaviour when container is...

Tony Tkáčik noreply at github.com
Tue Nov 5 13:57:22 CET 2024


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/prism
  Commit: eb7aabbf5437e51275a08ee6892b60fb96d37883
      https://github.com/Evolveum/prism/commit/eb7aabbf5437e51275a08ee6892b60fb96d37883
  Author: Tony Tkáčik <tonydamage at gmail.com>
  Date:   2024-11-05 (Tue, 05 Nov 2024)

  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


  Commit: e87e390edd508f7a82620da0c02357ae98cecc12
      https://github.com/Evolveum/prism/commit/e87e390edd508f7a82620da0c02357ae98cecc12
  Author: Tony Tkáčik <tonydamage at gmail.com>
  Date:   2024-11-05 (Tue, 05 Nov 2024)

  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.


  Commit: caff31f47dd582883dce2dd492c1227eb8e4d65d
      https://github.com/Evolveum/prism/commit/caff31f47dd582883dce2dd492c1227eb8e4d65d
  Author: Tony Tkáčik <tonydamage at gmail.com>
  Date:   2024-11-05 (Tue, 05 Nov 2024)

  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.


Compare: https://github.com/Evolveum/prism/compare/83f09d02a014...caff31f47dd5

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