private List<RepositoryStatistics> getMultipleRepositoriesReport( List<String> repositoriesId, int rowCount ) { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { MetadataRepository metadataRepository = repositorySession.getRepository(); List<RepositoryStatistics> stats = new ArrayList<>(); for ( String repo : repositoriesId ) { try { stats.add( repositoryStatisticsManager.getLastStatistics( metadataRepository, repo ) ); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to retrieve stats, assuming is empty: {}", e.getMessage(), e ); } } return stats.subList( 0, stats.size() > rowCount ? rowCount : stats.size() ); } finally { repositorySession.close(); } }
@Override public void auditEvent( AuditEvent event ) { // for now we only log upload events, some of the others are quite noisy if ( event.getAction().equals( AuditEvent.CREATE_FILE ) || event.getAction().equals( AuditEvent.UPLOAD_FILE ) || event.getAction().equals( AuditEvent.MERGING_REPOSITORIES ) ) { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { auditManager.addAuditEvent( repositorySession.getRepository(), event ); repositorySession.save(); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to write audit event to repository: {}", e.getMessage(), e ); } finally { repositorySession.close(); } } } }
@Override public RepositorySession createSession() { MetadataRepository metadataRepository = new FileMetadataRepository( metadataFacetFactories, configuration ); return new RepositorySession( metadataRepository, metadataResolver ); }
private Collection<String> getVersions( List<String> selectedRepos, String groupId, String artifactId ) throws MetadataResolutionException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { MetadataResolver metadataResolver = repositorySession.getResolver(); Set<String> versions = new LinkedHashSet<String>(); for ( String repoId : selectedRepos ) { Collection<String> projectVersions = metadataResolver.resolveProjectVersions( repositorySession, repoId, groupId, artifactId ); versions.addAll( projectVersions ); } List<String> sortedVersions = new ArrayList<>( versions ); Collections.sort( sortedVersions, VersionComparator.getInstance() ); return sortedVersions; } finally { repositorySession.close(); } }
@Override public void addArtifact( RepositorySession session, String repoId, String namespace, String projectId, ProjectVersionMetadata metadata ) { // Remove problems associated with this version on successful addition // TODO: this removes all problems - do we need something that just remove the problems we know are corrected? String name = RepositoryProblemFacet.createName( namespace, projectId, metadata.getId(), null ); try { MetadataRepository metadataRepository = session.getRepository(); metadataRepository.removeMetadataFacet( repoId, RepositoryProblemFacet.FACET_ID, name ); session.markDirty(); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to remove repository problem facets for the version being corrected in the repository: {}", e.getMessage(), e ); } }
MetadataRepository metadataRepository = repositorySession.getRepository(); repositorySession.save(); "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" , path, repoId, e.getMessage(), e ); repositorySession.revert(); "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}", path, repoId, e.getMessage(), e ); repositorySession.revert(); repositorySession.close();
MetadataRepository metadataRepository = repositorySession.getRepository( ); Map<ArtifactInfo, ArtifactMetadata> metaRemovalList = new HashMap<>( ); Map<String, Collection<ArtifactMetadata>> metaResolved = new HashMap<>( ); repositorySession.save( );
@Override public Collection<ProjectVersionReference> resolveProjectReferences( RepositorySession session, String repoId, String namespace, String projectId, String projectVersion ) throws MetadataResolutionException { // TODO: is this assumption correct? could a storage mech. actually know all references in a non-Maven scenario? // not passed to the storage mechanism as resolving references would require iterating all artifacts MetadataRepository metadataRepository = session.getRepository(); return metadataRepository.getProjectReferences( repoId, namespace, projectId, projectVersion ); }
@Override public void completeScan( ) { repositorySession.close( ); }
MetadataRepository metadataRepository = repositorySession.getRepository(); repositorySession.closeQuietly();
/** * Close the session. Required to be called for all open sessions to ensure resources are properly released. * If the session has been marked as dirty, it will be saved. This may save partial changes in the case of a typical * <code>try { ... } finally { ... }</code> approach - if this is a problem, ensure you revert changes when an * exception occurs. * <b>can throw RuntimeException</b> */ @Override public void close() { try { if ( dirty ) { save(); } } finally { try { repository.close(); } catch ( MetadataRepositoryException e ) { throw new RuntimeException( e.getMessage(), e ); } } }
MetadataRepository metadataRepository = repositorySession.getRepository(); repositorySession.save(); "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" , path, repoId, e.getMessage(), e ); repositorySession.revert(); "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}", path, repoId, e.getMessage(), e ); repositorySession.revert(); repositorySession.close();
private Collection<String> getVersions( List<String> selectedRepos, String groupId, String artifactId ) throws MetadataResolutionException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { MetadataResolver metadataResolver = repositorySession.getResolver(); Set<String> versions = new LinkedHashSet<String>(); for ( String repoId : selectedRepos ) { Collection<String> projectVersions = metadataResolver.resolveProjectVersions( repositorySession, repoId, groupId, artifactId ); versions.addAll( projectVersions ); } List<String> sortedVersions = new ArrayList<>( versions ); Collections.sort( sortedVersions, VersionComparator.getInstance() ); return sortedVersions; } finally { repositorySession.close(); } }
MetadataRepository metadataRepository = session.getRepository(); String cacheKey = repoId + "-" + namespace; Collection<String> namespaces = namespacesCache.get( cacheKey ); session.markDirty();
MetadataRepository metadataRepository = repositorySession.getRepository(); for ( ArtifactReference reference : references ) repositorySession.save();
@Before public void setUp() throws Exception { listenerControl = EasyMock.createControl(); listener = listenerControl.createMock( RepositoryListener.class ); repositorySession = mock( RepositorySession.class ); metadataRepository = mock( MetadataRepository.class ); when( repositorySession.getRepository() ).thenReturn( metadataRepository ); }
@Override public void completeScan() { repositorySession.close(); }
MetadataRepository metadataRepository = repositorySession.getRepository(); repositorySession.closeQuietly();
private List<RepositoryStatistics> getMultipleRepositoriesReport( List<String> repositoriesId, int rowCount ) { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { MetadataRepository metadataRepository = repositorySession.getRepository(); List<RepositoryStatistics> stats = new ArrayList<>(); for ( String repo : repositoriesId ) { try { stats.add( repositoryStatisticsManager.getLastStatistics( metadataRepository, repo ) ); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to retrieve stats, assuming is empty: {}", e.getMessage(), e ); } } return stats.subList( 0, stats.size() > rowCount ? rowCount : stats.size() ); } finally { repositorySession.close(); } }
@Override public void auditEvent( AuditEvent event ) { // for now we only log upload events, some of the others are quite noisy if ( event.getAction().equals( AuditEvent.CREATE_FILE ) || event.getAction().equals( AuditEvent.UPLOAD_FILE ) || event.getAction().equals( AuditEvent.MERGING_REPOSITORIES ) ) { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { auditManager.addAuditEvent( repositorySession.getRepository(), event ); repositorySession.save(); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to write audit event to repository: {}", e.getMessage(), e ); } finally { repositorySession.close(); } } } }