@Override public void deleteArtifact( MetadataRepository metadataRepository, String repositoryId, String namespace, String project, String version, String id ) { String name = RepositoryProblemFacet.createName( namespace, project, version, id ); try { metadataRepository.removeMetadataFacet( repositoryId, RepositoryProblemFacet.FACET_ID, name ); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to remove metadata facet as part of delete event: {}", e.getMessage(), e ); } }
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(); } }
private List<RepositoryStatistics> getUniqueRepositoryReport( String repositoryId, int rowCount, Date startDate, Date endDate ) { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { MetadataRepository metadataRepository = repositorySession.getRepository(); List<RepositoryStatistics> stats = null; try { stats = repositoryStatisticsManager.getStatisticsInRange( metadataRepository, repositoryId, startDate, endDate ); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to retrieve stats, assuming is empty: {}", e.getMessage(), e ); } if ( stats == null || stats.isEmpty() ) { return Collections.<RepositoryStatistics>emptyList(); } return stats.subList( 0, stats.size() > rowCount ? rowCount : stats.size() ); } 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 ); } }
@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 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 void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId ) throws RepositoryMergerException { try { List<ArtifactMetadata> artifactsInSourceRepo = metadataRepository.getArtifacts( sourceRepoId ); for ( ArtifactMetadata artifactMetadata : artifactsInSourceRepo ) { artifactMetadata.setRepositoryId( targetRepoId ); createFolderStructure( sourceRepoId, targetRepoId, artifactMetadata ); } } catch ( MetadataRepositoryException e ) { throw new RepositoryMergerException( e.getMessage(), e ); } catch ( IOException e ) { throw new RepositoryMergerException( e.getMessage(), e ); } catch ( RepositoryException e ) { throw new RepositoryMergerException( e.getMessage(), e ); } }
@Override public List<Artifact> getArtifacts( String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifacts( repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifactsByProjectVersionMetadata( String key, String value, String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifactsByProjectVersionMetadata( key, value, repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifacts( String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifacts( repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifactsByMetadata( String key, String value, String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifactsByMetadata( key, value, repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifactsByProperty( String key, String value, String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifactsByProperty( key, value, repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifactsByProjectVersionMetadata( String key, String value, String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifactsByProjectVersionMetadata( key, value, repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> searchArtifacts( String text, String repositoryId, Boolean exact ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().searchArtifacts( text, repositoryId, exact == null ? false : exact ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> searchArtifacts( String text, String repositoryId, Boolean exact ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().searchArtifacts( text, repositoryId, exact == null ? false : exact ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> searchArtifacts( String key, String text, String repositoryId, Boolean exact ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().searchArtifacts( key, text, repositoryId, exact == null ? false : exact ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifactsByMetadata( String key, String value, String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifactsByMetadata( key, value, repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> getArtifactsByProperty( String key, String value, String repositoryId ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().getArtifactsByProperty( key, value, repositoryId ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public List<Artifact> searchArtifacts( String key, String text, String repositoryId, Boolean exact ) throws ArchivaRestServiceException { RepositorySession repositorySession = repositorySessionFactory.createSession(); try { List<ArtifactMetadata> artifactMetadatas = repositorySession.getRepository().searchArtifacts( key, text, repositoryId, exact == null ? false : exact ); return buildArtifacts( artifactMetadatas, repositoryId ); } catch ( MetadataRepositoryException e ) { throw new ArchivaRestServiceException( e.getMessage(), e ); } finally { repositorySession.close(); } }
@Override public void addArtifactProblem( RepositorySession session, String repoId, String namespace, String projectId, String projectVersion, RepositoryStorageMetadataException exception ) { RepositoryProblemFacet problem = new RepositoryProblemFacet(); problem.setMessage( exception.getMessage() ); problem.setProject( projectId ); problem.setNamespace( namespace ); problem.setRepositoryId( repoId ); problem.setVersion( projectVersion ); problem.setProblem( exception.getId() ); try { session.getRepository().addMetadataFacet( repoId, problem ); session.markDirty(); } catch ( MetadataRepositoryException e ) { log.warn( "Unable to add repository problem facets for the version being removed: {}", e.getMessage(), e ); } }