  public void updated(Dictionary properties) throws ConfigurationException {
    if (properties == null)
      return;
    String currentMountpoint = resourcesMountpoint;
    String mountpoint = (String) properties.get(OPT_RESOURCES_MOUNTPOINT);
    if (StringUtils.trimToNull(mountpoint) != null) {
      resourcesMountpoint = mountpoint;
      logger.debug("Configured value for the shared resource mountpoint is '{}'", mountpoint);
    }
    String externalResources = (String) properties.get(OPT_EXT_RESOURCES);
    if (StringUtils.trimToNull(externalResources) != null) {
      externalResourcesDir = new File(externalResources);
      servlet = new WebloungeResourcesServlet(externalResourcesDir, bundleContext.getBundle(), RESOURCES_BUNDLE_DIR);
      logger.debug("Configured external shared resources directory at '{}'", externalResources);
    } else {
      servlet = null;
    }
    if (currentMountpoint != null) {
      try {
        httpService.unregister(currentMountpoint);
        logger.info("Serving shared weblounge resources at {}", resourcesMountpoint);
        if (servlet != null) {
          httpService.registerServlet(resourcesMountpoint, servlet, null, httpContext);
          logger.info("Added {} to shared weblounge resources", externalResourcesDir);
        } else {
          httpService.registerResources(resourcesMountpoint, RESOURCES_BUNDLE_DIR, httpContext);
        }
      } catch (NamespaceException e) {
        logger.error("Error registering shared resources at " + resourcesMountpoint, e);
      } catch (ServletException e) {
        logger.error("Error registering shared resources servlet at " + resourcesMountpoint, e);
      }
    }
  }

  public void updated(Dictionary properties) throws ConfigurationException {
    if (properties == null)
      return;
    String currentMountpoint = resourcesMountpoint;
    String mountpoint = (String) properties.get(OPT_RESOURCES_MOUNTPOINT);
    if (StringUtils.isNotBlank(mountpoint)) {
      resourcesMountpoint = mountpoint;
      logger.debug("Configured value for the shared resource mountpoint is '{}'", mountpoint);
    } else {
      resourcesMountpoint = DEFAULT_RESOURCES_MOUNTPOINT;
      logger.debug("Using default mountpoint {} for shared resources", resourcesMountpoint);
    }
    String externalResources = (String) properties.get(OPT_EXT_RESOURCES);
    if (StringUtils.isNotBlank(externalResources)) {
      externalResourcesDir = new File(externalResources);
      servlet = new WebloungeResourcesServlet(externalResourcesDir, bundleContext.getBundle(), RESOURCES_BUNDLE_DIR);
      logger.debug("Configured external shared resources directory at '{}'", externalResources);
    } else {
      servlet = null;
    }
    if (currentMountpoint != null) {
      try {
        httpService.unregister(currentMountpoint);
        logger.info("Serving shared weblounge resources at {}", resourcesMountpoint);
        if (servlet != null) {
          httpService.registerServlet(resourcesMountpoint, servlet, null, httpContext);
          logger.info("Added {} to shared weblounge resources", externalResourcesDir);
        } else {
          httpService.registerResources(resourcesMountpoint, RESOURCES_BUNDLE_DIR, httpContext);
        }
      } catch (NamespaceException e) {
        logger.error("Error registering shared resources at " + resourcesMountpoint, e);
      } catch (ServletException e) {
        logger.error("Error registering shared resources servlet at " + resourcesMountpoint, e);
      }
    }
  }
