java.lang.Object
org.apache.sling.feature.extension.apiregions.api.config.AttributeableEntity
org.apache.sling.feature.extension.apiregions.api.config.ConfigurationApi

public class ConfigurationApi extends AttributeableEntity
A configuration api describes the set of supported OSGi configurations and framework properties. This object can be stored as an extension inside a feature model. This class is not thread safe.
  • Field Details

  • Constructor Details

    • ConfigurationApi

      public ConfigurationApi()
  • Method Details

    • getConfigurationApi

      public static ConfigurationApi getConfigurationApi(org.apache.sling.feature.Feature feature)
      Get the configuration api from the feature - if it exists. If the configuration api is updated, the containing feature is left untouched. setConfigurationApi(Feature, ConfigurationApi) can be used to update the feature.
      Parameters:
      feature - The feature
      Returns:
      The configuration api or null.
      Throws:
      IllegalArgumentException - If the extension is wrongly formatted
    • getConfigurationApi

      public static ConfigurationApi getConfigurationApi(org.apache.sling.feature.Extension ext)
      Get the configuration api from the extension. If the configuration api is updated, the containing extension is left untouched.
      Parameters:
      ext - The extension
      Returns:
      The configuration api or null if the extension is null.
      Throws:
      IllegalArgumentException - If the extension is wrongly formatted
    • setConfigurationApi

      public static void setConfigurationApi(org.apache.sling.feature.Feature feature, ConfigurationApi api)
      Set the configuration api as an extension to the feature
      Parameters:
      feature - The feature
      api - The configuration api
      Throws:
      IllegalStateException - If the feature has already an extension of a wrong type
      IllegalArgumentException - If the api configuration can't be serialized to JSON
    • setDefaults

      protected void setDefaults()
      Description copied from class: AttributeableEntity
      Apply the non-null default values.
      Overrides:
      setDefaults in class AttributeableEntity
    • clear

      public void clear()
      Clear the object and reset to defaults
      Overrides:
      clear in class AttributeableEntity
    • fromJSONObject

      public void fromJSONObject(jakarta.json.JsonObject jsonObj) throws IOException
      Extract the metadata from the JSON object. This method first calls clear().
      Overrides:
      fromJSONObject in class AttributeableEntity
      Parameters:
      jsonObj - The JSON Object
      Throws:
      IOException - If JSON parsing fails
    • getConfigurationDescriptions

      public Map<String,ConfigurationDescription> getConfigurationDescriptions()
      Get the configuration descriptions
      Returns:
      Mutable map of configuration descriptions by pid
    • getFactoryConfigurationDescriptions

      public Map<String,FactoryConfigurationDescription> getFactoryConfigurationDescriptions()
      Get the factory configuration descriptions
      Returns:
      Mutable map of factory descriptions by factory pid
    • getFrameworkPropertyDescriptions

      public Map<String,FrameworkPropertyDescription> getFrameworkPropertyDescriptions()
      Get the framework properties
      Returns:
      Mutable map of framework properties
    • isInternalConfiguration

      public boolean isInternalConfiguration(String pid)
      Check if the configuration is an internal configuration
      Parameters:
      pid - The pid
      Returns:
      true if it is an internal configuration
      Since:
      1.7.0
    • isInternalFactoryConfiguration

      public boolean isInternalFactoryConfiguration(String factoryPid, String name)
      Check if the factory configuration is an internal configuration
      Parameters:
      factoryPid - The factory pid
      name - Optional name of the configuration
      Returns:
      true if it is an internal factory configuration
      Since:
      1.7.0
    • getInternalFrameworkProperties

      public Set<String> getInternalFrameworkProperties()
      Get the internal framework property names
      Returns:
      Mutable set of internal framework property names
    • getRegion

      public Region getRegion()
      Get the api configuration region
      Returns:
      The region or null
    • setRegion

      public void setRegion(Region value)
      Set the api configuration region
      Parameters:
      value - The region to set
    • detectRegion

      public Region detectRegion()
      Detect the region, either return the stored region or the default (GLOBAL)
      Returns:
      The region
      Since:
      1.1
    • getFeatureToRegionCache

      public Map<org.apache.sling.feature.ArtifactId,Region> getFeatureToRegionCache()
      Get the feature to region cache to keep track of regions for origin features
      Returns:
      The cache
      Since:
      1.1.
    • getMode

      public Mode getMode()
      Get the validation mode. The default is Mode.STRICT
      Returns:
      The mode
      Since:
      1.2
    • setMode

      public void setMode(Mode value)
      Set the validation mode
      Parameters:
      value - The validation mode
      Since:
      1.2
    • createJson

      protected jakarta.json.JsonObjectBuilder createJson() throws IOException
      Convert this object into JSON
      Overrides:
      createJson in class AttributeableEntity
      Returns:
      The json object builder
      Throws:
      IOException - If generating the JSON fails
    • getConfigurationDescriptionAdditions

      public Map<String,ConfigurationDescriptionAddition> getConfigurationDescriptionAdditions()
      Get the map of configuration description additions
      Returns:
      The map, might be empty
      Since:
      1.8
    • getFactoryConfigurationDescriptionAdditions

      public Map<String,FactoryConfigurationDescriptionAddition> getFactoryConfigurationDescriptionAdditions()
      Get the map of factory configuration description additions
      Returns:
      The map, might be empty
      Since:
      1.8