Annotation Type Property


@Retention(RUNTIME) @Target({METHOD,FIELD}) public @interface Property
Represents a Protocol property assigned from corresponding field in JGroups properties file.

Since all protocol properties are read as String instances from properties file properties need to be converted to an appropriate field type of a matching Protocol instance. JGroups supplies set of converters in PropertyConverters class.

Third parties can provide their own converters if such need arises by implementing PropertyConverter interface and by specifying that converter as converter on a specific Property annotation of a field or a method instance.

Property annotation can decorate either a field or a method of a Property class. If a method is decorated with Property annotation it is assumed that such a method is a setter with only one parameter type that a specified converter can convert from a String to an actual type.

  • Element Details

    • name

      String name
      Default:
      ""
    • description

      String description
      Default:
      ""
    • deprecatedMessage

      String deprecatedMessage
      Default:
      ""
    • converter

      Class<? extends PropertyConverter> converter
      Default:
      org.jgroups.conf.PropertyConverters.Default.class
    • dependsUpon

      String dependsUpon
      Default:
      ""
    • systemProperty

      String[] systemProperty
      Default:
      {}
    • defaultValueIPv4

      String defaultValueIPv4
      Global.NON_LOOPBACK_ADDRESS means pick any valid non-loopback IPv4 address
      Default:
      ""
    • defaultValueIPv6

      String defaultValueIPv6
      Global.NON_LOOPBACK_ADDRESS means pick any valid non-loopback IPv6 address
      Default:
      ""
    • exposeAsManagedAttribute

      boolean exposeAsManagedAttribute
      Expose this property also as a managed attribute
      Default:
      true
    • writable

      boolean writable
      Default:
      true
    • type

      Defines the type, used for pretty printing
      Default:
      UNDEFINED
    • unit

      TimeUnit unit
      Only used if type is TIME
      Default:
      MILLISECONDS