@Override
  public void doApplyConfiguration(
      final Repository repository,
      final ApplicationConfiguration configuration,
      final CRepositoryCoreConfiguration coreConfig)
      throws ConfigurationException {
    repository.setIndexable(false);

    super.doApplyConfiguration(repository, configuration, coreConfig);

    final CRemoteStorage remoteStorage = coreConfig.getConfiguration(true).getRemoteStorage();

    if (remoteStorage != null) {
      // // FIXME: on the fly upgrade, if needed
      // // it will trigger if detects that nexus.xml contains remoteUrl _with_ OBR XML file
      // String[] siteAndPath = ObrUtils.splitObrSiteAndPath( remoteStorage.getUrl(), false );
      //
      // if ( siteAndPath[1] != null )
      // {
      // // upgrade needed!
      // ( (ObrProxyRepository) repository ).setObrPath( siteAndPath[1] );
      //
      // // write back the stripped URL
      // remoteStorage.setUrl( siteAndPath[0] );
      // }

      // FIXME: this should happen in this super's class: AbstractProxyRepositoryConfigurator
      try {
        ((ObrProxyRepository) repository).setRemoteUrl(remoteStorage.getUrl());
      } catch (final StorageException e) {
        throw new ConfigurationException(
            "Cannot configure OBR Proxy Repository! " + remoteStorage.getUrl(), e);
      }
    }
  }
  @Override
  public void doApplyConfiguration(
      Repository repository,
      ApplicationConfiguration configuration,
      CRepositoryCoreConfiguration coreConfiguration)
      throws ConfigurationException {
    super.doApplyConfiguration(repository, configuration, coreConfiguration);

    if (repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class)) {
      ProxyRepository proxy = repository.adaptToFacet(ProxyRepository.class);

      proxy.getItemContentValidators().put("checksum", checksumValidator);
      proxy.getItemContentValidators().put("filetypevalidator", fileTypeItemContentValidator);
    }
  }