Class ConfigurationAdminImpl

java.lang.Object
org.apache.felix.cm.impl.ConfigurationAdminImpl
All Implemented Interfaces:
org.osgi.service.cm.ConfigurationAdmin

public class ConfigurationAdminImpl extends Object implements org.osgi.service.cm.ConfigurationAdmin
The ConfigurationAdminImpl is the per-bundle frontend to the configuration manager. Instances of this class are created on-demand for each bundle trying to get hold of the ConfigurationAdmin service.
  • Field Details

    • configurationManager

      private volatile ConfigurationManager configurationManager
    • bundle

      private volatile org.osgi.framework.Bundle bundle
  • Constructor Details

    • ConfigurationAdminImpl

      ConfigurationAdminImpl(ConfigurationManager configurationManager, org.osgi.framework.Bundle bundle)
  • Method Details

    • dispose

      void dispose()
    • getBundle

      org.osgi.framework.Bundle getBundle()
    • createFactoryConfiguration

      public org.osgi.service.cm.Configuration createFactoryConfiguration(String factoryPid) throws IOException
      Specified by:
      createFactoryConfiguration in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
    • createFactoryConfiguration

      public org.osgi.service.cm.Configuration createFactoryConfiguration(String factoryPid, String location) throws IOException
      Specified by:
      createFactoryConfiguration in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
    • getConfiguration

      public org.osgi.service.cm.Configuration getConfiguration(String pid) throws IOException
      Specified by:
      getConfiguration in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
    • getConfiguration

      public org.osgi.service.cm.Configuration getConfiguration(String pid, String location) throws IOException
      Specified by:
      getConfiguration in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
    • listConfigurations

      public org.osgi.service.cm.Configuration[] listConfigurations(String filter) throws IOException, org.osgi.framework.InvalidSyntaxException
      Specified by:
      listConfigurations in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
      org.osgi.framework.InvalidSyntaxException
    • wrap

      private org.osgi.service.cm.Configuration wrap(ConfigurationImpl configuration)
    • hasPermission

      boolean hasPermission(ConfigurationManager configurationManager, String name)
      Returns true if the current access control context (call stack) has the CONFIGURE permission.
    • checkPermission

      void checkPermission(ConfigurationManager configurationManager, String name, boolean checkOwn)
      Checks whether the current access control context (call stack) has the given permission for the given bundle location and throws a SecurityException if this is not the case.
      Parameters:
      name - The bundle location to check for permission. If this is null permission is always granted.
      checkOwn - If false permission is always granted if name is the same the using bundle's location.
      Throws:
      SecurityException - if the access control context does not have the appropriate permission
    • checkPermission

      void checkPermission(ConfigurationManager configurationManager, String name, String action, boolean checkOwn)
      Checks whether the current access control context (call stack) has the given permission for the given bundle location and throws a SecurityException if this is not the case.
      Parameters:
      name - The bundle location to check for permission. If this is null permission is always granted.
      action - The action to check.
      checkOwn - If false permission is always granted if name is the same as the using bundle's location.
      Throws:
      SecurityException - if the access control context does not have the appropriate permission
    • getConfigurationManager

      private ConfigurationManager getConfigurationManager()
      Returns the ConfigurationManager backing this configuration admin instance or throws IllegalStateException if already disposed off.
      Returns:
      The ConfigurationManager instance if still active
      Throws:
      IllegalStateException - if this instance has been disposed off already.
    • getFactoryConfiguration

      public org.osgi.service.cm.Configuration getFactoryConfiguration(String factoryPid, String name, String location) throws IOException
      Specified by:
      getFactoryConfiguration in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
      See Also:
      • ConfigurationAdmin.getFactoryConfiguration(java.lang.String, java.lang.String, java.lang.String)
    • getFactoryConfiguration

      public org.osgi.service.cm.Configuration getFactoryConfiguration(String factoryPid, String name) throws IOException
      Specified by:
      getFactoryConfiguration in interface org.osgi.service.cm.ConfigurationAdmin
      Throws:
      IOException
      See Also:
      • ConfigurationAdmin.getFactoryConfiguration(java.lang.String, java.lang.String)