Interface ApplicationProperties

All Known Implementing Classes:
ApplicationPropertiesImpl, MockApplicationProperties

@PublicApi public interface ApplicationProperties
This can be used to lookup JIRA application properties. This uses a two stage strategy for finding property values. First the database is checked to see if a value exists. If it doesn't exist, it falls back to the file for a value.

Once a key is placed in the database (via an upgrade task or UI interaction) then it will always be loaded from the database.

NOTE : Be very careful with boolean property values. Because of the way OSPropertySets work, its impossible to distinguish between properties that have a false value and properties that have NO value. Therefore it is usually better to have a "String" property set to the value "true" or "false" and then use Boolean.valueOf() in it. This way it's possible to distinguish the absence of a property value from it being set to false.

  • Method Details

    • exists

      boolean exists(@Nonnull String name)
    • getText

      String getText(String name)
    • getDefaultBackedText

      String getDefaultBackedText(String name)
      Get the property from the application properties, but if not found, try to get from the default properties file.
    • setText

      void setText(String key, String value)
      Set the text application property. Once the property is set, this method publishes an instance of StringApplicationPropertySetEvent.
      Parameters:
      key - the key of the application property.
      value - the value of the application property.
    • getString

      @Nullable String getString(String key)
      Returns the value of the given key.
      Parameters:
      key - the key to retrieve
      Returns:
      the value of the key; may be null or an empty String
    • getDefaultKeys

      Collection<String> getDefaultKeys()
      Get all the keys from the default properties
    • getDefaultBackedString

      String getDefaultBackedString(String name)
      Get the property from the application properties, but if not found, try to get from the default properties file.
    • getDefaultString

      String getDefaultString(String name)
      Get the default property (if the property is not set)
      Parameters:
      name - the name of the property.
    • setString

      void setString(String key, String value)
      Sets the string application property. Once the property is set, this method publishes an instance of StringApplicationPropertySetEvent.
      Parameters:
      key - the key of the application property.
      value - the value of the application property.
    • getOption

      boolean getOption(String key)
      Get the option from the application properties, but if not found, try to get from the default properties file.
    • getKeys

      Collection<String> getKeys()
    • setOption

      void setOption(String key, boolean value)
      Sets the boolean application property. Once the property is set, this method publishes an instance of BooleanApplicationPropertySetEvent.
      Parameters:
      key - the key of the application property.
      value - the value of the application property.
    • getEncoding

      String getEncoding()
      Returns the encoding to be used by JIRA from the application properties. If application properties are not available, it returns UTF-8 by default.
    • getMailEncoding

      String getMailEncoding()
      Convenience method to get the email encoding
    • getContentType

      String getContentType()
    • refresh

      void refresh()
      Refresh application properties object by refreshing the PropertiesManager
    • getDefaultLocale

      Locale getDefaultLocale()
      Returns the default Locale set up on the JIRA instance.
      Returns:
      the default locale.
    • getStringsWithPrefix

      Collection<String> getStringsWithPrefix(String prefix)
    • asMap

      @Internal Map<String,Object> asMap()
      This will return all application and typed values. For example if the property is a boolean then a Boolean object will be returned. If an application property has a null value, then the key will still be in the Map.keySet()

      WARNING: This method is somewhat expensive. Do not use it unless you really are doing something with all of the application properties, such as for the system information page. If you are just retrieving a single property, then use one of the get methods instead. For most properties, getDefaultBackedString(String) or getOption(String) will be the best choice.

      Returns:
      a map of key to actual value object
    • getJiraBaseUrl

      default String getJiraBaseUrl()