code: public void updated(String pid, Dictionary dictionary) throws ConfigurationException
      {
          LOGGER.entering(CLASS_NAME, "updated", new Object[]{pid, dictionary});
  
          /**
           * This could be an update to an existing SLP service agent.  Delete
           * it first then we'll recreate it.
           */
          deleted(pid);
  
          ServiceAgent serviceAgent = SLP.newServiceAgent(dictionary == null ? null : DictionarySettings.from(dictionary));
  
          if (LOGGER.isLoggable(Level.FINER)) LOGGER.finer("Service Agent " + pid + " starting...");
  
          serviceAgent.start();
  
          if (LOGGER.isLoggable(Level.FINE)) LOGGER.fine("Service Agent " + pid + " started successfully");
  
          ServiceRegistration serviceRegistration = bundleContext.registerService(IServiceAgent.class.getName(), serviceAgent, dictionary);
          serviceAgents.put(pid, serviceRegistration);
  
          LOGGER.exiting(CLASS_NAME, "updated");
      }
docs: Update the SLP service agent's configuration, unregistering from the
  OSGi service registry and stopping it if it had already started.  The
  new SLP service agent will be started with the new configuration and
  registered in the OSGi service registry using the configuration
  parameters as service properties.
  
  @param pid        The PID for this configuration.
  @param dictionary The dictionary used to configure the SLP service agent.
  @throws ConfigurationException Thrown if an error occurs during the SLP service agent's configuration.