throw new IllegalStateException("Maven repository "
+ RepositoryStringUtils.getHumanizedNameString(mavenProxyRepository)
+ " not in state to be updated (is blocked).");
}
PrefixSource prefixSource = null;
final DiscoveryConfig config = getRemoteDiscoveryConfig(mavenProxyRepository);
if (config.isEnabled()) {
final DiscoveryResult<MavenProxyRepository> discoveryResult;
if (null == remoteStrategies) {
discoveryResult = remoteContentDiscoverer.discoverRemoteContent(mavenProxyRepository);
}
else {
discoveryResult =
remoteContentDiscoverer.discoverRemoteContent(mavenProxyRepository, remoteStrategies);
}
log.debug("Results of {} remote discovery: {}", mavenProxyRepository,
discoveryResult.getAllResults());
if (discoveryResult.isSuccessful()) {
final PrefixSource remotePrefixSource = discoveryResult.getPrefixSource();
if (remotePrefixSource.supported()) {
// grab local too and merge them
final DiscoveryResult<MavenRepository> localDiscoveryResult =
localContentDiscoverer.discoverLocalContent(mavenProxyRepository);
if (localDiscoveryResult.isSuccessful()) {
final HashSet<String> mergedEntries = Sets.newHashSet();
mergedEntries.addAll(remotePrefixSource.readEntries());
mergedEntries.addAll(localDiscoveryResult.getPrefixSource().readEntries());
final ArrayListPrefixSource mergedPrefixSource =
new ArrayListPrefixSource(Lists.newArrayList(mergedEntries),
remotePrefixSource.getLostModifiedTimestamp());
prefixSource = mergedPrefixSource;
}
else {
log.debug("{} local discovery unsuccessful", mavenProxyRepository);
}