public DiscoveryResponse discoverLatestVersion(DiscoveryRequest req) throws NoSuchRepositoryException, IOException { CLvoKey info = req.getLvoKey(); IndexingContext localContext = indexerManager.getRepositoryLocalIndexContext(info.getRepositoryId()); IndexingContext remoteContext = indexerManager.getRepositoryRemoteIndexContext(info.getRepositoryId()); BooleanQuery bq = new BooleanQuery(); bq.add(indexerManager.constructQuery(ArtifactInfo.GROUP_ID, info.getGroupId()), Occur.MUST); bq.add( indexerManager.constructQuery(ArtifactInfo.ARTIFACT_ID, info.getArtifactId()), Occur.MUST); // to have sorted results by version in descending order FlatSearchRequest sreq = new FlatSearchRequest(bq, ArtifactInfo.REPOSITORY_VERSION_COMPARATOR); sreq.getContexts().add(localContext); sreq.getContexts().add(remoteContext); FlatSearchResponse hits = indexerManager.getNexusIndexer().searchFlat(sreq); DiscoveryResponse response = new DiscoveryResponse(req); if (hits.getTotalHits() > 0) { // found it, they are sorted in descending order, so the 1st one is the newest response.setVersion(hits.getResults().iterator().next().version); response.setSuccessful(true); } return response; }