Search in sources :

Example 1 with FacetedMetadata

use of org.apache.archiva.metadata.model.FacetedMetadata in project archiva by apache.

the class CassandraMetadataRepository method updateFacets.

/*
     * iterate over available facets to remove/add from the artifactMetadata
     *
     * @param facetedMetadata
     * @param artifactMetadataModel only use for the key
     */
private void updateFacets(final FacetedMetadata facetedMetadata, final ArtifactMetadataModel artifactMetadataModel) {
    String table = cassandraArchivaManager.getMetadataFacetFamilyName();
    CqlSession session = cassandraArchivaManager.getSession();
    {
        for (final String facetId : getSupportedFacets()) {
            MetadataFacet metadataFacet = facetedMetadata.getFacet(facetId);
            if (metadataFacet != null) {
                Select deleteRows = selectFrom(table).column(DEFAULT_PRIMARY_KEY).whereColumn(REPOSITORY_NAME.toString()).isEqualTo(literal(artifactMetadataModel.getRepositoryId())).whereColumn(NAMESPACE_ID.toString()).isEqualTo(literal(artifactMetadataModel.getNamespace())).whereColumn(PROJECT_ID.toString()).isEqualTo(literal(artifactMetadataModel.getProject())).whereColumn(PROJECT_VERSION.toString()).isEqualTo(literal(artifactMetadataModel.getProjectVersion())).whereColumn(FACET_ID.toString()).isEqualTo(literal(facetId)).allowFiltering();
                ResultSet resultSet = session.execute(deleteRows.build());
                StreamSupport.stream(resultSet.spliterator(), false).map(row -> row.getString(DEFAULT_PRIMARY_KEY)).distinct().forEach(key -> {
                    Delete delete = deleteFrom(table).whereColumn(DEFAULT_PRIMARY_KEY).isEqualTo(literal(key));
                    session.execute(delete.build());
                });
                Map<String, String> properties = metadataFacet.toProperties();
                for (Map.Entry<String, String> entry : properties.entrySet()) {
                    String key = new MetadataFacetModel.KeyBuilder().withKey(entry.getKey()).withArtifactMetadataModel(artifactMetadataModel).withFacetId(facetId).withName(metadataFacet.getName()).build();
                    Update update = update(table).setColumn(REPOSITORY_NAME.toString(), literal(artifactMetadataModel.getRepositoryId())).setColumn(NAMESPACE_ID.toString(), literal(artifactMetadataModel.getNamespace())).setColumn(PROJECT_ID.toString(), literal(artifactMetadataModel.getProject())).setColumn(PROJECT_VERSION.toString(), literal(artifactMetadataModel.getProjectVersion())).setColumn(FACET_ID.toString(), literal(facetId)).setColumn(KEY.toString(), literal(entry.getKey())).setColumn(VALUE.toString(), literal(entry.getValue())).whereColumn(DEFAULT_PRIMARY_KEY).isEqualTo(literal(key));
                    session.execute(update.build());
                }
            }
        }
    }
}
Also used : QueryBuilder(com.datastax.oss.driver.api.querybuilder.QueryBuilder) MailingList(org.apache.archiva.metadata.model.MailingList) Arrays(java.util.Arrays) ZonedDateTime(java.time.ZonedDateTime) BiFunction(java.util.function.BiFunction) Insert(com.datastax.oss.driver.api.querybuilder.insert.Insert) RepositorySession(org.apache.archiva.metadata.repository.RepositorySession) LoggerFactory(org.slf4j.LoggerFactory) Delete(com.datastax.oss.driver.api.querybuilder.delete.Delete) UpdateWithAssignments(com.datastax.oss.driver.api.querybuilder.update.UpdateWithAssignments) StringUtils(org.apache.commons.lang3.StringUtils) STORAGE_TZ(org.apache.archiva.metadata.model.ModelInfo.STORAGE_TZ) MetadataRepository(org.apache.archiva.metadata.repository.MetadataRepository) Map(java.util.Map) ProjectMetadata(org.apache.archiva.metadata.model.ProjectMetadata) Select(com.datastax.oss.driver.api.querybuilder.select.Select) DEFAULT_PRIMARY_KEY(org.apache.archiva.metadata.repository.cassandra.CassandraArchivaManager.DEFAULT_PRIMARY_KEY) ArtifactMetadata(org.apache.archiva.metadata.model.ArtifactMetadata) ColumnDefinition(com.datastax.oss.driver.api.core.cql.ColumnDefinition) ProjectVersionReference(org.apache.archiva.metadata.model.ProjectVersionReference) ColumnNames(org.apache.archiva.metadata.repository.cassandra.model.ColumnNames) Update(com.datastax.oss.driver.api.querybuilder.update.Update) CiManagement(org.apache.archiva.metadata.model.CiManagement) IssueManagement(org.apache.archiva.metadata.model.IssueManagement) UUID(java.util.UUID) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) MetadataService(org.apache.archiva.metadata.repository.MetadataService) List(java.util.List) Stream(java.util.stream.Stream) License(org.apache.archiva.metadata.model.License) Dependency(org.apache.archiva.metadata.model.Dependency) MetadataFacetFactory(org.apache.archiva.metadata.model.MetadataFacetFactory) UpdateStart(com.datastax.oss.driver.api.querybuilder.update.UpdateStart) Spliterator(java.util.Spliterator) MetadataRepositoryException(org.apache.archiva.metadata.repository.MetadataRepositoryException) Repository(org.apache.archiva.metadata.repository.cassandra.model.Repository) AbstractMetadataRepository(org.apache.archiva.metadata.repository.AbstractMetadataRepository) MetadataFacet(org.apache.archiva.metadata.model.MetadataFacet) ClusteringOrder(com.datastax.oss.driver.api.core.metadata.schema.ClusteringOrder) HashMap(java.util.HashMap) Namespace(org.apache.archiva.metadata.repository.cassandra.model.Namespace) ArtifactMetadataModel(org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel) ArrayList(java.util.ArrayList) ModelMapper(org.modelmapper.ModelMapper) ProjectVersionMetadata(org.apache.archiva.metadata.model.ProjectVersionMetadata) CqlSession(com.datastax.oss.driver.api.core.CqlSession) QueryParameter(org.apache.archiva.metadata.QueryParameter) ProjectVersionMetadataModel(org.apache.archiva.metadata.repository.cassandra.model.ProjectVersionMetadataModel) ChecksumAlgorithm(org.apache.archiva.checksum.ChecksumAlgorithm) Project(org.apache.archiva.metadata.repository.cassandra.model.Project) StreamSupport(java.util.stream.StreamSupport) Organization(org.apache.archiva.metadata.model.Organization) FacetedMetadata(org.apache.archiva.metadata.model.FacetedMetadata) Scm(org.apache.archiva.metadata.model.Scm) LinkedList(java.util.LinkedList) Row(com.datastax.oss.driver.api.core.cql.Row) RegularInsert(com.datastax.oss.driver.api.querybuilder.insert.RegularInsert) Logger(org.slf4j.Logger) Properties(java.util.Properties) Iterator(java.util.Iterator) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) Consumer(java.util.function.Consumer) MetadataResolutionException(org.apache.archiva.metadata.repository.MetadataResolutionException) MetadataFacetModel(org.apache.archiva.metadata.repository.cassandra.model.MetadataFacetModel) Comparator(java.util.Comparator) Delete(com.datastax.oss.driver.api.querybuilder.delete.Delete) Select(com.datastax.oss.driver.api.querybuilder.select.Select) ResultSet(com.datastax.oss.driver.api.core.cql.ResultSet) MetadataFacet(org.apache.archiva.metadata.model.MetadataFacet) Update(com.datastax.oss.driver.api.querybuilder.update.Update) CqlSession(com.datastax.oss.driver.api.core.CqlSession) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

CqlSession (com.datastax.oss.driver.api.core.CqlSession)1 ColumnDefinition (com.datastax.oss.driver.api.core.cql.ColumnDefinition)1 ResultSet (com.datastax.oss.driver.api.core.cql.ResultSet)1 Row (com.datastax.oss.driver.api.core.cql.Row)1 ClusteringOrder (com.datastax.oss.driver.api.core.metadata.schema.ClusteringOrder)1 QueryBuilder (com.datastax.oss.driver.api.querybuilder.QueryBuilder)1 Delete (com.datastax.oss.driver.api.querybuilder.delete.Delete)1 Insert (com.datastax.oss.driver.api.querybuilder.insert.Insert)1 RegularInsert (com.datastax.oss.driver.api.querybuilder.insert.RegularInsert)1 Select (com.datastax.oss.driver.api.querybuilder.select.Select)1 Update (com.datastax.oss.driver.api.querybuilder.update.Update)1 UpdateStart (com.datastax.oss.driver.api.querybuilder.update.UpdateStart)1 UpdateWithAssignments (com.datastax.oss.driver.api.querybuilder.update.UpdateWithAssignments)1 Instant (java.time.Instant)1 ZonedDateTime (java.time.ZonedDateTime)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Comparator (java.util.Comparator)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1