[midPoint-git] [Evolveum/prism] 021319: Support PolyString attributes in the repository

mederly noreply at github.com
Mon Dec 11 19:16:26 CET 2023


  Branch: refs/heads/feature/attributes-as-polystrings
  Home:   https://github.com/Evolveum/prism
  Commit: 0213195e58a5c37826fd630d613c7dba57df9e5d
      https://github.com/Evolveum/prism/commit/0213195e58a5c37826fd630d613c7dba57df9e5d
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2023-12-11 (Mon, 11 Dec 2023)

  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/ItemDefinition.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismConstants.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismContext.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/PrismPropertyDefinition.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/ItemDefinitionDelegator.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/delta/ObjectDeltaUtil.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/delta/PropertyDelta.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/match/MatchingRule.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/match/MatchingRuleRegistry.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/normalization/StringNormalizer.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/polystring/NormalizerRegistry.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/polystring/PolyString.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/query/ValueFilter.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/schema/SchemaRegistry.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/util/PrismUtil.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/xml/XsdTypeMapper.java
    M infra/prism-api/src/main/java/com/evolveum/prism/xml/ns/_public/types_3/RawType.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ComplexTypeDefinitionImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/DefinitionImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/DummyPrismObjectDefinition.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/PrismContainerDefinitionImpl.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/PrismContextImpl.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/PrismPropertyDefinitionImpl.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/PrismReferenceDefinitionImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/SimpleTypeDefinitionImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/delta/ItemDeltaImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/delta/ObjectDeltaFactoryImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/delta/PropertyDeltaImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/PrismUnmarshaller.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/match/DefaultMatchingRule.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/match/PolyStringNormMatchingRule.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/match/PolyStringOrigMatchingRule.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/match/PolyStringStrictMatchingRule.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/match/StringIgnoreCaseMatchingRule.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/polystring/BaseStringNormalizer.java
    R infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/polystring/DefaultNormalizer.java
    A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/polystring/NoOpNormalizer.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/polystring/NormalizerRegistryFactory.java
    A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/polystring/PolyStringNormNormalizer.java
    A infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/polystring/PolyStringOrigNormalizer.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/query/PropertyValueFilterImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/query/ValueFilterImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/schema/SchemaRegistryImpl.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/xnode/PrimitiveXNodeImpl.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/AbstractPrismTest.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPerformance.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPrismContext.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/TestPrismSchemaConstruction.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/match/TestMatchingRule.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/path/ItemPathTest.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/query/TestQueryConverters.java
    M infra/prism-impl/src/test/java/com/evolveum/midpoint/prism/query/lang/TestQueryConverters.java
    M infra/util/src/main/java/com/evolveum/midpoint/util/MiscUtil.java
    M infra/util/src/main/java/com/evolveum/midpoint/util/PrettyPrinter.java

  Log Message:
  -----------
  Support PolyString attributes in the repository

This commit brings the necessary support for the PolyString repo shadow
attributes:

- It removes the assumption that there is a single PolyString
normalization algorithm in the system. So, for example,
PolyStrings are not recomputed if there is already a norm value there.

- There are minor changes around matching rules, normalizers,
diagnostics. In particular, the real PolyStringOrig/Norm normalizers are
finally provided that comply with the definition of Normalizer<T>.

- There are minor changes in parsing algorithm needed to support
xsi:type for shadow attributes (see
SchemaRegistryImpl#locateItemDefinition).

- Application and re-application of definitions to prism
items and values was clarified a bit. (But a set of PolyString/String
hacks were introduced to PrismPropertyValueImpl, to be resolved later.)

Related to MID-2119 (shadow caching).




More information about the midPoint-svn mailing list