code: def __properties_update(self, properties):
          
          if not properties:
              # Nothing to do
              return False
  
          with self.__lock:
              # Make a copy of the properties
              properties = properties.copy()
  
              # Override properties
              properties[services.CONFIG_PROP_PID] = self.__pid
  
              if self.__location:
                  properties[
                      services.CONFIG_PROP_BUNDLE_LOCATION
                  ] = self.__location
  
              if self.__factory_pid:
                  properties[
                      services.CONFIG_PROP_FACTORY_PID
                  ] = self.__factory_pid
  
              # See if new properties are different
              if properties == self.__properties:
                  return False
  
              # Store the copy (before storing data)
              self.__properties = properties
              self.__updated = True
  
              # Store the data
              # it will cause FileInstall to update this configuration again, but
              # this will ignored because self.__properties has already been
              # saved
              self.__persistence.store(self.__pid, properties)
              return True
docs: Internal update of configuration properties. Does not notifies the
          ConfigurationAdmin of this modification.
  
          :param properties: the new set of properties for this configuration
          :return: True if the properties have been updated, else False