You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/12/06 08:03:52 UTC
[james-project] 01/15: [PERF] Adopt CqlIdentifier in mailbox/cassandra
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 6f33b2c3369a81f73797f09372d836061d9bcbd5
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Dec 2 12:10:58 2022 +0700
[PERF] Adopt CqlIdentifier in mailbox/cassandra
---
.../cassandra/mail/CassandraApplicableFlagDAO.java | 4 +-
.../cassandra/mail/CassandraMessageDAO.java | 7 +--
.../cassandra/mail/CassandraMessageDAOV3.java | 26 ++++------
.../cassandra/mail/CassandraMessageIdDAO.java | 59 +++++++++-------------
.../mail/CassandraMessageIdToImapUidDAO.java | 36 +++++--------
.../mailbox/cassandra/mail/FlagsExtractor.java | 9 ++--
.../cassandra/mail/utils/MailboxBaseTupleUtil.java | 2 +-
.../cassandra/modules/CassandraMailboxModule.java | 4 +-
.../cassandra/modules/CassandraMessageModule.java | 4 +-
.../mailbox/cassandra/table/CassandraACLTable.java | 8 +--
.../cassandra/table/CassandraACLV2Table.java | 8 +--
.../cassandra/table/CassandraAnnotationTable.java | 14 ++---
.../table/CassandraApplicableFlagTable.java | 6 +--
.../table/CassandraAttachmentMessageIdTable.java | 10 ++--
.../table/CassandraAttachmentOwnerTable.java | 7 +--
.../table/CassandraAttachmentV2Table.java | 16 +++---
.../cassandra/table/CassandraCurrentQuota.java | 8 +--
.../table/CassandraDeletedMessageTable.java | 6 ++-
.../cassandra/table/CassandraDomainMaxQuota.java | 8 +--
.../cassandra/table/CassandraFirstUnseenTable.java | 6 ++-
.../cassandra/table/CassandraGlobalMaxQuota.java | 8 +--
.../table/CassandraMailboxCountersTable.java | 8 +--
.../cassandra/table/CassandraMailboxPathTable.java | 34 -------------
.../table/CassandraMailboxPathV2Table.java | 36 -------------
.../table/CassandraMailboxPathV3Table.java | 14 ++---
.../table/CassandraMailboxRecentsTable.java | 6 ++-
.../cassandra/table/CassandraMailboxTable.java | 15 +++---
.../mailbox/cassandra/table/CassandraMaxQuota.java | 8 +--
.../cassandra/table/CassandraMessageIdTable.java | 12 ++---
.../cassandra/table/CassandraMessageIds.java | 11 ++--
.../table/CassandraMessageModseqTable.java | 6 ++-
.../cassandra/table/CassandraMessageUidTable.java | 6 ++-
.../cassandra/table/CassandraMessageV2Table.java | 34 +++++++------
.../cassandra/table/CassandraMessageV3Table.java | 57 +++++++++------------
.../table/CassandraSubscriptionTable.java | 7 +--
.../table/CassandraThreadLookupTable.java | 7 +--
.../cassandra/table/CassandraThreadTable.java | 11 ++--
.../table/CassandraUserMailboxRightsTable.java | 8 +--
.../apache/james/mailbox/cassandra/table/Flag.java | 53 +++++++++----------
.../cassandra/table/MessageIdToImapUid.java | 15 ++----
.../cassandra/mail/CassandraMessageIdDAOTest.java | 17 +++----
41 files changed, 268 insertions(+), 353 deletions(-)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraApplicableFlagDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraApplicableFlagDAO.java
index 16e460085e..9d8270902d 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraApplicableFlagDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraApplicableFlagDAO.java
@@ -23,7 +23,6 @@ import static com.datastax.oss.driver.api.querybuilder.QueryBuilder.bindMarker;
import static com.datastax.oss.driver.api.querybuilder.QueryBuilder.deleteFrom;
import static com.datastax.oss.driver.api.querybuilder.QueryBuilder.selectFrom;
import static com.datastax.oss.driver.api.querybuilder.relation.Relation.column;
-import static org.apache.james.mailbox.cassandra.table.CassandraApplicableFlagTable.FIELDS;
import static org.apache.james.mailbox.cassandra.table.CassandraApplicableFlagTable.MAILBOX_ID;
import static org.apache.james.mailbox.cassandra.table.CassandraApplicableFlagTable.TABLE_NAME;
import static org.apache.james.mailbox.cassandra.table.Flag.USER_FLAGS;
@@ -35,6 +34,7 @@ import javax.mail.Flags;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
+import org.apache.james.mailbox.cassandra.table.Flag;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
@@ -58,7 +58,7 @@ public class CassandraApplicableFlagDAO {
private PreparedStatement prepareSelect(CqlSession session) {
return session.prepare(selectFrom(TABLE_NAME)
- .columns(FIELDS)
+ .columns(Flag.USER_FLAGS)
.where(column(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID)))
.build());
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
index a852986ec8..876daffdb9 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
@@ -69,6 +69,7 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.Property;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.config.DriverExecutionProfile;
import com.datastax.oss.driver.api.core.cql.BoundStatement;
@@ -208,7 +209,7 @@ public class CassandraMessageDAO {
}
private UdtValue toUDT(MessageAttachmentMetadata messageAttachment) {
- UdtValue result = typesProvider.getDefinedUserType(ATTACHMENTS)
+ UdtValue result = typesProvider.getDefinedUserType(ATTACHMENTS.asCql(true))
.newValue()
.setString(Attachments.ID, messageAttachment.getAttachmentId().getId())
.setBoolean(Attachments.IS_INLINE, messageAttachment.isInline());
@@ -228,7 +229,7 @@ public class CassandraMessageDAO {
return message.getProperties()
.toProperties()
.stream()
- .map(property -> typesProvider.getDefinedUserType(PROPERTIES)
+ .map(property -> typesProvider.getDefinedUserType(PROPERTIES.asCql(true))
.newValue()
.setString(Properties.NAMESPACE, property.getNamespace())
.setString(Properties.NAME, property.getLocalName())
@@ -346,7 +347,7 @@ public class CassandraMessageDAO {
return Mono.from(blobStore.readBytes(blobStore.getDefaultBucketName(), blobId, storagePolicy));
}
- private BlobId retrieveBlobId(String field, Row row) {
+ private BlobId retrieveBlobId(CqlIdentifier field, Row row) {
return blobIdFactory.from(row.getString(field));
}
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAOV3.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAOV3.java
index 5e6240279c..3b2ea9b4e4 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAOV3.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAOV3.java
@@ -35,16 +35,11 @@ import static org.apache.james.blob.api.BlobStore.StoragePolicy.SIZE_BASED;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.ATTACHMENTS;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_CONTENT;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_CONTENT_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_OCTECTS;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_START_OCTET;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_START_OCTET_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.FULL_CONTENT_OCTETS;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.FULL_CONTENT_OCTETS_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.HEADER_CONTENT;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.HEADER_CONTENT_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.INTERNAL_DATE;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.INTERNAL_DATE_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.Properties.CONTENT_DESCRIPTION;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.Properties.CONTENT_DISPOSITION_PARAMETERS;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.Properties.CONTENT_DISPOSITION_TYPE;
@@ -58,7 +53,6 @@ import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.P
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.Properties.SUB_TYPE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.TABLE_NAME;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.TEXTUAL_LINE_COUNT;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.TEXTUAL_LINE_COUNT_LOWERCASE;
import java.io.IOException;
import java.io.InputStream;
@@ -91,6 +85,7 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.impl.Properties;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.config.DriverExecutionProfile;
import com.datastax.oss.driver.api.core.cql.BoundStatement;
@@ -100,6 +95,7 @@ import com.datastax.oss.driver.api.core.cql.Row;
import com.datastax.oss.driver.api.core.data.UdtValue;
import com.datastax.oss.driver.api.core.type.UserDefinedType;
import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
+import com.datastax.oss.driver.api.core.type.codec.TypeCodecs;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
import com.google.common.collect.ImmutableList;
import com.google.common.io.ByteSource;
@@ -138,7 +134,7 @@ public class CassandraMessageDAOV3 {
this.select = prepareSelect(session);
this.listBlobs = prepareSelectBlobs(session);
this.cidParser = Cid.parser().relaxed();
- this.attachmentsType = typesProvider.getDefinedUserType(ATTACHMENTS);
+ this.attachmentsType = typesProvider.getDefinedUserType(ATTACHMENTS.asCql(true));
}
private PreparedStatement prepareSelect(CqlSession session) {
@@ -348,9 +344,9 @@ public class CassandraMessageDAOV3 {
.map(content ->
new MessageRepresentation(
cassandraMessageId,
- Optional.ofNullable(row.getInstant(INTERNAL_DATE_LOWERCASE)).map(Date::from).orElse(null),
- row.getLong(FULL_CONTENT_OCTETS_LOWERCASE),
- row.getInt(BODY_START_OCTET_LOWERCASE),
+ Optional.ofNullable(row.get(INTERNAL_DATE, TypeCodecs.TIMESTAMP)).map(Date::from).orElse(null),
+ row.getLong(FULL_CONTENT_OCTETS),
+ row.getInt(BODY_START_OCTET),
content,
getProperties(row),
getAttachments(row).collect(ImmutableList.toImmutableList()),
@@ -371,7 +367,7 @@ public class CassandraMessageDAOV3 {
property.setContentLanguage(row.get(CONTENT_LANGUAGE, LIST_OF_STRINGS_CODEC));
property.setContentDispositionParameters(row.get(CONTENT_DISPOSITION_PARAMETERS, MAP_OF_STRINGS_CODEC));
property.setContentTypeParameters(row.get(CONTENT_TYPE_PARAMETERS, MAP_OF_STRINGS_CODEC));
- property.setTextualLineCount(row.getLong(TEXTUAL_LINE_COUNT_LOWERCASE));
+ property.setTextualLineCount(row.getLong(TEXTUAL_LINE_COUNT));
return property.build();
}
@@ -422,14 +418,14 @@ public class CassandraMessageDAOV3 {
return Mono.from(blobStore.readBytes(blobStore.getDefaultBucketName(), blobId, storagePolicy));
}
- private BlobId retrieveBlobId(String field, Row row) {
- return blobIdFactory.from(row.getString(field));
+ private BlobId retrieveBlobId(CqlIdentifier field, Row row) {
+ return blobIdFactory.from(row.get(field, TypeCodecs.TEXT));
}
Flux<BlobId> listBlobs() {
return cassandraAsyncExecutor.executeRows(listBlobs.bind())
.flatMapIterable(row -> ImmutableList.of(
- blobIdFactory.from(row.getString(HEADER_CONTENT_LOWERCASE)),
- blobIdFactory.from(row.getString(BODY_CONTENT_LOWERCASE))));
+ blobIdFactory.from(row.get(HEADER_CONTENT, TypeCodecs.TEXT)),
+ blobIdFactory.from(row.get(BODY_CONTENT, TypeCodecs.TEXT))));
}
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
index 6d950d997f..8e4d26823a 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
@@ -30,17 +30,11 @@ import static org.apache.james.mailbox.cassandra.table.CassandraMessageIdTable.T
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIdTable.THREAD_ID;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.IMAP_UID;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MAILBOX_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MAILBOX_ID_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_START_OCTET;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_START_OCTET_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.FULL_CONTENT_OCTETS;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.FULL_CONTENT_OCTETS_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.HEADER_CONTENT;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.HEADER_CONTENT_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.INTERNAL_DATE;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.INTERNAL_DATE_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.Flag.ANSWERED;
import static org.apache.james.mailbox.cassandra.table.Flag.DELETED;
import static org.apache.james.mailbox.cassandra.table.Flag.DRAFT;
@@ -49,15 +43,11 @@ import static org.apache.james.mailbox.cassandra.table.Flag.RECENT;
import static org.apache.james.mailbox.cassandra.table.Flag.SEEN;
import static org.apache.james.mailbox.cassandra.table.Flag.USER;
import static org.apache.james.mailbox.cassandra.table.Flag.USER_FLAGS;
-import static org.apache.james.mailbox.cassandra.table.Flag.USER_FLAGS_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.MOD_SEQ;
-import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.MOD_SEQ_LOWERCASE;
-import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.THREAD_ID_LOWERCASE;
import static org.apache.james.util.ReactorUtils.publishIfPresent;
import java.time.Duration;
import java.util.Date;
-import java.util.Locale;
import java.util.Optional;
import java.util.UUID;
@@ -84,6 +74,7 @@ import com.datastax.oss.driver.api.core.cql.BoundStatement;
import com.datastax.oss.driver.api.core.cql.BoundStatementBuilder;
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
import com.datastax.oss.driver.api.core.cql.Row;
+import com.datastax.oss.driver.api.core.type.codec.TypeCodecs;
import com.datastax.oss.driver.api.querybuilder.QueryBuilder;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
@@ -261,16 +252,16 @@ public class CassandraMessageIdDAO {
QueryBuilder.selectFrom(TABLE_NAME)
.columns(IMAP_UID,
MESSAGE_ID,
- THREAD_ID_LOWERCASE,
- ANSWERED.toLowerCase(Locale.US),
- DELETED.toLowerCase(Locale.US),
- DRAFT.toLowerCase(Locale.US),
- RECENT.toLowerCase(Locale.US),
- SEEN.toLowerCase(Locale.US),
- FLAGGED.toLowerCase(Locale.US),
- USER.toLowerCase(Locale.US),
- USER_FLAGS_LOWERCASE,
- MOD_SEQ_LOWERCASE)
+ THREAD_ID,
+ ANSWERED,
+ DELETED,
+ DRAFT,
+ RECENT,
+ SEEN,
+ FLAGGED,
+ USER,
+ USER_FLAGS,
+ MOD_SEQ)
.where(column(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID)),
column(IMAP_UID).isGreaterThanOrEqualTo(bindMarker(IMAP_UID_GTE)),
column(IMAP_UID).isLessThanOrEqualTo(bindMarker(IMAP_UID_LTE)))
@@ -281,7 +272,7 @@ public class CassandraMessageIdDAO {
return session.prepare(
QueryBuilder.selectFrom(TABLE_NAME)
.columns(IMAP_UID,
- DELETED.toLowerCase(Locale.US))
+ DELETED)
.where(column(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID)),
column(IMAP_UID).isGreaterThanOrEqualTo(bindMarker(IMAP_UID_GTE)),
column(IMAP_UID).isLessThanOrEqualTo(bindMarker(IMAP_UID_LTE)))
@@ -425,19 +416,19 @@ public class CassandraMessageIdDAO {
public Flux<MessageUid> listUids(CassandraId mailboxId) {
return cassandraAsyncExecutor.executeRows(selectAllUids.bind()
- .setUuid(MAILBOX_ID, mailboxId.asUuid()))
- .map(row -> MessageUid.of(row.getLong(IMAP_UID)));
+ .set(MAILBOX_ID, mailboxId.asUuid(), TypeCodecs.TIMEUUID))
+ .map(row -> MessageUid.of(row.getLong(0)));
}
public Flux<ComposedMessageIdWithMetaData> listMessagesMetadata(CassandraId mailboxId, MessageRange range) {
return cassandraAsyncExecutor.executeRows(selectMetadataRange.bind()
- .setUuid(MAILBOX_ID, mailboxId.asUuid())
+ .set(MAILBOX_ID, mailboxId.asUuid(), TypeCodecs.TIMEUUID)
.setLong(IMAP_UID_GTE, range.getUidFrom().asLong())
.setLong(IMAP_UID_LTE, range.getUidTo().asLong()))
.map(row -> {
- CassandraMessageId messageId = CassandraMessageId.Factory.of(row.getUuid(MESSAGE_ID_LOWERCASE));
+ CassandraMessageId messageId = CassandraMessageId.Factory.of(row.getUuid(MESSAGE_ID));
return ComposedMessageIdWithMetaData.builder()
- .modSeq(ModSeq.of(row.getLong(MOD_SEQ_LOWERCASE)))
+ .modSeq(ModSeq.of(row.getLong(MOD_SEQ)))
.threadId(getThreadIdFromRow(row, messageId))
.flags(FlagsExtractor.getFlags(row))
.composedMessageId(new ComposedMessageId(mailboxId,
@@ -535,28 +526,28 @@ public class CassandraMessageIdDAO {
.subscribe();
return Optional.empty();
}
- final CassandraMessageId messageId = CassandraMessageId.Factory.of(row.getUuid(MESSAGE_ID_LOWERCASE));
+ final CassandraMessageId messageId = CassandraMessageId.Factory.of(row.getUuid(MESSAGE_ID));
return Optional.of(CassandraMessageMetadata.builder()
.ids(ComposedMessageIdWithMetaData.builder()
.composedMessageId(new ComposedMessageId(
- CassandraId.of(row.getUuid(MAILBOX_ID_LOWERCASE)),
+ CassandraId.of(row.getUuid(MAILBOX_ID)),
messageId,
MessageUid.of(row.getLong(IMAP_UID))))
.flags(FlagsExtractor.getFlags(row))
- .modSeq(ModSeq.of(row.getLong(MOD_SEQ_LOWERCASE)))
+ .modSeq(ModSeq.of(row.getLong(MOD_SEQ)))
.threadId(getThreadIdFromRow(row, messageId))
.build())
- .bodyStartOctet(row.get(BODY_START_OCTET_LOWERCASE, Integer.class))
- .internalDate(Optional.ofNullable(row.getInstant(INTERNAL_DATE_LOWERCASE))
+ .bodyStartOctet(row.get(BODY_START_OCTET, Integer.class))
+ .internalDate(Optional.ofNullable(row.getInstant(INTERNAL_DATE))
.map(Date::from))
- .size(row.get(FULL_CONTENT_OCTETS_LOWERCASE, Long.class))
- .headerContent(Optional.ofNullable(row.getString(HEADER_CONTENT_LOWERCASE))
+ .size(row.get(FULL_CONTENT_OCTETS, Long.class))
+ .headerContent(Optional.ofNullable(row.getString(HEADER_CONTENT))
.map(blobIdFactory::from))
.build());
}
private ThreadId getThreadIdFromRow(Row row, MessageId messageId) {
- UUID threadIdUUID = row.getUuid(THREAD_ID_LOWERCASE);
+ UUID threadIdUUID = row.getUuid(THREAD_ID);
if (threadIdUUID == null) {
return ThreadId.fromBaseMessageId(messageId);
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdToImapUidDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdToImapUidDAO.java
index 26e4d2da46..824f7f3038 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdToImapUidDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdToImapUidDAO.java
@@ -28,17 +28,11 @@ import static com.datastax.oss.driver.api.querybuilder.update.Assignment.setColu
import static org.apache.james.backends.cassandra.init.configuration.JamesExecutionProfiles.ConsistencyChoice.STRONG;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.IMAP_UID;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MAILBOX_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MAILBOX_ID_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_START_OCTET;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.BODY_START_OCTET_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.FULL_CONTENT_OCTETS;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.FULL_CONTENT_OCTETS_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.HEADER_CONTENT;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.HEADER_CONTENT_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.INTERNAL_DATE;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageV3Table.INTERNAL_DATE_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.Flag.ANSWERED;
import static org.apache.james.mailbox.cassandra.table.Flag.DELETED;
import static org.apache.james.mailbox.cassandra.table.Flag.DRAFT;
@@ -48,10 +42,8 @@ import static org.apache.james.mailbox.cassandra.table.Flag.SEEN;
import static org.apache.james.mailbox.cassandra.table.Flag.USER;
import static org.apache.james.mailbox.cassandra.table.Flag.USER_FLAGS;
import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.MOD_SEQ;
-import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.MOD_SEQ_LOWERCASE;
import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.TABLE_NAME;
import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.THREAD_ID;
-import static org.apache.james.mailbox.cassandra.table.MessageIdToImapUid.THREAD_ID_LOWERCASE;
import java.time.Duration;
import java.util.Date;
@@ -226,7 +218,7 @@ public class CassandraMessageIdToImapUidDAO {
private PreparedStatement prepareSelectAll() {
return session.prepare(selectFrom(TABLE_NAME)
.all()
- .where(column(MESSAGE_ID_LOWERCASE).isEqualTo(bindMarker(MESSAGE_ID_LOWERCASE)))
+ .where(column(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID)))
.build());
}
@@ -237,8 +229,8 @@ public class CassandraMessageIdToImapUidDAO {
private PreparedStatement prepareSelect() {
return session.prepare(selectFrom(TABLE_NAME)
.all()
- .where(column(MESSAGE_ID_LOWERCASE).isEqualTo(bindMarker(MESSAGE_ID_LOWERCASE)),
- column(MAILBOX_ID_LOWERCASE).isEqualTo(bindMarker(MAILBOX_ID_LOWERCASE)))
+ .where(column(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID)),
+ column(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID)))
.build());
}
@@ -391,28 +383,28 @@ public class CassandraMessageIdToImapUidDAO {
}
private CassandraMessageMetadata toComposedMessageIdWithMetadata(Row row) {
- final CassandraMessageId messageId = CassandraMessageId.Factory.of(row.getUuid(MESSAGE_ID_LOWERCASE));
+ final CassandraMessageId messageId = CassandraMessageId.Factory.of(row.getUuid(MESSAGE_ID));
return CassandraMessageMetadata.builder()
.ids(ComposedMessageIdWithMetaData.builder()
.composedMessageId(new ComposedMessageId(
- CassandraId.of(row.getUuid(MAILBOX_ID_LOWERCASE)),
+ CassandraId.of(row.getUuid(MAILBOX_ID)),
messageId,
MessageUid.of(row.getLong(IMAP_UID))))
.flags(FlagsExtractor.getFlags(row))
.threadId(getThreadIdFromRow(row, messageId))
- .modSeq(ModSeq.of(row.getLong(MOD_SEQ_LOWERCASE)))
+ .modSeq(ModSeq.of(row.getLong(MOD_SEQ)))
.build())
- .bodyStartOctet(row.get(BODY_START_OCTET_LOWERCASE, Integer.class))
- .internalDate(Optional.ofNullable(row.getInstant(INTERNAL_DATE_LOWERCASE))
+ .bodyStartOctet(row.get(BODY_START_OCTET, Integer.class))
+ .internalDate(Optional.ofNullable(row.getInstant(INTERNAL_DATE))
.map(Date::from))
- .size(row.get(FULL_CONTENT_OCTETS_LOWERCASE, Long.class))
- .headerContent(Optional.ofNullable(row.getString(HEADER_CONTENT_LOWERCASE))
+ .size(row.get(FULL_CONTENT_OCTETS, Long.class))
+ .headerContent(Optional.ofNullable(row.getString(HEADER_CONTENT))
.map(blobIdFactory::from))
.build();
}
private ThreadId getThreadIdFromRow(Row row, MessageId messageId) {
- UUID threadIdUUID = row.getUuid(THREAD_ID_LOWERCASE);
+ UUID threadIdUUID = row.getUuid(THREAD_ID);
if (threadIdUUID == null) {
return ThreadId.fromBaseMessageId(messageId);
}
@@ -422,9 +414,9 @@ public class CassandraMessageIdToImapUidDAO {
private BoundStatement selectStatement(CassandraMessageId messageId, Optional<CassandraId> mailboxId) {
return mailboxId
.map(cassandraId -> select.bind()
- .setUuid(MESSAGE_ID_LOWERCASE, messageId.get())
- .setUuid(MAILBOX_ID_LOWERCASE, cassandraId.asUuid()))
- .orElseGet(() -> selectAll.bind().setUuid(MESSAGE_ID_LOWERCASE, messageId.get()));
+ .setUuid(MESSAGE_ID, messageId.get())
+ .setUuid(MAILBOX_ID, cassandraId.asUuid()))
+ .orElseGet(() -> selectAll.bind().setUuid(MESSAGE_ID, messageId.get()));
}
private BoundStatement setExecutionProfileIfNeeded(BoundStatement statement, JamesExecutionProfiles.ConsistencyChoice consistencyChoice) {
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/FlagsExtractor.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/FlagsExtractor.java
index 7a58ce946a..e20871266e 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/FlagsExtractor.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/FlagsExtractor.java
@@ -27,6 +27,7 @@ import javax.mail.Flags;
import org.apache.james.mailbox.cassandra.table.Flag;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
import com.datastax.oss.driver.api.core.cql.Row;
import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
import com.datastax.oss.driver.api.core.type.codec.registry.CodecRegistry;
@@ -36,12 +37,12 @@ public class FlagsExtractor {
public static Flags getFlags(Row row) {
Flags flags = new Flags();
- for (String flag : Flag.ALL_LOWERCASE) {
- if (row.getBoolean(flag)) {
- flags.add(Flag.JAVAX_MAIL_FLAG.get(flag));
+ for (CqlIdentifier cqlId : Flag.ALL_LOWERCASE) {
+ if (row.getBoolean(cqlId)) {
+ flags.add(Flag.JAVAX_MAIL_FLAG.get(cqlId));
}
}
- row.get(Flag.USER_FLAGS_LOWERCASE, SET_OF_STRINGS_CODEC)
+ row.get(Flag.USER_FLAGS, SET_OF_STRINGS_CODEC)
.forEach(flags::add);
return flags;
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
index 6f88c5b70b..68a85f3064 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
@@ -33,7 +33,7 @@ public class MailboxBaseTupleUtil {
}
public UdtValue createMailboxBaseUDT(String namespace, Username user) {
- return typesProvider.getDefinedUserType(CassandraMailboxTable.MAILBOX_BASE)
+ return typesProvider.getDefinedUserType(CassandraMailboxTable.MAILBOX_BASE.asCql(true))
.newValue()
.setString(CassandraMailboxTable.MailboxBase.NAMESPACE, namespace)
.setString(CassandraMailboxTable.MailboxBase.USER, user.asString());
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
index e30cfea2f2..13457c012a 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
@@ -32,7 +32,7 @@ import org.apache.james.mailbox.cassandra.table.CassandraMailboxTable;
public interface CassandraMailboxModule {
CassandraModule MODULE = CassandraModule.builder()
- .type(CassandraMailboxTable.MAILBOX_BASE)
+ .type(CassandraMailboxTable.MAILBOX_BASE.asCql(true))
.statement(statement -> statement
.withField(CassandraMailboxTable.MailboxBase.NAMESPACE, TEXT)
.withField(CassandraMailboxTable.MailboxBase.USER, TEXT))
@@ -44,7 +44,7 @@ public interface CassandraMailboxModule {
.withLZ4Compression(8, 1))
.statement(statement -> types -> statement
.withPartitionKey(CassandraMailboxTable.ID, TIMEUUID)
- .withColumn(CassandraMailboxTable.MAILBOX_BASE, types.getDefinedUserType(CassandraMailboxTable.MAILBOX_BASE))
+ .withColumn(CassandraMailboxTable.MAILBOX_BASE, types.getDefinedUserType(CassandraMailboxTable.MAILBOX_BASE.asCql(true)))
.withColumn(CassandraMailboxTable.NAME, TEXT)
.withColumn(CassandraMailboxTable.UIDVALIDITY, BIGINT))
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java
index 5e57f99bab..96304e5af3 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java
@@ -132,12 +132,12 @@ public interface CassandraMessageModule {
.withColumn(CassandraMessageV3Table.Properties.CONTENT_DISPOSITION_PARAMETERS, frozenMapOf(TEXT, TEXT))
.withColumn(CassandraMessageV3Table.Properties.CONTENT_TYPE_PARAMETERS, frozenMapOf(TEXT, TEXT))
.withColumn(CassandraMessageV3Table.ATTACHMENTS, listOf(SchemaBuilder.udt(CassandraMessageV3Table.ATTACHMENTS, true))))
- .type(CassandraMessageV2Table.PROPERTIES)
+ .type(CassandraMessageV2Table.PROPERTIES.asCql(true))
.statement(statement -> statement
.withField(CassandraMessageV2Table.Properties.NAMESPACE, TEXT)
.withField(CassandraMessageV2Table.Properties.NAME, TEXT)
.withField(CassandraMessageV2Table.Properties.VALUE, TEXT))
- .type(CassandraMessageV2Table.ATTACHMENTS)
+ .type(CassandraMessageV2Table.ATTACHMENTS.asCql(true))
.statement(statement -> statement
.withField(CassandraMessageV2Table.Attachments.ID, TEXT)
.withField(CassandraMessageV2Table.Attachments.NAME, TEXT)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLTable.java
index 4b8d8b252f..d6b68db521 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLTable.java
@@ -19,10 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraACLTable {
String TABLE_NAME = "acl";
- String ID = "id";
- String ACL = "acl";
- String VERSION = "version";
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier ACL = CqlIdentifier.fromCql("acl");
+ CqlIdentifier VERSION = CqlIdentifier.fromCql("version");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLV2Table.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLV2Table.java
index 94d1ea1d14..3356f64b41 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLV2Table.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLV2Table.java
@@ -19,10 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraACLV2Table {
String TABLE_NAME = "aclv2";
- String ID = "id";
- String KEY = "key";
- String RIGHTS = "rights";
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier KEY = CqlIdentifier.fromCql("key");
+ CqlIdentifier RIGHTS = CqlIdentifier.fromCql("rights");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAnnotationTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAnnotationTable.java
index fcd11892ad..167a97bbb6 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAnnotationTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAnnotationTable.java
@@ -19,15 +19,17 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraAnnotationTable {
String TABLE_NAME = "annotation";
- String MAILBOX_ID = "mailboxId";
- String KEY = "key";
- String VALUE = "value";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier KEY = CqlIdentifier.fromCql("key");
+ CqlIdentifier VALUE = CqlIdentifier.fromCql("value");
- String GREATER_BIND_KEY = "greater_bind_key";
- String LESSER_BIND_KEY = "lesser_bind_key";
+ CqlIdentifier GREATER_BIND_KEY = CqlIdentifier.fromCql("greater_bind_key");
+ CqlIdentifier LESSER_BIND_KEY = CqlIdentifier.fromCql("lesser_bind_key");
- String[] SELECT_FIELDS = { KEY, VALUE };
+ CqlIdentifier[] SELECT_FIELDS = { KEY, VALUE };
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraApplicableFlagTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraApplicableFlagTable.java
index cb97028009..4d76ed1814 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraApplicableFlagTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraApplicableFlagTable.java
@@ -19,10 +19,10 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraApplicableFlagTable {
String TABLE_NAME = "applicableFlag";
- String MAILBOX_ID = "mailboxId";
-
- String[] FIELDS = { MAILBOX_ID, Flag.USER_FLAGS };
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentMessageIdTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentMessageIdTable.java
index 42655fb0aa..a6a5f1f976 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentMessageIdTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentMessageIdTable.java
@@ -19,12 +19,14 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraAttachmentMessageIdTable {
String TABLE_NAME = "attachmentMessageId";
- String ATTACHMENT_ID_AS_UUID = "attachmentIdAsUUID";
- String ATTACHMENT_ID = "attachmentId";
- String MESSAGE_ID = "messageId";
- String[] FIELDS = { ATTACHMENT_ID_AS_UUID, ATTACHMENT_ID, MESSAGE_ID };
+ CqlIdentifier ATTACHMENT_ID_AS_UUID = CqlIdentifier.fromCql("attachmentIdAsUUID");
+ CqlIdentifier ATTACHMENT_ID = CqlIdentifier.fromCql("attachmentId");
+ CqlIdentifier MESSAGE_ID = CqlIdentifier.fromCql("messageId");
+ CqlIdentifier[] FIELDS = { ATTACHMENT_ID_AS_UUID, ATTACHMENT_ID, MESSAGE_ID };
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentOwnerTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentOwnerTable.java
index ff4b1a0541..07ea43126d 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentOwnerTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentOwnerTable.java
@@ -19,11 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraAttachmentOwnerTable {
String TABLE_NAME = "attachmentOwners";
- String ID = "id";
- String OWNER = "owner";
- String[] FIELDS = { ID, OWNER };
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier OWNER = CqlIdentifier.fromCql("owner");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentV2Table.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentV2Table.java
index 6e39068d10..8a509aaf2b 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentV2Table.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentV2Table.java
@@ -19,15 +19,17 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraAttachmentV2Table {
String TABLE_NAME = "attachmentV2";
- String ID_AS_UUID = "idAsUUID";
- String ID = "id";
- String BLOB_ID = "blobId";
- String MESSAGE_ID = "message_id";
- String TYPE = "type";
- String SIZE = "size";
- String[] FIELDS = { ID, BLOB_ID, MESSAGE_ID, TYPE, SIZE };
+ CqlIdentifier ID_AS_UUID = CqlIdentifier.fromCql("idAsUUID");
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier BLOB_ID = CqlIdentifier.fromCql("blobId");
+ CqlIdentifier MESSAGE_ID = CqlIdentifier.fromCql("message_id");
+ CqlIdentifier TYPE = CqlIdentifier.fromCql("type");
+ CqlIdentifier SIZE = CqlIdentifier.fromCql("size");
+ CqlIdentifier[] FIELDS = { ID, BLOB_ID, MESSAGE_ID, TYPE, SIZE };
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraCurrentQuota.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraCurrentQuota.java
index 09a02809ba..2e5970e568 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraCurrentQuota.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraCurrentQuota.java
@@ -19,11 +19,13 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraCurrentQuota {
String TABLE_NAME = "currentQuota";
- String QUOTA_ROOT = "quotaRoot";
- String MESSAGE_COUNT = "messageCount";
- String STORAGE = "storage";
+ CqlIdentifier QUOTA_ROOT = CqlIdentifier.fromCql("quotaRoot");
+ CqlIdentifier MESSAGE_COUNT = CqlIdentifier.fromCql("messageCount");
+ CqlIdentifier STORAGE = CqlIdentifier.fromCql("storage");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDeletedMessageTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDeletedMessageTable.java
index b4773fb4d2..90a1657aeb 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDeletedMessageTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDeletedMessageTable.java
@@ -19,9 +19,11 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraDeletedMessageTable {
String TABLE_NAME = "messageDeleted";
- String MAILBOX_ID = "mailboxId";
- String UID = "uid";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier UID = CqlIdentifier.fromCql("uid");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDomainMaxQuota.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDomainMaxQuota.java
index 66372f8fa5..a2145eb70f 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDomainMaxQuota.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDomainMaxQuota.java
@@ -19,10 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraDomainMaxQuota {
String TABLE_NAME = "domainMaxQuota";
- String DOMAIN = "domain";
- String MESSAGE_COUNT = "maxMessageCount";
- String STORAGE = "maxStorage";
+ CqlIdentifier DOMAIN = CqlIdentifier.fromCql("domain");
+ CqlIdentifier MESSAGE_COUNT = CqlIdentifier.fromCql("maxMessageCount");
+ CqlIdentifier STORAGE = CqlIdentifier.fromCql("maxStorage");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraFirstUnseenTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraFirstUnseenTable.java
index bf6583a19c..d753866390 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraFirstUnseenTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraFirstUnseenTable.java
@@ -19,9 +19,11 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraFirstUnseenTable {
String TABLE_NAME = "firstUnseen";
- String MAILBOX_ID = "mailboxId";
- String UID = "uid";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier UID = CqlIdentifier.fromCql("uid");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java
index f366871f05..29f9f26345 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java
@@ -19,12 +19,14 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraGlobalMaxQuota {
String TABLE_NAME = "defaultMaxQuota2";
- String KEY = "key";
+ CqlIdentifier KEY = CqlIdentifier.fromCql("key");
String VALUE = "value";
- String MESSAGE = "message";
- String STORAGE = "storage";
+ CqlIdentifier MESSAGE = CqlIdentifier.fromCql("message");
+ CqlIdentifier STORAGE = CqlIdentifier.fromCql("storage");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxCountersTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxCountersTable.java
index f48840638d..404d79076c 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxCountersTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxCountersTable.java
@@ -19,9 +19,11 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMailboxCountersTable {
String TABLE_NAME = "mailboxCounters";
- String MAILBOX_ID = "mailboxId";
- String COUNT = "count";
- String UNSEEN = "unseen";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier COUNT = CqlIdentifier.fromCql("count");
+ CqlIdentifier UNSEEN = CqlIdentifier.fromCql("unseen");
}
\ No newline at end of file
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java
deleted file mode 100644
index efc6168b8e..0000000000
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathTable.java
+++ /dev/null
@@ -1,34 +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 CassandraMailboxPathTable {
-
- String TABLE_NAME = "mailboxPath";
-
- String NAMESPACE_AND_USER = "namespaceAndUser";
-
- String MAILBOX_NAME = "mailboxName";
-
- String MAILBOX_ID = "mailboxId";
-
- String[] FIELDS = { NAMESPACE_AND_USER, MAILBOX_NAME, MAILBOX_ID};
-
-}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV2Table.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV2Table.java
deleted file mode 100644
index 6788606fbe..0000000000
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV2Table.java
+++ /dev/null
@@ -1,36 +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 CassandraMailboxPathV2Table {
-
- String TABLE_NAME = "mailboxPathV2";
-
- String NAMESPACE = "namespace";
-
- String USER = "user";
-
- String MAILBOX_NAME = "mailboxName";
-
- String MAILBOX_ID = "mailboxId";
-
- String[] FIELDS = { NAMESPACE, USER, MAILBOX_NAME, MAILBOX_ID};
-
-}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV3Table.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV3Table.java
index 078824f4d1..093bd52697 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV3Table.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV3Table.java
@@ -19,19 +19,21 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMailboxPathV3Table {
String TABLE_NAME = "mailboxPathV3";
- String NAMESPACE = "namespace";
+ CqlIdentifier NAMESPACE = CqlIdentifier.fromCql("namespace");
- String USER = "user";
+ CqlIdentifier USER = CqlIdentifier.fromCql("user");
- String MAILBOX_NAME = "mailboxName";
+ CqlIdentifier MAILBOX_NAME = CqlIdentifier.fromCql("mailboxName");
- String MAILBOX_ID = "mailboxId";
- String UIDVALIDITY = "uidvalidity";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier UIDVALIDITY = CqlIdentifier.fromCql("uidvalidity");
- String[] FIELDS = { NAMESPACE, USER, MAILBOX_NAME, MAILBOX_ID, UIDVALIDITY};
+ CqlIdentifier[] FIELDS = { NAMESPACE, USER, MAILBOX_NAME, MAILBOX_ID, UIDVALIDITY};
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxRecentsTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxRecentsTable.java
index d729ae4728..b239d4ba96 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxRecentsTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxRecentsTable.java
@@ -19,8 +19,10 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMailboxRecentsTable {
String TABLE_NAME = "mailboxRecents";
- String MAILBOX_ID = "mailboxId";
- String RECENT_MESSAGE_UID = "recent_mesage_uid";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier RECENT_MESSAGE_UID = CqlIdentifier.fromCql("recent_mesage_uid");
}
\ No newline at end of file
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxTable.java
index e301552be0..faa06df3ca 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxTable.java
@@ -19,17 +19,18 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface CassandraMailboxTable {
String TABLE_NAME = "mailbox";
- String ID = "id";
- String MAILBOX_BASE = "mailboxbase";
- String UIDVALIDITY = "uidvalidity";
- String NAME = "name";
- String[] FIELDS = { ID, MAILBOX_BASE, UIDVALIDITY, NAME };
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier MAILBOX_BASE = CqlIdentifier.fromCql("mailboxbase");
+ CqlIdentifier UIDVALIDITY = CqlIdentifier.fromCql("uidvalidity");
+ CqlIdentifier NAME = CqlIdentifier.fromCql("name");
+ CqlIdentifier[] FIELDS = { ID, MAILBOX_BASE, UIDVALIDITY, NAME };
interface MailboxBase {
- String USER = "user";
- String NAMESPACE = "namespace";
+ CqlIdentifier USER = CqlIdentifier.fromCql("user");
+ CqlIdentifier NAMESPACE = CqlIdentifier.fromCql("namespace");
}
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMaxQuota.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMaxQuota.java
index 4fba65cb5f..8cb9c6a5fd 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMaxQuota.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMaxQuota.java
@@ -19,10 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMaxQuota {
String TABLE_NAME = "maxQuota";
- String QUOTA_ROOT = "quotaRoot";
- String MESSAGE_COUNT = "maxMessageCount";
- String STORAGE = "maxStorage";
+ CqlIdentifier QUOTA_ROOT = CqlIdentifier.fromCql("quotaRoot");
+ CqlIdentifier MESSAGE_COUNT = CqlIdentifier.fromCql("maxMessageCount");
+ CqlIdentifier STORAGE = CqlIdentifier.fromCql("maxStorage");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIdTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIdTable.java
index a3ad5e6abf..6ab2d26bd2 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIdTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIdTable.java
@@ -19,18 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.IMAP_UID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MAILBOX_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface CassandraMessageIdTable {
-
String TABLE_NAME = "messageIdTable";
- String MOD_SEQ = "modSeq";
-
- String THREAD_ID = "threadId";
+ CqlIdentifier MOD_SEQ = CqlIdentifier.fromCql("modSeq");
- String[] FIELDS = { MESSAGE_ID, MAILBOX_ID, IMAP_UID, THREAD_ID, MOD_SEQ,
- Flag.ANSWERED, Flag.DELETED, Flag.DRAFT, Flag.FLAGGED, Flag.RECENT, Flag.SEEN, Flag.USER, Flag.USER_FLAGS};
+ CqlIdentifier THREAD_ID = CqlIdentifier.fromCql("threadId");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIds.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIds.java
index 8ab4e90dc8..8d40435fbd 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIds.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIds.java
@@ -19,13 +19,10 @@
package org.apache.james.mailbox.cassandra.table;
-import java.util.Locale;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface CassandraMessageIds {
-
- String MESSAGE_ID = "messageId";
- String MESSAGE_ID_LOWERCASE = MESSAGE_ID.toLowerCase(Locale.US);
- String MAILBOX_ID = "mailboxId";
- String MAILBOX_ID_LOWERCASE = MAILBOX_ID.toLowerCase(Locale.US);
- String IMAP_UID = "uid";
+ CqlIdentifier MESSAGE_ID = CqlIdentifier.fromCql("messageId");
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier IMAP_UID = CqlIdentifier.fromCql("uid");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageModseqTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageModseqTable.java
index 41a6df0438..21b22b6dd0 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageModseqTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageModseqTable.java
@@ -19,8 +19,10 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMessageModseqTable {
String TABLE_NAME = "modseq";
- String MAILBOX_ID = "mailboxId";
- String NEXT_MODSEQ = "nextModseq";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier NEXT_MODSEQ = CqlIdentifier.fromCql("nextModseq");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageUidTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageUidTable.java
index 0566e2bf41..abf696ba02 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageUidTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageUidTable.java
@@ -19,8 +19,10 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMessageUidTable {
String TABLE_NAME = "messageCounter";
- String MAILBOX_ID = "mailboxId";
- String NEXT_UID = "nextUid";
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxId");
+ CqlIdentifier NEXT_UID = CqlIdentifier.fromCql("nextUid");
}
\ No newline at end of file
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV2Table.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV2Table.java
index 8ceb86ae5b..3a32ccef84 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV2Table.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV2Table.java
@@ -19,30 +19,32 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraMessageV2Table {
String TABLE_NAME = "messageV2";
- String INTERNAL_DATE = "internalDate";
- String BODY_START_OCTET = "bodyStartOctet";
- String FULL_CONTENT_OCTETS = "fullContentOctets";
- String BODY_OCTECTS = "bodyOctets";
- String TEXTUAL_LINE_COUNT = "textualLineCount";
- String BODY_CONTENT = "bodyContent";
- String HEADER_CONTENT = "headerContent";
- String PROPERTIES = "properties";
- String ATTACHMENTS = "attachments";
+ CqlIdentifier INTERNAL_DATE = CqlIdentifier.fromCql("internalDate");
+ CqlIdentifier BODY_START_OCTET = CqlIdentifier.fromCql("bodyStartOctet");
+ CqlIdentifier FULL_CONTENT_OCTETS = CqlIdentifier.fromCql("fullContentOctets");
+ CqlIdentifier BODY_OCTECTS = CqlIdentifier.fromCql("bodyOctets");
+ CqlIdentifier TEXTUAL_LINE_COUNT = CqlIdentifier.fromCql("textualLineCount");
+ CqlIdentifier BODY_CONTENT = CqlIdentifier.fromCql("bodyContent");
+ CqlIdentifier HEADER_CONTENT = CqlIdentifier.fromCql("headerContent");
+ CqlIdentifier PROPERTIES = CqlIdentifier.fromCql("properties");
+ CqlIdentifier ATTACHMENTS = CqlIdentifier.fromCql("attachments");
interface Properties {
- String NAMESPACE = "namespace";
- String NAME = "name";
- String VALUE = "value";
+ CqlIdentifier NAMESPACE = CqlIdentifier.fromCql("namespace");
+ CqlIdentifier NAME = CqlIdentifier.fromCql("name");
+ CqlIdentifier VALUE = CqlIdentifier.fromCql("value");
}
interface Attachments {
- String ID = "id";
- String NAME = "name";
- String CID = "cid";
- String IS_INLINE = "isInline";
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier NAME = CqlIdentifier.fromCql("name");
+ CqlIdentifier CID = CqlIdentifier.fromCql("cid");
+ CqlIdentifier IS_INLINE = CqlIdentifier.fromCql("isInline");
}
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV3Table.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV3Table.java
index 52a23d4ec6..a597ce0b57 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV3Table.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV3Table.java
@@ -19,45 +19,38 @@
package org.apache.james.mailbox.cassandra.table;
-import java.util.Locale;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface CassandraMessageV3Table {
-
String TABLE_NAME = "messageV3";
- String INTERNAL_DATE = "internalDate";
- String INTERNAL_DATE_LOWERCASE = INTERNAL_DATE.toLowerCase(Locale.US);
- String BODY_START_OCTET = "bodyStartOctet";
- String BODY_START_OCTET_LOWERCASE = BODY_START_OCTET.toLowerCase(Locale.US);
- String FULL_CONTENT_OCTETS = "fullContentOctets";
- String FULL_CONTENT_OCTETS_LOWERCASE = FULL_CONTENT_OCTETS.toLowerCase(Locale.US);
- String BODY_OCTECTS = "bodyOctets";
- String TEXTUAL_LINE_COUNT = "textualLineCount";
- String TEXTUAL_LINE_COUNT_LOWERCASE = TEXTUAL_LINE_COUNT.toLowerCase(Locale.US);
- String BODY_CONTENT = "bodyContent";
- String BODY_CONTENT_LOWERCASE = BODY_CONTENT.toLowerCase(Locale.US);
- String HEADER_CONTENT = "headerContent";
- String HEADER_CONTENT_LOWERCASE = HEADER_CONTENT.toLowerCase(Locale.US);
- String ATTACHMENTS = "attachments";
+
+ CqlIdentifier INTERNAL_DATE = CqlIdentifier.fromCql("internalDate");
+ CqlIdentifier BODY_START_OCTET = CqlIdentifier.fromCql("bodyStartOctet");
+ CqlIdentifier FULL_CONTENT_OCTETS = CqlIdentifier.fromCql("fullContentOctets");
+ CqlIdentifier BODY_OCTECTS = CqlIdentifier.fromCql("bodyOctets");
+ CqlIdentifier TEXTUAL_LINE_COUNT = CqlIdentifier.fromCql("textualLineCount");
+ CqlIdentifier BODY_CONTENT = CqlIdentifier.fromCql("bodyContent");
+ CqlIdentifier HEADER_CONTENT = CqlIdentifier.fromCql("headerContent");
+ CqlIdentifier ATTACHMENTS = CqlIdentifier.fromCql("attachments");
interface Properties {
- String MEDIA_TYPE = "mediaType";
- String SUB_TYPE = "subType";
- String CONTENT_ID = "contentId";
- String CONTENT_LOCATION = "contentLocation";
- String CONTENT_DESCRIPTION = "contentDescription";
- String CONTENT_TRANSFER_ENCODING = "contentTransferEncoding";
- String CONTENT_DISPOSITION_TYPE = "contentDispositionType";
- String CONTENT_DISPOSITION_PARAMETERS = "contentDispositionParameters";
- String CONTENT_TYPE_PARAMETERS = "contentTypeParameters";
- String CONTENT_MD5 = "contentMd5";
- String CONTENT_LANGUAGE = "contentLanguage";
+ CqlIdentifier MEDIA_TYPE = CqlIdentifier.fromCql("mediaType");
+ CqlIdentifier SUB_TYPE = CqlIdentifier.fromCql("subType");
+ CqlIdentifier CONTENT_ID = CqlIdentifier.fromCql("contentId");
+ CqlIdentifier CONTENT_LOCATION = CqlIdentifier.fromCql("contentLocation");
+ CqlIdentifier CONTENT_DESCRIPTION = CqlIdentifier.fromCql("contentDescription");
+ CqlIdentifier CONTENT_TRANSFER_ENCODING = CqlIdentifier.fromCql("contentTransferEncoding");
+ CqlIdentifier CONTENT_DISPOSITION_TYPE = CqlIdentifier.fromCql("contentDispositionType");
+ CqlIdentifier CONTENT_DISPOSITION_PARAMETERS = CqlIdentifier.fromCql("contentDispositionParameters");
+ CqlIdentifier CONTENT_TYPE_PARAMETERS = CqlIdentifier.fromCql("contentTypeParameters");
+ CqlIdentifier CONTENT_MD5 = CqlIdentifier.fromCql("contentMd5");
+ CqlIdentifier CONTENT_LANGUAGE = CqlIdentifier.fromCql("contentLanguage");
}
interface Attachments {
- String ID = "id";
- String NAME = "name";
- String CID = "cid";
- String IS_INLINE = "isInline";
+ CqlIdentifier ID = CqlIdentifier.fromCql("id");
+ CqlIdentifier NAME = CqlIdentifier.fromCql("name");
+ CqlIdentifier CID = CqlIdentifier.fromCql("cid");
+ CqlIdentifier IS_INLINE = CqlIdentifier.fromCql("isInline");
}
-
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraSubscriptionTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraSubscriptionTable.java
index 91b2d12cb2..7ea4079c6c 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraSubscriptionTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraSubscriptionTable.java
@@ -19,11 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraSubscriptionTable {
String TABLE_NAME = "subscription";
- String USER = "user";
- String MAILBOX = "mailbox";
- String[] FIELDS = { MAILBOX, USER };
+ CqlIdentifier USER = CqlIdentifier.fromCql("user");
+ CqlIdentifier MAILBOX = CqlIdentifier.fromCql("mailbox");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadLookupTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadLookupTable.java
index 7a8c1b37c5..53275ade14 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadLookupTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadLookupTable.java
@@ -19,13 +19,10 @@
package org.apache.james.mailbox.cassandra.table;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraThreadTable.USERNAME;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface CassandraThreadLookupTable {
String TABLE_NAME = "threadLookupTable";
- String MIME_MESSAGE_IDS = "mimeMessageIds";
-
- String[] FIELDS = {MESSAGE_ID, USERNAME, MIME_MESSAGE_IDS};
+ CqlIdentifier MIME_MESSAGE_IDS = CqlIdentifier.fromCql("mimeMessageIds");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadTable.java
index 0db322a150..b437a9f35c 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadTable.java
@@ -19,17 +19,14 @@
package org.apache.james.mailbox.cassandra.table;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIdTable.THREAD_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface CassandraThreadTable {
String TABLE_NAME = "threadTable";
- String USERNAME = "username";
+ CqlIdentifier USERNAME = CqlIdentifier.fromCql("username");
- String MIME_MESSAGE_ID = "mimeMessageId";
+ CqlIdentifier MIME_MESSAGE_ID = CqlIdentifier.fromCql("mimeMessageId");
- String BASE_SUBJECT = "baseSubject";
-
- String[] FIELDS = {MESSAGE_ID, THREAD_ID, USERNAME, MIME_MESSAGE_ID, BASE_SUBJECT};
+ CqlIdentifier BASE_SUBJECT = CqlIdentifier.fromCql("baseSubject");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraUserMailboxRightsTable.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraUserMailboxRightsTable.java
index 65dff9fa24..d575d76151 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraUserMailboxRightsTable.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraUserMailboxRightsTable.java
@@ -19,10 +19,12 @@
package org.apache.james.mailbox.cassandra.table;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
+
public interface CassandraUserMailboxRightsTable {
String TABLE_NAME = "UserMailboxACL";
- String USER_NAME = "userName";
- String MAILBOX_ID = "mailboxid";
- String RIGHTS = "rights";
+ CqlIdentifier USER_NAME = CqlIdentifier.fromCql("userName");
+ CqlIdentifier MAILBOX_ID = CqlIdentifier.fromCql("mailboxid");
+ CqlIdentifier RIGHTS = CqlIdentifier.fromCql("rights");
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/Flag.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/Flag.java
index 0788b5dfc6..e0dd53208a 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/Flag.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/Flag.java
@@ -18,41 +18,38 @@
****************************************************************/
package org.apache.james.mailbox.cassandra.table;
-import java.util.Locale;
-
import javax.mail.Flags;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
import com.google.common.collect.ImmutableMap;
public interface Flag {
+ CqlIdentifier ANSWERED = CqlIdentifier.fromCql("flagAnswered");
+ CqlIdentifier DELETED = CqlIdentifier.fromCql("flagDeleted");
+ CqlIdentifier DRAFT = CqlIdentifier.fromCql("flagDraft");
+ CqlIdentifier RECENT = CqlIdentifier.fromCql("flagRecent");
+ CqlIdentifier SEEN = CqlIdentifier.fromCql("flagSeen");
+ CqlIdentifier FLAGGED = CqlIdentifier.fromCql("flagFlagged");
+ CqlIdentifier USER = CqlIdentifier.fromCql("flagUser");
+ CqlIdentifier USER_FLAGS = CqlIdentifier.fromCql("userFlags");
- String ANSWERED = "flagAnswered";
- String DELETED = "flagDeleted";
- String DRAFT = "flagDraft";
- String RECENT = "flagRecent";
- String SEEN = "flagSeen";
- String FLAGGED = "flagFlagged";
- String USER = "flagUser";
- String USER_FLAGS = "userFlags";
- String USER_FLAGS_LOWERCASE = USER_FLAGS.toLowerCase(Locale.US);
-
- String[] ALL_LOWERCASE = {
- ANSWERED.toLowerCase(Locale.US),
- DELETED.toLowerCase(Locale.US),
- DRAFT.toLowerCase(Locale.US),
- RECENT.toLowerCase(Locale.US),
- SEEN.toLowerCase(Locale.US),
- FLAGGED.toLowerCase(Locale.US),
- USER.toLowerCase(Locale.US)
+ CqlIdentifier[] ALL_LOWERCASE = {
+ ANSWERED,
+ DELETED,
+ DRAFT,
+ RECENT,
+ SEEN,
+ FLAGGED,
+ USER
};
- ImmutableMap<String, Flags.Flag> JAVAX_MAIL_FLAG = ImmutableMap.<String, Flags.Flag>builder()
- .put(ANSWERED.toLowerCase(Locale.US), Flags.Flag.ANSWERED)
- .put(DELETED.toLowerCase(Locale.US), Flags.Flag.DELETED)
- .put(DRAFT.toLowerCase(Locale.US), Flags.Flag.DRAFT)
- .put(RECENT.toLowerCase(Locale.US), Flags.Flag.RECENT)
- .put(SEEN.toLowerCase(Locale.US), Flags.Flag.SEEN)
- .put(FLAGGED.toLowerCase(Locale.US), Flags.Flag.FLAGGED)
- .put(USER.toLowerCase(Locale.US), Flags.Flag.USER)
+ ImmutableMap<CqlIdentifier, Flags.Flag> JAVAX_MAIL_FLAG = ImmutableMap.<CqlIdentifier, Flags.Flag>builder()
+ .put(ANSWERED, Flags.Flag.ANSWERED)
+ .put(DELETED, Flags.Flag.DELETED)
+ .put(DRAFT, Flags.Flag.DRAFT)
+ .put(RECENT, Flags.Flag.RECENT)
+ .put(SEEN, Flags.Flag.SEEN)
+ .put(FLAGGED, Flags.Flag.FLAGGED)
+ .put(USER, Flags.Flag.USER)
.build();
}
\ No newline at end of file
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/MessageIdToImapUid.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/MessageIdToImapUid.java
index df1dd3c1ac..27884a3ae8 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/MessageIdToImapUid.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/MessageIdToImapUid.java
@@ -19,22 +19,13 @@
package org.apache.james.mailbox.cassandra.table;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.IMAP_UID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MAILBOX_ID;
-import static org.apache.james.mailbox.cassandra.table.CassandraMessageIds.MESSAGE_ID;
-
-import java.util.Locale;
+import com.datastax.oss.driver.api.core.CqlIdentifier;
public interface MessageIdToImapUid {
String TABLE_NAME = "imapUidTable";
- String MOD_SEQ = "modSeq";
- String MOD_SEQ_LOWERCASE = MOD_SEQ.toLowerCase(Locale.US);
-
- String THREAD_ID = "threadId";
- String THREAD_ID_LOWERCASE = THREAD_ID.toLowerCase(Locale.US);
+ CqlIdentifier MOD_SEQ = CqlIdentifier.fromCql("modSeq");
- String[] FIELDS = { MESSAGE_ID, MAILBOX_ID, IMAP_UID, THREAD_ID, MOD_SEQ,
- Flag.ANSWERED, Flag.DELETED, Flag.DRAFT, Flag.FLAGGED, Flag.RECENT, Flag.SEEN, Flag.USER, Flag.USER_FLAGS };
+ CqlIdentifier THREAD_ID = CqlIdentifier.fromCql("threadId");
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAOTest.java
index ad005d037b..6f76a71fef 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAOTest.java
@@ -36,7 +36,6 @@ import org.apache.james.mailbox.ModSeq;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
-import org.apache.james.mailbox.cassandra.table.Flag;
import org.apache.james.mailbox.model.ComposedMessageId;
import org.apache.james.mailbox.model.ComposedMessageIdWithMetaData;
import org.apache.james.mailbox.model.MessageRange;
@@ -122,7 +121,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData metadata = ComposedMessageIdWithMetaData.builder()
.composedMessageId(new ComposedMessageId(mailboxId, messageId, messageUid))
- .flags(new Flags(Flag.ANSWERED))
+ .flags(new Flags(Flags.Flag.ANSWERED))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -273,7 +272,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.ANSWERED))
+ .flags(new Flags(Flags.Flag.ANSWERED))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -315,7 +314,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.DELETED))
+ .flags(new Flags(Flags.Flag.DELETED))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -357,7 +356,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.DRAFT))
+ .flags(new Flags(Flags.Flag.DRAFT))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -399,7 +398,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.FLAGGED))
+ .flags(new Flags(Flags.Flag.FLAGGED))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -441,7 +440,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.RECENT))
+ .flags(new Flags(Flags.Flag.RECENT))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -483,7 +482,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.SEEN))
+ .flags(new Flags(Flags.Flag.SEEN))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
@@ -525,7 +524,7 @@ class CassandraMessageIdDAOTest {
ComposedMessageIdWithMetaData expectedComposedMessageId = ComposedMessageIdWithMetaData.builder()
.composedMessageId(composedMessageId)
- .flags(new Flags(Flag.USER))
+ .flags(new Flags(Flags.Flag.USER))
.modSeq(ModSeq.of(2))
.threadId(ThreadId.fromBaseMessageId(messageId))
.build();
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org