@Override
public Collection<SearchResult> search(String token) {
return configurationService.getConfigurationDescriptors().stream()
.map(descriptor -> svnService.getRepository(descriptor.getId()))
.map(repository -> {
try {
return new SVNRepositoryRevision(
repository,
svnService.getRevisionInfo(repository, Long.valueOf(token, 10))
);
} catch (SVNRevisionNotFoundException ex) {
return null;
}
})
.filter(repositoryRevision -> repositoryRevision != null)
.map(repositoryRevision -> new SearchResult(
String.valueOf(repositoryRevision.getRevisionInfo().getRevision()),
getSearchRevisionDescription(repositoryRevision),
uri(on(SVNController.class).revisionInfo(
repositoryRevision.getRepository().getConfiguration().getName(),
repositoryRevision.getRevisionInfo().getRevision()
)),
uriBuilder.page("extension/svn/revision/%s/%d",
repositoryRevision.getRepository().getConfiguration().getName(),
repositoryRevision.getRevisionInfo().getRevision()),
100
))
.collect(Collectors.toList());
}
};