@Override public List<AuditEvent> getMostRecentAuditEvents( MetadataRepository metadataRepository, List<String> repositoryIds ) throws MetadataRepositoryException { // TODO: consider a more efficient implementation that directly gets the last ten from the content repository List<AuditRecord> records = new ArrayList<>(); for ( String repositoryId : repositoryIds ) { List<String> names = metadataRepository.getMetadataFacets( repositoryId, AuditEvent.FACET_ID ); for ( String name : names ) { records.add( new AuditRecord( repositoryId, name ) ); } } Collections.sort( records ); records = records.subList( 0, records.size() < NUM_RECENT_EVENTS ? records.size() : NUM_RECENT_EVENTS ); List<AuditEvent> events = new ArrayList<>( records.size() ); for ( AuditRecord record : records ) { AuditEvent auditEvent = (AuditEvent) metadataRepository.getMetadataFacet( record.repositoryId, AuditEvent.FACET_ID, record.name ); events.add( auditEvent ); } return events; }
@Test public void testGetMetadataFacetWhenEmpty() throws Exception { assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ); }
@Override public List<AuditEvent> getMostRecentAuditEvents( MetadataRepository metadataRepository, List<String> repositoryIds ) throws MetadataRepositoryException { // TODO: consider a more efficient implementation that directly gets the last ten from the content repository List<AuditRecord> records = new ArrayList<>(); for ( String repositoryId : repositoryIds ) { List<String> names = metadataRepository.getMetadataFacets( repositoryId, AuditEvent.FACET_ID ); for ( String name : names ) { records.add( new AuditRecord( repositoryId, name ) ); } } Collections.sort( records ); records = records.subList( 0, records.size() < NUM_RECENT_EVENTS ? records.size() : NUM_RECENT_EVENTS ); List<AuditEvent> events = new ArrayList<>( records.size() ); for ( AuditRecord record : records ) { AuditEvent auditEvent = (AuditEvent) metadataRepository.getMetadataFacet( record.repositoryId, AuditEvent.FACET_ID, record.name ); events.add( auditEvent ); } return events; }
@Test public void testGetMetadataFacetWhenUnknownFacetId() throws Exception { assertNull( repository.getMetadataFacet( TEST_REPO_ID, UNKNOWN, TEST_NAME ) ); }
(RepositoryStatistics) metadataRepository.getMetadataFacet( repositoryId, DefaultRepositoryStatistics.FACET_ID, name );
@Test public void testGetMetadataFacetWhenUnknownName() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( TEST_VALUE ) ); assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, UNKNOWN ) ); }
@Override public RepositoryStatistics getLastStatistics( MetadataRepository metadataRepository, String repositoryId ) throws MetadataRepositoryException { StopWatch stopWatch = new StopWatch(); stopWatch.start(); // TODO: consider a more efficient implementation that directly gets the last one from the content repository List<String> scans = metadataRepository.getMetadataFacets( repositoryId, DefaultRepositoryStatistics.FACET_ID ); if ( scans == null ) { return null; } Collections.sort( scans ); if ( !scans.isEmpty() ) { String name = scans.get( scans.size() - 1 ); RepositoryStatistics repositoryStatistics = RepositoryStatistics.class.cast( metadataRepository.getMetadataFacet( repositoryId, RepositoryStatistics.FACET_ID, name )); stopWatch.stop(); log.debug( "time to find last RepositoryStatistics: {} ms", stopWatch.getTime() ); return repositoryStatistics; } else { return null; } }
@Test public void testGetMetadataFacet() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( TEST_VALUE ) ); TestMetadataFacet test = (TestMetadataFacet) repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); assertEquals( new TestMetadataFacet( TEST_VALUE ), test ); }
endTime ) ) ) AuditEvent event = (AuditEvent) metadataRepository.getMetadataFacet( repositoryId, AuditEvent.FACET_ID, name );
@Test public void testGetMetadataFacetWhenDefaultValue() throws Exception { repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( null ) ); MetadataFacet metadataFacet = repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); assertEquals( new TestMetadataFacet( TEST_METADATA_VALUE ), metadataFacet ); }
endTime ) ) ) AuditEvent event = (AuditEvent) metadataRepository.getMetadataFacet( repositoryId, AuditEvent.FACET_ID, name );
(RepositoryProblemFacet) metadataRepository.getMetadataFacet( repoId, RepositoryProblemFacet.FACET_ID, name );
(RepositoryProblemFacet) metadataRepository.getMetadataFacet( repoId, RepositoryProblemFacet.FACET_ID, name );
@Test public void testRemoveFacetWhenEmpty() throws Exception { List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertThat( facets ).isNotNull().isEmpty(); assertThat( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ).isNull(); repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertThat( facets ).isNotNull().isEmpty(); assertThat( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ).isNull(); }
@Test public void testRemoveFacet() throws Exception { TestMetadataFacet metadataFacet = new TestMetadataFacet( TEST_VALUE ); repository.addMetadataFacet( TEST_REPO_ID, metadataFacet ); assertEquals( metadataFacet, repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ); List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertFalse( facets.isEmpty() ); repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ); assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) ); facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); assertTrue( facets.isEmpty() ); }