Class ComponentRegistry<V>

  • Type Parameters:
    V - the type of the registered value.

    public final class ComponentRegistry<V>
    extends java.lang.Object
    Component (tracer, meter, etc) registry class for all the provider classes (TracerProvider, MeterProvider, etc.).

    Components are identified by name, version, and schema. Name is required, but version and schema are optional. Therefore, we have 4 possible scenarios for component keys:

    1. Only name is provided, represented by componentByName
    2. Name and version are provided, represented by componentByNameAndVersion
    3. Name and schema are provided, represented by componentByNameAndSchema
    4. Name, version and schema are provided, represented by componentByNameVersionAndSchema

    This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.

    • Field Detail

      • componentByName

        private final java.util.Map<java.lang.String,​V> componentByName
      • componentByNameAndVersion

        private final java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​V>> componentByNameAndVersion
      • componentByNameAndSchema

        private final java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​V>> componentByNameAndSchema
      • componentByNameVersionAndSchema

        private final java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​V>>> componentByNameVersionAndSchema
      • lock

        private final java.lang.Object lock
      • allComponents

        private final java.util.Set<V> allComponents
    • Constructor Detail

    • Method Detail

      • get

        public V get​(java.lang.String name,
                     @Nullable
                     java.lang.String version,
                     @Nullable
                     java.lang.String schemaUrl,
                     Attributes attributes)
        Returns the component associated with the name, version, and schemaUrl. Attributes are not part of component identity. Behavior is undefined when different Attributes are provided where name, version, and schemaUrl are identical.
      • getComponents

        public java.util.Collection<V> getComponents()
        Returns a Collection view of the registered components.
        Returns:
        a Collection view of the registered components.