private void addMirrors(final String remoteRepoUrl, final Xpp3Dom[] mirrorsDoms) { if (mirrorsDoms != null) { for (final Xpp3Dom mirrorDOM : mirrorsDoms) { final String mirrorUrl = mirrorDOM.getAttribute("url"); if (mirrorUrl != null) { // TODO: validate that this is valid way to generate id // or if should be pulled from xml final Mirror mirror = new Mirror(getSha1Digest(mirrorUrl), mirrorUrl, remoteRepoUrl); mirrorMap.put(mirror.getId(), mirror); } } } final Mirror mirror = new Mirror(getSha1Digest(remoteRepoUrl), remoteRepoUrl, remoteRepoUrl); mirrorMap.put(mirror.getId(), mirror); }
protected void setMirrors(Repository repository, List<Mirror> mirrors) throws IOException { //populate ids if not set for (Mirror mirror : mirrors) { if (StringUtils.isEmpty(mirror.getId())) { mirror.setId(mirror.getUrl()); } } repository.getPublishedMirrors().setMirrors(mirrors); getNexusConfiguration().saveConfiguration(); } }
public Mirror( String id, String url, String mirrorOfUrl ) { setId( id ); setUrl( url ); setMirrorOfUrl( mirrorOfUrl ); }
mirrors.add( new Mirror( "default", getRemoteUrl(), getRemoteUrl() ) ); getLogger().debug( "Using mirror URL:" + mirror.getUrl() + ", retryCount=" + retryCount ); getRemoteStorage().validateStorageUrl( mirror.getUrl() ); getRemoteStorage().retrieveItem( this, request, mirror.getUrl() ); if ( doValidateRemoteItemContent( request, mirror.getUrl(), remoteItem, events ) ) "Got RemoteStorageException in proxy repository %s while retrieving remote artifact \"%s\" from URL %s, this is %s (re)try, cause: %s: %s", RepositoryStringUtils.getHumanizedNameString( this ), request.toString(), mirror.getUrl(), String.valueOf( i + 1 ), t.getClass().getName(), t.getMessage() ) ); "Got LocalStorageException in proxy repository %s while caching retrieved artifact \"%s\" got from URL %s, will attempt next mirror, cause: %s: %s", RepositoryStringUtils.getHumanizedNameString( this ), request.toString(), mirror.getUrl(), t.getClass().getName(), t.getMessage() ) );
/** * Adds specified mirror URLs to the black list. */ public void blacklist( Set<Mirror> mirrors ) { for ( Mirror mirror : mirrors ) { blacklist.remove( mirror.getId() ); if ( existsMirrorWithId( false, mirror.getId() ) ) { blacklist.put( mirror.getId(), new BlacklistEntry( mirror.getId(), System.currentTimeMillis() ) ); } } }
public List<Mirror> getMirrors() { List<CMirror> modelMirrors = getConfiguration( false ).getMirrors(); ArrayList<Mirror> mirrors = new ArrayList<Mirror>( modelMirrors.size() ); for ( CMirror model : modelMirrors ) { Mirror mirror = new Mirror( model.getId(), model.getUrl() ); mirrors.add( mirror ); } return Collections.unmodifiableList( mirrors ); }
@Override protected List<String> getRemoteUrls(final ResourceStoreRequest request) { final List<String> remoteUrls = Lists.newArrayList(); String remoteUrl = getRemoteUrl(); // lookup child from the map here then udpate the remote URL try { final Map<String, ArtifactMapping> artifactMappings = getArtifactMappings(); if (artifactMappings != null) { for (final String remoteRepositoryURI : artifactMappings.keySet()) { if (artifactMappings.get(remoteRepositoryURI).getArtifactsPath().containsKey( request.getRequestPath())) { remoteUrl = remoteRepositoryURI; break; } } } } catch (final StorageException | IllegalOperationException e) { log.warn("Could not find artifact-mapping.", e); } for (final Mirror mirror : mirrorMap.values()) { if (StringUtils.equals(remoteUrl, mirror.getMirrorOfUrl())) { remoteUrls.add(mirror.getUrl()); } } remoteUrls.add(getRemoteUrl()); return remoteUrls; }
private void logFailedMirror( Mirror mirror, Exception e ) { if ( getLogger().isDebugEnabled() ) { getLogger().debug( "Failed mirror URL:" + mirror.getUrl() ); getLogger().debug( e.getMessage(), e ); } }
public boolean isBlacklisted( Mirror mirror ) { BlacklistEntry entry = blacklist.get( mirror.getId() ); if ( entry == null ) { return false; } if ( blacklistExpiration == NO_EXPIRATION ) { return true; } if ( entry.getTimestamp() + blacklistExpiration > System.currentTimeMillis() ) { return true; } blacklist.remove( mirror.getId() ); return false; }
protected Mirror restToNexusModel( MirrorResource resource ) { Mirror mirror = new Mirror( resource.getId(), resource.getUrl() ); return mirror; }
protected void setMirrors( Repository repository, List<Mirror> mirrors ) throws IOException { //populate ids if not set for ( Mirror mirror : mirrors ) { if ( StringUtils.isEmpty( mirror.getId() ) ) { mirror.setId( mirror.getUrl() ); } } if ( repository.getRepositoryKind().isFacetAvailable( ProxyRepository.class ) ) { repository.adaptToFacet( ProxyRepository.class ).getDownloadMirrors().setMirrors( mirrors ); getNexusConfiguration().saveConfiguration(); } else { repository.getPublishedMirrors().setMirrors( mirrors ); getNexusConfiguration().saveConfiguration(); } } }
protected Mirror restToNexusModel(MirrorResource resource) { Mirror mirror = new Mirror(resource.getId(), resource.getUrl()); return mirror; }
public List<Mirror> getMirrors() { List<CMirror> modelMirrors = getConfiguration( false ).getRemoteStorage().getMirrors(); List<Mirror> mirrors = new ArrayList<Mirror>( modelMirrors.size() ); for ( CMirror model : modelMirrors ) { Mirror mirror = new Mirror( model.getId(), model.getUrl() ); mirrors.add( mirror ); } return Collections.unmodifiableList( mirrors ); }
public void setMirrors( List<Mirror> mirrors ) { if ( mirrors == null || mirrors.isEmpty() ) { getConfiguration( true ).getMirrors().clear(); } else { ArrayList<CMirror> modelMirrors = new ArrayList<CMirror>( mirrors.size() ); for ( Mirror mirror : mirrors ) { CMirror model = new CMirror(); model.setId( mirror.getId() ); model.setUrl( mirror.getUrl() ); modelMirrors.add( model ); } getConfiguration( true ).setMirrors( modelMirrors ); } }
public void setMirrors( List<Mirror> mirrors ) { if ( mirrors == null || mirrors.isEmpty() ) { getConfiguration( true ).getRemoteStorage().getMirrors().clear(); blacklist.clear(); } else { List<CMirror> modelMirrors = new ArrayList<CMirror>( mirrors.size() ); for ( Mirror mirror : mirrors ) { CMirror model = new CMirror(); model.setId( mirror.getId() ); model.setUrl( mirror.getUrl() ); modelMirrors.add( model ); } getConfiguration( true ).getRemoteStorage().setMirrors( modelMirrors ); // remove blacklist entries for removed mirrors, but retain others Iterator<Entry<String, BlacklistEntry>> i = blacklist.entrySet().iterator(); while ( i.hasNext() ) { String id = i.next().getKey(); if ( !existsMirrorWithId( true, id ) ) { i.remove(); } } } }