This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit d02792264dc55dceb0643b5922c61b74092e9682
Author: Benoit Tellier <[email protected]>
AuthorDate: Mon Apr 13 14:18:02 2020 +0700

    [REFACTORING] Remove unused CassandraAttachmentDAO
    
    Also remove associated table.
    
    Since schema version 5 is required, this DAO is no longer required.
---
 .../cassandra/mail/CassandraAttachmentDAO.java     | 138 ---------------------
 .../modules/CassandraAttachmentModule.java         |  13 +-
 .../cassandra/table/CassandraAttachmentTable.java  |  31 -----
 3 files changed, 3 insertions(+), 179 deletions(-)

diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java
deleted file mode 100644
index f954ed7..0000000
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.mailbox.cassandra.mail;
-
-import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker;
-import static com.datastax.driver.core.querybuilder.QueryBuilder.delete;
-import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
-import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
-import static com.datastax.driver.core.querybuilder.QueryBuilder.select;
-import static 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.FIELDS;
-import static 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.ID;
-import static 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.PAYLOAD;
-import static 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.SIZE;
-import static 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.TABLE_NAME;
-import static 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.TYPE;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-import javax.inject.Inject;
-
-import 
org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
-import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
-import org.apache.james.mailbox.model.Attachment;
-import org.apache.james.mailbox.model.AttachmentId;
-
-import com.datastax.driver.core.PreparedStatement;
-import com.datastax.driver.core.Row;
-import com.datastax.driver.core.Session;
-import com.google.common.base.Preconditions;
-
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-public class CassandraAttachmentDAO {
-
-    private final CassandraAsyncExecutor cassandraAsyncExecutor;
-    private CassandraConfiguration configuration;
-    private final PreparedStatement insertStatement;
-    private final PreparedStatement deleteStatement;
-    private final PreparedStatement selectStatement;
-    private final PreparedStatement selectAllStatement;
-
-    @Inject
-    public CassandraAttachmentDAO(Session session, CassandraConfiguration 
configuration) {
-        this.cassandraAsyncExecutor = new CassandraAsyncExecutor(session);
-
-        this.selectStatement = prepareSelect(session);
-        this.selectAllStatement = prepareSelectAll(session);
-        this.deleteStatement = prepareDelete(session);
-        this.insertStatement = prepareInsert(session);
-        this.configuration = configuration;
-    }
-
-    private PreparedStatement prepareDelete(Session session) {
-        return session.prepare(
-            delete()
-                .from(TABLE_NAME)
-                .where(eq(ID, bindMarker(ID))));
-    }
-
-    private PreparedStatement prepareInsert(Session session) {
-        return session.prepare(
-            insertInto(TABLE_NAME)
-                .value(ID, bindMarker(ID))
-                .value(PAYLOAD, bindMarker(PAYLOAD))
-                .value(TYPE, bindMarker(TYPE))
-                .value(SIZE, bindMarker(SIZE)));
-    }
-
-    private PreparedStatement prepareSelect(Session session) {
-        return session.prepare(select(FIELDS)
-            .from(TABLE_NAME)
-            .where(eq(ID, bindMarker(ID))));
-    }
-
-    private PreparedStatement prepareSelectAll(Session session) {
-        return session.prepare(select(FIELDS)
-            .from(TABLE_NAME));
-    }
-
-    public Mono<Attachment> getAttachment(AttachmentId attachmentId) {
-        Preconditions.checkArgument(attachmentId != null);
-        return cassandraAsyncExecutor.executeSingleRow(
-            selectStatement.bind()
-                .setString(ID, attachmentId.getId()))
-            .map(this::attachment);
-    }
-
-    public Flux<Attachment> retrieveAll() {
-        return cassandraAsyncExecutor.executeRows(
-                selectAllStatement.bind()
-                    
.setReadTimeoutMillis(configuration.getAttachmentV2MigrationReadTimeout())
-                    .setFetchSize(1))
-            .map(this::attachment);
-    }
-
-    public Mono<Void> storeAttachment(Attachment attachment) throws 
IOException {
-        return cassandraAsyncExecutor.executeVoid(
-            insertStatement.bind()
-                .setString(ID, attachment.getAttachmentId().getId())
-                .setLong(SIZE, attachment.getSize())
-                .setString(TYPE, attachment.getType())
-                .setBytes(PAYLOAD, ByteBuffer.wrap(attachment.getBytes())));
-    }
-
-    public Mono<Void> deleteAttachment(AttachmentId attachmentId) {
-        return cassandraAsyncExecutor.executeVoid(
-            deleteStatement
-                .bind()
-                .setString(ID, attachmentId.getId()));
-    }
-
-    private Attachment attachment(Row row) {
-        return Attachment.builder()
-            .attachmentId(AttachmentId.from(row.getString(ID)))
-            .bytes(row.getBytes(PAYLOAD).array())
-            .type(row.getString(TYPE))
-            .build();
-    }
-}
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAttachmentModule.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAttachmentModule.java
index 1db8dfc..0442b37 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAttachmentModule.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAttachmentModule.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.cassandra.modules;
 
 import static com.datastax.driver.core.DataType.bigint;
-import static com.datastax.driver.core.DataType.blob;
 import static com.datastax.driver.core.DataType.text;
 import static com.datastax.driver.core.DataType.uuid;
 
@@ -28,21 +27,13 @@ import 
org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.backends.cassandra.utils.CassandraConstants;
 import 
org.apache.james.mailbox.cassandra.table.CassandraAttachmentMessageIdTable;
 import org.apache.james.mailbox.cassandra.table.CassandraAttachmentOwnerTable;
-import org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable;
 import org.apache.james.mailbox.cassandra.table.CassandraAttachmentV2Table;
 
 import com.datastax.driver.core.schemabuilder.SchemaBuilder;
 
 public interface CassandraAttachmentModule {
 
-    CassandraModule MODULE = 
CassandraModule.table(CassandraAttachmentTable.TABLE_NAME)
-        .comment("Holds attachment for fast attachment retrieval")
-        .statement(statement -> statement
-            .addPartitionKey(CassandraAttachmentTable.ID, text())
-            .addColumn(CassandraAttachmentTable.PAYLOAD, blob())
-            .addColumn(CassandraAttachmentTable.TYPE, text())
-            .addColumn(CassandraAttachmentTable.SIZE, bigint()))
-        .table(CassandraAttachmentV2Table.TABLE_NAME)
+    CassandraModule MODULE = 
CassandraModule.table(CassandraAttachmentV2Table.TABLE_NAME)
         .comment("Holds attachment for fast attachment retrieval. Content of 
messages is stored" +
             "in `blobs` and `blobparts` tables.")
         .options(options -> options
@@ -55,6 +46,7 @@ public interface CassandraAttachmentModule {
             .addColumn(CassandraAttachmentV2Table.BLOB_ID, text())
             .addColumn(CassandraAttachmentV2Table.TYPE, text())
             .addColumn(CassandraAttachmentV2Table.SIZE, bigint()))
+
         .table(CassandraAttachmentMessageIdTable.TABLE_NAME)
         .comment("Holds ids of messages owning the attachment")
         .options(options -> options
@@ -65,6 +57,7 @@ public interface CassandraAttachmentModule {
             
.addPartitionKey(CassandraAttachmentMessageIdTable.ATTACHMENT_ID_AS_UUID, 
uuid())
             .addColumn(CassandraAttachmentMessageIdTable.ATTACHMENT_ID, text())
             .addClusteringColumn(CassandraAttachmentMessageIdTable.MESSAGE_ID, 
text()))
+
         .table(CassandraAttachmentOwnerTable.TABLE_NAME)
         .comment("Holds explicit owners of some attachments")
         .options(options -> options
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentTable.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentTable.java
deleted file mode 100644
index a7115eb..0000000
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentTable.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.mailbox.cassandra.table;
-
-public interface CassandraAttachmentTable {
-
-    String TABLE_NAME = "attachment";
-    String ID = "id";
-    String PAYLOAD = "payload";
-    String TYPE = "type";
-    String SIZE = "size";
-    String[] FIELDS = { ID, PAYLOAD, TYPE, SIZE };
-
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to