[midPoint-git] [Evolveum/midpoint] e91e47: Do various prism performance optimizations

mederly noreply at github.com
Wed Jan 8 12:07:33 UTC 2020


  Branch: refs/heads/feature/resource-manager-thread-safety
  Home:   https://github.com/Evolveum/midpoint
  Commit: e91e476a52f2fd005bdb6539f0cd6edbd5ce5810
      https://github.com/Evolveum/midpoint/commit/e91e476a52f2fd005bdb6539f0cd6edbd5ce5810
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2020-01-08 (Wed, 08 Jan 2020)

  Changed paths:
    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/xml/XmlTypeConverter.java
    M infra/prism-api/src/main/java/com/evolveum/midpoint/prism/xml/XsdTypeMapper.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/ComplexTypeDefinitionImpl.java
    A 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/PrismContextImpl.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/lex/dom/AttributeValueParser.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lex/dom/DomLessValueParser.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lex/dom/DomLexicalProcessor.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lex/dom/DomLexicalWriter.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/lex/dom/ElementValueParser.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/BeanMarshaller.java
    M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/marshaller/BeanUnmarshaller.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/schema/SchemaRegistryImpl.java
    M infra/schema/src/test/java/com/evolveum/midpoint/schema/TestSerialization.java
    M infra/schema/src/test/java/com/evolveum/midpoint/schema/performance/AbstractSchemaPerformanceTest.java
    M infra/util/src/main/java/com/evolveum/midpoint/util/DOMUtil.java
    A infra/util/src/main/java/com/evolveum/midpoint/util/TransientCache.java

  Log Message:
  -----------
  Do various prism performance optimizations

These are related mainly to schema lookups, using hash maps and caches:
- SchemaRegistry.findObjectDefinitionByCompileTimeClass (cache),
- SchemaRegistry.findObjectDefinitionByType (cache),
- SchemaRegistry.determineClassForType (cache),
- SchemaRegistry.determineCompileTimeClass (cache),
- SchemaRegistry.isList for type or element QName (cache),
- BeanMarshaller.canProcess for type QName (cache),
- ComplexTypeDefinition.findLocalItemDefinition for item QName (cache),
- XsdTypeMapper.getJavaToXsdMapping, determineQNameWithNs,
  getXsdToJavaMapping (hash maps)

Functional change:
- When parsing, we no longer check for allowed values. Currently this
  seems to be used only for enums; and for them it's redundant.

There are some other minor optimizations as well.




More information about the midPoint-svn mailing list