private Collection<String> createArtifactIdList( Collection<ArtifactMetadata> artifacts ) { Collection<String> artifactIds = new ArrayList<>(); for ( ArtifactMetadata artifact : artifacts ) { artifactIds.add( artifact.getId() ); } return artifactIds; } }
private void updateArtifactFacets( ArtifactMetadata artifact, Properties properties ) { String propertyPrefix = "artifact:facet:" + artifact.getId() + ":"; for ( MetadataFacet facet : artifact.getFacetList() ) { for ( Map.Entry<String, String> e : facet.toProperties().entrySet() ) { String key = propertyPrefix + facet.getFacetId() + ":" + e.getKey(); properties.setProperty( key, e.getValue() ); } } }
@Override public int compare( ArtifactMetadata o1, ArtifactMetadata o2 ) { // sort by version (reverse), then ID int result = new DefaultArtifactVersion( o2.getVersion() ).compareTo( new DefaultArtifactVersion( o1.getVersion() ) ); return result != 0 ? result : o1.getId().compareTo( o2.getId() ); } }
private void updateArtifactFacets( ArtifactMetadata artifact, Properties properties ) { String propertyPrefix = "artifact:facet:" + artifact.getId() + ":"; for ( MetadataFacet facet : artifact.getFacetList() ) { for ( Map.Entry<String, String> e : facet.toProperties().entrySet() ) { String key = propertyPrefix + facet.getFacetId() + ":" + e.getKey(); properties.setProperty( key, e.getValue() ); } } }
private boolean isEquals( ArtifactMetadata sourceArtifact, ArtifactMetadata targetArtifact ) { boolean isSame = false; if ( ( sourceArtifact.getNamespace().equals( targetArtifact.getNamespace() ) ) && ( sourceArtifact.getProject().equals( targetArtifact.getProject() ) ) && ( sourceArtifact.getId().equals( targetArtifact.getId() ) ) && ( sourceArtifact.getProjectVersion().equals( targetArtifact.getProjectVersion() ) ) ) { isSame = true; } return isSame; } }
@Override public int compare( ArtifactMetadata o1, ArtifactMetadata o2 ) { // sort by version (reverse), then ID int result = new DefaultArtifactVersion( o2.getVersion() ).compareTo( new DefaultArtifactVersion( o1.getVersion() ) ); return result != 0 ? result : o1.getId().compareTo( o2.getId() ); } }
String id = artifactMetadata.getId();
String id = artifactMetadata.getId();
private void mergeWithOutSnapshots( MetadataRepository metadataRepository, List<ArtifactMetadata> sourceArtifacts, String sourceRepoId, String repoid ) throws RepositoryMergerException { List<ArtifactMetadata> artifactsWithOutSnapshots = new ArrayList<>(); for ( ArtifactMetadata metadata : sourceArtifacts ) { if ( VersionUtil.isSnapshot( metadata.getProjectVersion() ) ) //if ( metadata.getProjectVersion().contains( VersionUtil.SNAPSHOT ) ) { artifactsWithOutSnapshots.add( metadata ); } else { triggerAuditEvent( repoid, metadata.getId(), AuditEvent.MERGING_REPOSITORIES ); } } sourceArtifacts.removeAll( artifactsWithOutSnapshots ); Filter<ArtifactMetadata> artifactListWithOutSnapShots = new IncludesFilter<ArtifactMetadata>( sourceArtifacts ); repositoryMerger.merge( metadataRepository, sourceRepoId, repoid, artifactListWithOutSnapShots ); } }
private void mergeWithOutSnapshots( MetadataRepository metadataRepository, List<ArtifactMetadata> sourceArtifacts, String sourceRepoId, String repoid ) throws RepositoryMergerException { List<ArtifactMetadata> artifactsWithOutSnapshots = new ArrayList<>(); for ( ArtifactMetadata metadata : sourceArtifacts ) { if ( VersionUtil.isSnapshot( metadata.getProjectVersion() ) ) //if ( metadata.getProjectVersion().contains( VersionUtil.SNAPSHOT ) ) { artifactsWithOutSnapshots.add( metadata ); } else { triggerAuditEvent( repoid, metadata.getId(), AuditEvent.MERGING_REPOSITORIES ); } } sourceArtifacts.removeAll( artifactsWithOutSnapshots ); Filter<ArtifactMetadata> artifactListWithOutSnapShots = new IncludesFilter<ArtifactMetadata>( sourceArtifacts ); repositoryMerger.merge( metadataRepository, sourceRepoId, repoid, artifactListWithOutSnapShots ); } }
@Test public void testGetArtifactsByProjectVersionMetadata() throws Exception { createArtifactWithGenericMetadataFacet( 10 ); Collection<ArtifactMetadata> artifactsByMetadata = repository.getArtifactsByProjectVersionMetadata( TEST_METADATA_KEY, TEST_METADATA_VALUE, TEST_REPO_ID ); assertThat( artifactsByMetadata ).hasSize( 1 ); ArtifactMetadata artifactMetadata = artifactsByMetadata.iterator().next(); assertThat( artifactMetadata.getId() ).isEqualTo( "projectId-1.0.jar" ); assertThat( artifactMetadata.getSha1() ).isEqualTo( TEST_SHA1 ); assertThat( artifactMetadata.getRepositoryId() ).isEqualTo( TEST_REPO_ID ); }
@Test public void testGetArtifactsByPropertySingleResult() throws Exception { createArtifactWithData(); // only works on JCR implementation // Collection<ArtifactMetadata> artifactsByProperty = repository.getArtifactsByProperty( "org.name", TEST_ORGANIZATION.getName(), TEST_REPO_ID ); Collection<ArtifactMetadata> artifactsByProperty = repository.getArtifactsByProperty( "url", TEST_URL, TEST_REPO_ID ); assertThat( artifactsByProperty ).hasSize( 1 ); ArtifactMetadata artifactMetadata = artifactsByProperty.iterator().next(); assertThat( artifactMetadata.getId() ).isEqualTo( "projectId-1.0.jar" ); assertThat( artifactMetadata.getSha1() ).isEqualTo( TEST_SHA1 ); assertThat( artifactMetadata.getRepositoryId() ).isEqualTo( TEST_REPO_ID ); }
@Test public void testGetArtifacts() throws Exception { ArtifactMetadata artifact1 = createArtifact(); ArtifactMetadata artifact2 = createArtifact( "pom" ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact1 ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact2 ); Collection<ArtifactMetadata> artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); ArrayList<ArtifactMetadata> actual = new ArrayList<>( artifacts ); Collections.sort( actual,( o1, o2 ) -> o1.getId().compareTo( o2.getId() ) ); assertEquals( Arrays.asList( artifact1, artifact2 ), actual ); }
@Override public void removeArtifact( ArtifactMetadata artifactMetadata, String baseVersion ) throws MetadataRepositoryException { logger.debug( "removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'", artifactMetadata.getRepositoryId(), artifactMetadata.getNamespace(), artifactMetadata.getProject(), baseVersion, artifactMetadata.getId() ); String key = new ArtifactMetadataModel.KeyBuilder().withRepositoryId( artifactMetadata.getRepositoryId() ).withNamespace( artifactMetadata.getNamespace() ).withId( artifactMetadata.getId() ).withProjectVersion( baseVersion ).withProject( artifactMetadata.getProject() ).build(); this.artifactMetadataTemplate.deleteRow( key ); }
@Test public void testGetArtifactsByMetadataAllRepositories() throws Exception { createArtifactWithMavenArtifactFacet(); tryAssert(()-> { Collection<ArtifactMetadata> artifactsByMetadata = repository.getArtifactsByMetadata("foo", TEST_METADATA_VALUE, null); assertThat(artifactsByMetadata).hasSize(1); ArtifactMetadata artifactMetadata = artifactsByMetadata.iterator().next(); assertThat(artifactMetadata.getId()).isEqualTo("projectId-1.0.jar"); assertThat(artifactMetadata.getSha1()).isEqualTo(TEST_SHA1); assertThat(artifactMetadata.getRepositoryId()).isEqualTo(TEST_REPO_ID); MetadataFacet facet = artifactMetadata.getFacet(TEST_FACET_ID); assertThat(facet).isNotNull(); assertThat(facet.toProperties()).isEqualTo(Collections.singletonMap("foo", TEST_METADATA_VALUE)); }); }
for ( ArtifactMetadata metadata : sourceArtifacts ) triggerAuditEvent( targetRepositoryId, metadata.getId(), AuditEvent.MERGING_REPOSITORIES );
triggerAuditEvent( targetRepositoryId, metadata.getId(), AuditEvent.MERGING_REPOSITORIES );
@Test public void deleteArtifact() throws Exception { ArtifactMetadata artifact = createArtifact(); artifact.addFacet( new TestMetadataFacet( "value" ) ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); Collection<ArtifactMetadata> artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( Collections.singletonList( artifact ), new ArrayList<>( artifacts ) ); repository.removeArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact.getId() ); artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertThat( artifacts ).isNotNull().isEmpty(); }
@Test public void testDeleteArtifact() throws Exception { ArtifactMetadata artifact = createArtifact(); artifact.addFacet( new TestMetadataFacet( "value" ) ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ).containsExactly( artifact ); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION_2_0, artifact ); Collection<String> versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); log.info( "versions {}", versions ); assertThat( versions ).isNotNull().isNotEmpty().hasSize( 2 ).contains( "1.0", "2.0" ); repository.removeArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact.getId() ); versions = repository.getProjectVersions( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); log.info( "versions {}", versions ); assertThat( versions ).isNotNull().isNotEmpty().hasSize( 1 ).contains( "2.0" ); assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ).isNotNull().isEmpty(); assertThat( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION_2_0 ) ).isNotEmpty().hasSize( 1 ); }
triggerAuditEvent( targetRepositoryId, metadata.getId(), AuditEvent.MERGING_REPOSITORIES );