/** * Walks each namespace of the given repository id and counts the artifacts. * * @param metadataRepository The repository implementation * @param repositoryId The repository Id * @param repositoryStatistics The statistics object that must be populated * @throws MetadataRepositoryException Throws the repository exception, if an error occurs while accessing the repository. */ @Override public void populateStatistics( MetadataRepository metadataRepository, String repositoryId, RepositoryStatistics repositoryStatistics ) throws MetadataRepositoryException { try { for ( String ns : metadataRepository.getRootNamespaces( repositoryId ) ) { walkRepository( metadataRepository, repositoryStatistics, repositoryId, ns ); } } catch ( MetadataResolutionException e ) { throw new MetadataRepositoryException( e.getMessage(), e ); } }
@Test public void testRootNamespaceWithNoMetadataRepository() throws Exception { Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isEmpty(); }
@Test public void testGetNamespaceOnly() throws Exception { assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); repository.updateNamespace( TEST_REPO_ID, TEST_NAMESPACE ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 ); repository.removeNamespace( TEST_REPO_ID, TEST_NAMESPACE ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); }
namespaces = metadataRepository.getRootNamespaces( repoId ); Collection<String> storageNamespaces = repositoryStorage.listRootNamespaces( repoId, new ExcludesFilter<String>( namespaces ) );
@Test public void testGetProjectOnly() throws Exception { assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ProjectMetadata project = new ProjectMetadata(); project.setId( TEST_PROJECT ); project.setNamespace( TEST_NAMESPACE ); repository.updateProject( TEST_REPO_ID, project ); project = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertEquals( TEST_PROJECT, project.getId() ); assertEquals( TEST_NAMESPACE, project.getNamespace() ); // test that namespace is also constructed Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 ); }
@Test public void testGetArtifactOnly() throws Exception { assertThat( new ArrayList<>( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ) ).isNotNull().isEmpty(); assertThat( repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ).isNull(); assertThat( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ).isNull(); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ArtifactMetadata metadata = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata ); Collection<ArtifactMetadata> artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); //assertEquals( Collections.singletonList( metadata ), new ArrayList<ArtifactMetadata>( artifacts ) ); assertThat( artifacts ).containsExactly( metadata ); // test that namespace, project and project version is also constructed assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 ); ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertEquals( TEST_PROJECT, projectMetadata.getId() ); assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() ); ProjectVersionMetadata projectVersionMetadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( TEST_PROJECT_VERSION, projectVersionMetadata.getId() ); }
@Test public void testGetNamespacesWithSparseDepth() throws Exception { repository.updateNamespace( TEST_REPO_ID, "org.apache.maven.shared" ); Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( "org" ); namespaces = repository.getNamespaces( TEST_REPO_ID, "org" ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( "apache" ); namespaces = repository.getNamespaces( TEST_REPO_ID, "org.apache" ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( "maven" ); namespaces = repository.getNamespaces( TEST_REPO_ID, "org.apache.maven" ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( "shared" ); }
@Test public void testGetProjectVersionOnly() throws Exception { assertNull( repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ); assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setId( TEST_PROJECT_VERSION ); repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata ); metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( TEST_PROJECT_VERSION, metadata.getId() ); // test that namespace and project is also constructed Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_NAMESPACE ); ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertNotNull( projectMetadata ); assertEquals( TEST_PROJECT, projectMetadata.getId() ); assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() ); }
assertTrue( repository.getRootNamespaces( TEST_REPO_ID ).isEmpty() );