Search in sources :

Example 1 with Insert

use of com.datastax.oss.driver.api.querybuilder.insert.Insert in project archiva by apache.

the class CassandraMetadataRepository method updateArtifact.

@Override
public void updateArtifact(RepositorySession repositorySession, String repositoryId, String namespaceId, String projectId, String projectVersion, ArtifactMetadata artifactMeta) throws MetadataRepositoryException {
    Namespace namespace = getNamespace(repositoryId, namespaceId);
    if (namespace == null) {
        namespace = updateOrAddNamespace(repositoryId, namespaceId);
    }
    ProjectMetadata projectMetadata = new ProjectMetadata();
    projectMetadata.setId(projectId);
    projectMetadata.setNamespace(namespaceId);
    updateProject(repositorySession, repositoryId, projectMetadata);
    String key = new ArtifactMetadataModel.KeyBuilder().withNamespace(namespace).withProject(projectId).withId(artifactMeta.getId()).withProjectVersion(projectVersion).build();
    String table = this.cassandraArchivaManager.getArtifactMetadataFamilyName();
    CqlSession session = cassandraArchivaManager.getSession();
    {
        Update update = update(table).setColumn(ID.toString(), // 
        literal(artifactMeta.getId())).setColumn(REPOSITORY_NAME.toString(), // 
        literal(repositoryId)).setColumn(NAMESPACE_ID.toString(), // 
        literal(namespaceId)).setColumn(PROJECT_ID.toString(), // 
        literal(artifactMeta.getProject())).setColumn(PROJECT_VERSION.toString(), // 
        literal(projectVersion)).setColumn(VERSION.toString(), // 
        literal(artifactMeta.getVersion())).setColumn(FILE_LAST_MODIFIED.toString(), // 
        literal(artifactMeta.getFileLastModified().toInstant().toEpochMilli())).setColumn(SIZE.toString(), // 
        literal(artifactMeta.getSize())).setColumn((WHEN_GATHERED.toString()), literal(artifactMeta.getWhenGathered().toInstant().toEpochMilli())).whereColumn(DEFAULT_PRIMARY_KEY).isEqualTo(literal(key));
        session.execute(update.build()).wasApplied();
        removeChecksums(key);
        recordChecksums(repositoryId, key, mapChecksums(artifactMeta.getChecksums()));
        key = // 
        new ProjectVersionMetadataModel.KeyBuilder().withRepository(// 
        repositoryId).withNamespace(// 
        namespace).withProjectId(// 
        projectId).withProjectVersion(// 
        projectVersion).withId(// 
        artifactMeta.getId()).build();
        table = cassandraArchivaManager.getProjectVersionMetadataFamilyName();
        Insert insert = insertInto(table).value(DEFAULT_PRIMARY_KEY, literal(key)).value(REPOSITORY_NAME.toString(), literal(repositoryId)).value(NAMESPACE_ID.toString(), literal(namespaceId)).value(PROJECT_ID.toString(), literal(projectId)).value(PROJECT_VERSION.toString(), literal(projectVersion)).value(VERSION.toString(), literal(artifactMeta.getVersion())).ifNotExists();
        session.execute(insert.build());
    }
    ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
    artifactMetadataModel.setRepositoryId(repositoryId);
    artifactMetadataModel.setNamespace(namespaceId);
    artifactMetadataModel.setProject(projectId);
    artifactMetadataModel.setProjectVersion(projectVersion);
    artifactMetadataModel.setVersion(artifactMeta.getVersion());
    artifactMetadataModel.setFileLastModified(artifactMeta.getFileLastModified() == null ? ZonedDateTime.now().toInstant().toEpochMilli() : artifactMeta.getFileLastModified().toInstant().toEpochMilli());
    artifactMetadataModel.setChecksums(mapChecksums(artifactMeta.getChecksums()));
    // now facets
    updateFacets(artifactMeta, artifactMetadataModel);
}
Also used : ArtifactMetadataModel(org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel) ProjectMetadata(org.apache.archiva.metadata.model.ProjectMetadata) Update(com.datastax.oss.driver.api.querybuilder.update.Update) Insert(com.datastax.oss.driver.api.querybuilder.insert.Insert) RegularInsert(com.datastax.oss.driver.api.querybuilder.insert.RegularInsert) CqlSession(com.datastax.oss.driver.api.core.CqlSession) Namespace(org.apache.archiva.metadata.repository.cassandra.model.Namespace)

Example 2 with Insert

use of com.datastax.oss.driver.api.querybuilder.insert.Insert in project jnosql-diana-driver by eclipse.

the class DefaultCassandraColumnFamilyManager method save.

@Override
public ColumnEntity save(ColumnEntity entity, ConsistencyLevel level) {
    requireNonNull(entity, "entities is required");
    requireNonNull(level, "level is required");
    final Insert insert = QueryUtils.insert(entity, keyspace, session, null);
    session.execute(insert.build().setConsistencyLevel(level));
    return entity;
}
Also used : Insert(com.datastax.oss.driver.api.querybuilder.insert.Insert)

Example 3 with Insert

use of com.datastax.oss.driver.api.querybuilder.insert.Insert in project jnosql-diana-driver by eclipse.

the class DefaultCassandraColumnFamilyManager method insert.

@Override
public ColumnEntity insert(ColumnEntity entity, Duration duration) {
    requireNonNull(entity, "entity is required");
    requireNonNull(duration, "duration is required");
    final Insert insert = QueryUtils.insert(entity, keyspace, session, duration);
    session.execute(insert.build());
    return entity;
}
Also used : Insert(com.datastax.oss.driver.api.querybuilder.insert.Insert)

Example 4 with Insert

use of com.datastax.oss.driver.api.querybuilder.insert.Insert in project jnosql-diana-driver by eclipse.

the class DefaultCassandraColumnFamilyManager method save.

@Override
public ColumnEntity save(ColumnEntity entity, Duration ttl, ConsistencyLevel level) {
    requireNonNull(entity, "entity is required");
    requireNonNull(level, "level is required");
    requireNonNull(ttl, "ttl is required");
    final Insert insert = QueryUtils.insert(entity, keyspace, session, ttl);
    session.execute(insert.build().setConsistencyLevel(level));
    return entity;
}
Also used : Insert(com.datastax.oss.driver.api.querybuilder.insert.Insert)

Example 5 with Insert

use of com.datastax.oss.driver.api.querybuilder.insert.Insert in project jnosql-diana-driver by eclipse.

the class DefaultCassandraColumnFamilyManager method insert.

@Override
public ColumnEntity insert(ColumnEntity entity) {
    requireNonNull(entity, "entity is required");
    final Insert insert = QueryUtils.insert(entity, keyspace, session, null);
    session.execute(insert.build());
    return entity;
}
Also used : Insert(com.datastax.oss.driver.api.querybuilder.insert.Insert)

Aggregations

Insert (com.datastax.oss.driver.api.querybuilder.insert.Insert)5 CqlSession (com.datastax.oss.driver.api.core.CqlSession)1 RegularInsert (com.datastax.oss.driver.api.querybuilder.insert.RegularInsert)1 Update (com.datastax.oss.driver.api.querybuilder.update.Update)1 ProjectMetadata (org.apache.archiva.metadata.model.ProjectMetadata)1 ArtifactMetadataModel (org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel)1 Namespace (org.apache.archiva.metadata.repository.cassandra.model.Namespace)1