// repository that has release policy
if (repository.getRepositoryKind().isFacetAvailable(MavenHostedRepository.class)
|| repository.getRepositoryKind().isFacetAvailable(MavenProxyRepository.class)) {
// actually, we don't care is it proxy or hosted, we only need to filter out groups and other
// "composite" reposes like shadows
MavenRepository mrepository = repository.adaptToFacet(MavenRepository.class);
// look in release reposes only
if (mrepository.isUserManaged()
&& RepositoryPolicy.RELEASE.equals(mrepository.getRepositoryPolicy())) {
try {
String releaseVersion = null;
// NEXUS-3148
if (snapshotGav.getBaseVersion().endsWith("-SNAPSHOT")) {
// "-SNAPSHOT" :== 9 chars
releaseVersion =
snapshotGav.getBaseVersion().substring(0,
snapshotGav.getBaseVersion().length() - 9);
}
else {
// "SNAPSHOT" :== 8 chars
releaseVersion =
snapshotGav.getBaseVersion().substring(0,
snapshotGav.getBaseVersion().length() - 8);
}
Gav releaseGav =
new Gav(snapshotGav.getGroupId(), snapshotGav.getArtifactId(), releaseVersion,
snapshotGav.getClassifier(), snapshotGav.getExtension(), null, null, null, false,
null, false, null);
String path = mrepository.getGavCalculator().gavToPath(releaseGav);
final ResourceStoreRequest req = new ResourceStoreRequest(path, true, false);
req.getRequestContext().setParentContext(context);
log.debug("Checking for release counterpart in repository '{}' and path '{}'",
mrepository.getId(), req.toString());
final StorageItem item = mrepository.retrieveItem(false, req);
releaseTimestamp = item.getCreated();
break;
}