code: @Override
      public ExtendedConfiguration getConfiguration(String pid) throws IOException {
          ExtendedConfigurationImpl config = caFactory.getConfigurationStore().getConfiguration(pid, bundle.getLocation());
          if (config.getBundleLocation(false) != null && !config.getBundleLocation(false).equals(bundle.getLocation()))
              this.caFactory.checkConfigurationPermission();
  
          if (config.isUnbound()) {
              Tr.warning(tc, "warning.binding.config", pid, bundle.getSymbolicName());
          }
          config.bind(bundle);
          return config;
      }
docs: /*
  @see
  org.osgi.service.cm.ConfigurationAdmin#getConfiguration(java.lang.String)
  
  Get an existing or new Configuration object from the persistent store.
  
  If the Configuration object for this PID does not exist, create a new
  Configuration object for that PID, where properties are null.
  Bind its location to the calling bundle's location.
  
  If the Configuration object for this PID does exist, and if the location of
  the existing Configuration object is null,
  set it to the calling bundle's location.
  
  SecurityException is thrown if the Configuration object is bound to a
  location different from that of the calling bundle
  and it does not have proper ConfigurationPermission.
  
  @param pid