repository.setSearchable(model.isIndexable());
repository.setNotFoundCacheTimeToLive(model.getNotFoundCacheTTL());
if (repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class)) {
ProxyRepository proxyRepo = repository.adaptToFacet(ProxyRepository.class);
try {
proxyRepo.setRemoteUrl(model.getRemoteStorage().getRemoteStorageUrl());
}
catch (RemoteStorageException e) {
ValidationResponse vr = new ApplicationValidationResponse();
ValidationMessage error = new ValidationMessage("remoteStorageUrl", e.getMessage(), e.getMessage());
vr.addValidationError(error);
throw new InvalidConfigurationException(vr);
}
String oldPasswordForRemoteStorage = null;
if (proxyRepo.getRemoteAuthenticationSettings() != null
&& UsernamePasswordRemoteAuthenticationSettings.class.isInstance(proxyRepo
.getRemoteAuthenticationSettings())) {
oldPasswordForRemoteStorage =
((UsernamePasswordRemoteAuthenticationSettings) proxyRepo
.getRemoteAuthenticationSettings()).getPassword();
}
RemoteAuthenticationSettings remoteAuth =
getAuthenticationInfoConverter().convertAndValidateFromModel(
this.convertAuthentication(model.getRemoteStorage().getAuthentication(),
oldPasswordForRemoteStorage));
RemoteConnectionSettings remoteConnSettings =
getGlobalRemoteConnectionSettings().convertAndValidateFromModel(
this.convertRemoteConnectionSettings(model.getRemoteStorage()
.getConnectionSettings()));
if (remoteAuth != null) {
proxyRepo.setRemoteAuthenticationSettings(remoteAuth);
}
else {
proxyRepo.getRemoteStorageContext().removeRemoteAuthenticationSettings();
}
if (remoteConnSettings != null) {
proxyRepo.setRemoteConnectionSettings(remoteConnSettings);
}
else {
proxyRepo.getRemoteStorageContext().removeRemoteConnectionSettings();
}
// set auto block
proxyRepo.setAutoBlockActive(((RepositoryProxyResource) model).isAutoBlockActive());
// set type validation
proxyRepo.setFileTypeValidation(((RepositoryProxyResource) model).isFileTypeValidation());
}
if (repository.getRepositoryKind().isFacetAvailable(MavenRepository.class)) {
RepositoryPolicy repoPolicy =