public void updated(String pid, Dictionary<String, ?> configuration)
      throws ConfigurationException {
    synchronized (m_updateLock) {
      if (m_log.doDebug()) {
        m_log.debug("Updated pid=" + pid);
      }

      if (!PID.equals(pid) && (null != m_services.get(PID))) {
        if (m_log.doDebug()) {
          m_log.debug("Overriding default instance with new pid " + pid);
        }

        deleted(PID);
      }

      SslServiceWrapper service = m_services.get(pid);
      if (service == null) {
        if (m_log.doDebug()) {
          m_log.debug("create pid=" + pid);
        }

        service = new SslServiceWrapper(m_bc, m_log);
        m_services.put(pid, service);
      }

      service.update(configuration);
    }
  }
  /*
   * (non-Javadoc)
   *
   * @see org.osgi.service.cm.ManagedServiceFactory#deleted(java.lang.String)
   */
  public void deleted(String pid) {
    final SslServiceWrapper service = m_services.get(pid);
    if (service != null) {
      if (m_log.doDebug()) {
        m_log.debug("delete pid=" + pid);
      }

      try {
        service.update(null);

      } catch (final ConfigurationException e) {
      }
    }
  }