{
String repoId = this.getRepositoryId(request);
try {
Repository repository = getRepositoryRegistry().getRepository(repoId);
RepositoryMetaResource resource = new RepositoryMetaResource();
resource.setId(repoId);
resource.setRepoType(getRestRepoType(repository));
resource.setFormat(repository.getRepositoryContentClass().getId());
for (GroupRepository group : getRepositoryRegistry().getGroupsOfRepository(repository)) {
resource.addGroup(group.getId());
}
/*
NEXUS-2790 removing as calculation takes too long in certain circumstances
will eventually be reimplemented
File localPath = org.sonatype.nexus.util.FileUtils.getFileFromUrl( repository.getLocalUrl() );
try
{
resource.setSizeOnDisk( FileUtils.sizeOfDirectory( localPath ) );
resource.setFileCountInRepository( org.sonatype.nexus.util.FileUtils.filesInDirectory( localPath ) );
}
catch ( IllegalArgumentException e )
{
// the repo is maybe virgin, so the dir is not created until some request needs it
}
*/
// mustang is able to get this with File.getUsableFreeSpace();
resource.setFreeSpaceOnDisk(-1);
CacheStatistics stats = repository.getNotFoundCache().getStatistics();
resource.setNotFoundCacheSize(stats.getSize());
resource.setNotFoundCacheHits(stats.getHits());
resource.setNotFoundCacheMisses(stats.getMisses());
resource.setLocalStorageErrorsCount(0);
resource.setRemoteStorageErrorsCount(0);
RepositoryMetaResourceResponse result = new RepositoryMetaResourceResponse();
result.setData(resource);