Annotation Type ConfigType


@Repeatable(ConfigTypes.class) @Retention(RUNTIME) public @interface ConfigType
Defines an instance of an OSGi R7 Component Property Type as a combination of a Class and an array of strings defining property values in the form expected by Component.property(). This provides both runtime retention for OSGi config annotations that do not have RetentionPolicy.RUNTIME, allowing for simple construction through reflection for explicit passing to SCR component constructors and lifecycle methods, as well as repeatability to support defining sequenced, heterogeneous lists of desired types on any single AnnotatedElement.
See Also:
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Required type to construct.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    When pid() is set to Component.NAME, set this attribute to a class whose name should be used instead.
    boolean
    When set to false, throw a ConfigTypeStrictnessViolation on construction if there is not an exact one-to-one mapping between property names specified in property() and the addressable attributes of type().
    Specify a configuration pid to load, which will override matching values specified by property().
    Treat like Component.property().
  • Element Details

    • type

      Class<?> type
      Required type to construct. This can be an annotation or an interface.
      Returns:
      the type to construct
    • pid

      String pid
      Specify a configuration pid to load, which will override matching values specified by property(). The default value is Component.NAME, which is a special string ("$") that can be used to specify the name of the component() class as a configuration PID.
      Returns:
      a configuration pid, or an empty string
      Default:
      "$"
    • component

      Class<?> component
      When pid() is set to Component.NAME, set this attribute to a class whose name should be used instead. The default value is Void, which has a special significance for this annotation indicating that no configuration should be loaded from ConfigurationAdmin.
      Returns:
      the configurable component class
      Default:
      java.lang.Void.class
    • property

      String[] property
      Treat like Component.property().
      Returns:
      osgi component properties
      Default:
      {}
    • lenient

      boolean lenient
      When set to false, throw a ConfigTypeStrictnessViolation on construction if there is not an exact one-to-one mapping between property names specified in property() and the addressable attributes of type(). Properties loaded from configuration are not considered by the strictness check.
      Returns:
      false to enforce strictness, true to skip the check
      Default:
      false