@Override
public ArchivaRepositoryStatistics getManagedRepositoryStatistics( String repositoryId, String lang )
throws ArchivaRestServiceException
{
RepositorySession repositorySession = repositorySessionFactory.createSession();
SimpleDateFormat sdf = new SimpleDateFormat( "EEE, d MMM yyyy HH:mm:ss Z", new Locale( lang ) );
try
{
MetadataRepository metadataRepository = repositorySession.getRepository();
RepositoryStatistics stats = null;
try
{
stats = repositoryStatisticsManager.getLastStatistics( metadataRepository, repositoryId );
}
catch ( MetadataRepositoryException e )
{
log.warn( "Error retrieving repository statistics: {}", e.getMessage(), e );
}
if ( stats != null )
{
ArchivaRepositoryStatistics archivaRepositoryStatistics =
getModelMapper().map( stats, ArchivaRepositoryStatistics.class );
archivaRepositoryStatistics.setDuration( archivaRepositoryStatistics.getScanEndTime().getTime()
- archivaRepositoryStatistics.getScanStartTime().getTime() );
archivaRepositoryStatistics.setLastScanDate(
sdf.format( archivaRepositoryStatistics.getScanEndTime() ) );
return archivaRepositoryStatistics;
}
}
finally
{
if ( repositorySession != null )
{
repositorySession.close();
}
}
return null;
}