You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2008/12/31 11:44:57 UTC
svn commit: r730371 [3/3] - in /james/protocols/imap/trunk: ./ build-tools/
deployment/src/test/java/org/apache/james/imap/functional/
deployment/src/test/java/org/apache/james/imap/functional/jpa/ jpa/
jpa/src/main/java/org/apache/james/imap/jpa/ jpa/...
Added: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Message.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Message.java?rev=730371&view=auto
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Message.java (added)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Message.java Wed Dec 31 02:44:55 2008
@@ -0,0 +1,324 @@
+/****************************************************************
+ * 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.imap.jpa.om;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import javax.mail.Flags;
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+
+@Entity
+@IdClass(Message.MessageId.class)
+@NamedQueries({
+ @NamedQuery(name="resetRecentMessages",
+ query="UPDATE Message message SET message.recent = FALSE WHERE message.mailboxId = :idParam AND message.recent = FALSE"),
+ @NamedQuery(name="findRecentMessagesInMailbox",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.recent = TRUE"),
+ @NamedQuery(name="findUnseenMessagesInMailboxOrderByUid",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.seen = FALSE ORDER BY message.uid ASC"),
+ @NamedQuery(name="findMessagesInMailbox",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam"),
+ @NamedQuery(name="findMessagesInMailboxBetweenUIDs",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.uid BETWEEN :fromParam AND :toParam"),
+ @NamedQuery(name="findMessagesInMailboxWithUID",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.uid=:uidParam"),
+ @NamedQuery(name="findMessagesInMailboxAfterUID",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.uid>=:uidParam"),
+ @NamedQuery(name="findDeletedMessagesInMailbox",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.deleted=TRUE"),
+ @NamedQuery(name="findDeletedMessagesInMailboxBetweenUIDs",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.uid BETWEEN :fromParam AND :toParam AND message.deleted=TRUE"),
+ @NamedQuery(name="findDeletedMessagesInMailboxWithUID",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.uid=:uidParam AND message.deleted=TRUE"),
+ @NamedQuery(name="findDeletedMessagesInMailboxAfterUID",
+ query="SELECT message FROM Message message WHERE message.mailboxId = :idParam AND message.uid>=:uidParam AND message.deleted=TRUE"),
+ @NamedQuery(name="countUnseenMessagesInMailbox",
+ query="SELECT COUNT(message) FROM Message message WHERE message.mailboxId = :idParam AND message.seen=FALSE"),
+ @NamedQuery(name="countMessagesInMailbox",
+ query="SELECT COUNT(message) FROM Message message WHERE message.mailboxId = :idParam")
+})
+public class Message {
+
+ private static final String TOSTRING_SEPARATOR = " ";
+
+ /** Identifies composite key */
+ public static class MessageId implements Serializable {
+ private static final long serialVersionUID = 7847632032426660997L;
+ /** The value for the mailboxId field */
+ public long mailboxId;
+ /** The value for the uid field */
+ public long uid;
+
+ public MessageId() {}
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + (int) (mailboxId ^ (mailboxId >>> 32));
+ result = PRIME * result + (int) (uid ^ (uid >>> 32));
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final MessageId other = (MessageId) obj;
+ if (mailboxId != other.mailboxId)
+ return false;
+ if (uid != other.uid)
+ return false;
+ return true;
+ }
+ }
+
+ /** The value for the mailboxId field */
+ @Id private long mailboxId;
+
+ /** The value for the uid field */
+ @Id private long uid;
+
+ /** The value for the internalDate field */
+ @Basic(optional=false) private Date internalDate;
+
+ /** The value for the size field */
+ @Basic(optional=false) private int size = 0;
+
+ /** The value for the answered field */
+ @Basic(optional=false) private boolean answered = false;
+
+ /** The value for the deleted field */
+ @Basic(optional=false) private boolean deleted = false;
+
+ /** The value for the draft field */
+ @Basic(optional=false) private boolean draft = false;
+
+ /** The value for the flagged field */
+ @Basic(optional=false) private boolean flagged = false;
+
+ /** The value for the recent field */
+ @Basic(optional=false) private boolean recent = false;
+
+ /** The value for the seen field */
+ @Basic(optional=false) private boolean seen = false;
+
+ /** The value for the body field. Lazy loaded */
+ @Basic(optional=false, fetch=FetchType.LAZY) private byte[] body;
+ /** Headers for this message */
+ @OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY) private List<Header> headers;
+
+ /**
+ * For enhancement only.
+ */
+ @Deprecated
+ public Message() {}
+
+ public Message(long mailboxId, long uid, Date internalDate, int size, Flags flags, byte[] body, final List<Header> headers) {
+ super();
+ this.mailboxId = mailboxId;
+ this.uid = uid;
+ this.internalDate = internalDate;
+ this.size = size;
+ this.body = body;
+ setFlags(flags);
+ this.headers = new ArrayList<Header>(headers);
+ }
+
+ /**
+ * Constructs a copy of the given message.
+ * All properties are cloned except mailbox and UID.
+ * @param mailboxId new mailbox ID
+ * @param uid new UID
+ * @param original message to be copied, not null
+ */
+ public Message(long mailboxId, long uid, Message original) {
+ super();
+ this.mailboxId = mailboxId;
+ this.uid = uid;
+ this.internalDate = original.getInternalDate();
+ this.size = original.getSize();
+ this.answered = original.isAnswered();
+ this.deleted = original.isDeleted();
+ this.draft = original.isDraft();
+ this.flagged = original.isFlagged();
+ this.recent = original.isRecent();
+ this.seen = original.isSeen();
+ this.body = original.getBody();
+ final List<Header> originalHeaders = original.getHeaders();
+ if (originalHeaders == null) {
+ this.headers = new ArrayList<Header>();
+ } else {
+ this.headers = new ArrayList<Header>(originalHeaders.size());
+ for (Header header:originalHeaders) {
+ this.headers.add(new Header(header));
+ }
+ }
+ }
+
+ public Date getInternalDate() {
+ return internalDate;
+ }
+
+ public long getMailboxId() {
+ return mailboxId;
+ }
+
+ public int getSize() {
+ return size;
+ }
+
+ public long getUid() {
+ return uid;
+ }
+
+ public byte[] getBody() {
+ return body;
+ }
+
+ public boolean isAnswered() {
+ return answered;
+ }
+
+ public boolean isDeleted() {
+ return deleted;
+ }
+
+ public boolean isDraft() {
+ return draft;
+ }
+
+ public boolean isFlagged() {
+ return flagged;
+ }
+
+ public boolean isRecent() {
+ return recent;
+ }
+
+ public boolean isSeen() {
+ return seen;
+ }
+
+ /**
+ * Gets a read-only list of headers.
+ * @return unmodifiable list of headers, not null
+ */
+ public List<Header> getHeaders() {
+ return Collections.unmodifiableList(headers);
+ }
+
+ public void setFlags(Flags flags) {
+ answered = flags.contains(Flags.Flag.ANSWERED);
+ deleted = flags.contains(Flags.Flag.DELETED);
+ draft = flags.contains(Flags.Flag.DRAFT);
+ flagged = flags.contains(Flags.Flag.FLAGGED);
+ recent = flags.contains(Flags.Flag.RECENT);
+ seen = flags.contains(Flags.Flag.SEEN);
+ }
+
+ /**
+ * Creates a new flags instance populated
+ * with the current flag data.
+ * @return new instance, not null
+ */
+ public Flags createFlags() {
+ final Flags flags = new Flags();
+
+ if (isAnswered()) {
+ flags.add(Flags.Flag.ANSWERED);
+ }
+ if (isDeleted()) {
+ flags.add(Flags.Flag.DELETED);
+ }
+ if (isDraft()) {
+ flags.add(Flags.Flag.DRAFT);
+ }
+ if (isFlagged()) {
+ flags.add(Flags.Flag.FLAGGED);
+ }
+ if (isRecent()) {
+ flags.add(Flags.Flag.RECENT);
+ }
+ if (isSeen()) {
+ flags.add(Flags.Flag.SEEN);
+ }
+ return flags;
+ }
+
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + (int) (mailboxId ^ (mailboxId >>> 32));
+ result = PRIME * result + (int) (uid ^ (uid >>> 32));
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Message other = (Message) obj;
+ if (mailboxId != other.mailboxId)
+ return false;
+ if (uid != other.uid)
+ return false;
+ return true;
+ }
+
+ public String toString()
+ {
+ final String retValue =
+ "mailbox("
+ + "mailboxId = " + this.mailboxId + TOSTRING_SEPARATOR
+ + "uid = " + this.uid + TOSTRING_SEPARATOR
+ + "internalDate = " + this.internalDate + TOSTRING_SEPARATOR
+ + "size = " + this.size + TOSTRING_SEPARATOR
+ + "answered = " + this.answered + TOSTRING_SEPARATOR
+ + "deleted = " + this.deleted + TOSTRING_SEPARATOR
+ + "draft = " + this.draft + TOSTRING_SEPARATOR
+ + "flagged = " + this.flagged + TOSTRING_SEPARATOR
+ + "recent = " + this.recent + TOSTRING_SEPARATOR
+ + "seen = " + this.seen + TOSTRING_SEPARATOR
+ + " )";
+
+ return retValue;
+ }
+}
Copied: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/openjpa/OpenJPAMailboxMapper.java (from r730067, james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java)
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/openjpa/OpenJPAMailboxMapper.java?p2=james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/openjpa/OpenJPAMailboxMapper.java&p1=james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java&r1=730067&r2=730371&rev=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/openjpa/OpenJPAMailboxMapper.java Wed Dec 31 02:44:55 2008
@@ -17,116 +17,37 @@
* under the License. *
****************************************************************/
-package org.apache.james.imap.jpa.om;
+package org.apache.james.imap.jpa.om.openjpa;
-import java.util.List;
+import javax.persistence.EntityManager;
-import org.apache.james.mailboxmanager.MailboxManagerException;
-import org.apache.james.mailboxmanager.MessageRange;
-import org.apache.torque.TorqueException;
-import org.apache.torque.util.CountHelper;
-import org.apache.torque.util.Criteria;
+import org.apache.james.imap.jpa.map.MailboxMapper;
+import org.apache.james.imap.jpa.om.Mailbox;
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
/**
* Data access management for mailbox.
*/
-public class MailboxMapper {
-
- public void save(MailboxRow mailbox) throws TorqueException {
- mailbox.save();
- }
-
- /**
- * Finds a mailbox by name.
- * @param name not null
- * @return not null
- * @throws TorqueException
- */
- public MailboxRow findByName(String name) throws TorqueException {
- return MailboxRowPeer.retrieveByName(name);
- }
-
- /**
- * Deletes the given mailbox.
- * @param mailbox not null
- * @throws TorqueException
- */
- public static void delete(MailboxRow mailbox) throws TorqueException {
- MailboxRowPeer.doDelete(mailbox);
- }
-
- public List findNameLike(String name) throws TorqueException {
- Criteria c = new Criteria();
- c.add(MailboxRowPeer.NAME,
- (Object) name,
- Criteria.LIKE);
- List l = MailboxRowPeer.doSelect(c);
- return l;
- }
-
- public void deleteAll() throws TorqueException {
- MailboxRowPeer.doDelete(new Criteria().and(
- MailboxRowPeer.MAILBOX_ID, new Integer(-1),
- Criteria.GREATER_THAN));
- }
-
- public int countOnName(String mailboxName) throws TorqueException {
- int count;
- Criteria c = new Criteria();
- c.add(MailboxRowPeer.NAME, mailboxName);
- CountHelper countHelper = new CountHelper();
- count = countHelper.count(c);
- return count;
- }
-
-
- public List findInMailbox(MessageRange set, long mailboxId) throws MailboxManagerException, TorqueException {
- Criteria c = criteriaForMessageSet(set);
- c.add(MessageFlagsPeer.MAILBOX_ID, mailboxId);
- List rows = MessageMapper.doSelectJoinMessageFlags(c);
- return rows;
- }
-
- public List findMarkedForDeletionInMailbox(final MessageRange set, final long mailboxId) throws TorqueException, MailboxManagerException {
- final Criteria criteria = criteriaForMessageSet(set);
- criteria.addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
- criteria.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
- criteria.add(MessageFlagsPeer.DELETED, true);
- criteria.add(MessageRowPeer.MAILBOX_ID, mailboxId);
- final List messageRows = MessageRowPeer.doSelect(criteria);
- return messageRows;
- }
-
- private Criteria criteriaForMessageSet(MessageRange set) throws MailboxManagerException {
- Criteria criteria = new Criteria();
- criteria.addAscendingOrderByColumn(MessageRowPeer.UID);
- if (set.getType() == MessageRange.TYPE_ALL) {
- // empty Criteria = everything
- } else if (set.getType() == MessageRange.TYPE_UID) {
-
- if (set.getUidFrom() == set.getUidTo()) {
- criteria.add(MessageRowPeer.UID, set.getUidFrom());
- } else {
- Criteria.Criterion criterion1 = criteria.getNewCriterion(
- MessageRowPeer.UID, new Long(set.getUidFrom()),
- Criteria.GREATER_EQUAL);
- if (set.getUidTo() > 0) {
- Criteria.Criterion criterion2 = criteria.getNewCriterion(
- MessageRowPeer.UID, new Long(set.getUidTo()),
- Criteria.LESS_EQUAL);
- criterion1.and(criterion2);
- }
- criteria.add(criterion1);
- }
- } else {
- throw new MailboxManagerException("Unsupported MessageSet: "
- + set.getType());
+public class OpenJPAMailboxMapper extends MailboxMapper {
+
+ public OpenJPAMailboxMapper(EntityManager entityManager) {
+ super(entityManager);
+ }
+
+ public Mailbox consumeNextUid(long mailboxId) {
+ OpenJPAEntityManager oem = OpenJPAPersistence.cast(entityManager);
+ final boolean originalLocking = oem.getOptimistic();
+ oem.setOptimistic(false);
+ oem.getTransaction().begin();
+ try {
+ Mailbox mailbox = (Mailbox) entityManager.createNamedQuery("findMailboxById").setParameter("idParam", mailboxId).getSingleResult();
+ mailbox.consumeUid();
+ oem.persist(mailbox);
+ oem.getTransaction().commit();
+ return mailbox;
+ } finally {
+ oem.setOptimistic(originalLocking);
}
- return criteria;
}
-
- public MailboxRow findById(long mailboxId) throws TorqueException {
- return MailboxRowPeer.retrieveByPK(mailboxId);
- }
-
}
Propchange: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/openjpa/OpenJPAMailboxMapper.java
------------------------------------------------------------------------------
svn:mergeinfo =
Added: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageBuilder.java?rev=730371&view=auto
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageBuilder.java (added)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageBuilder.java Wed Dec 31 02:44:55 2008
@@ -0,0 +1,66 @@
+/****************************************************************
+ * 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.imap.jpa;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.mail.Flags;
+
+import org.apache.james.imap.jpa.om.Header;
+import org.apache.james.imap.jpa.om.Message;
+
+public class MessageBuilder {
+
+ public long mailboxId = 113;
+ public long uid = 776;
+ public Date internalDate = new Date();
+ public int size = 8867;
+ public Flags flags = new Flags();
+ public byte[] body = {};
+ public final List<Header> headers = new ArrayList<Header>();
+ public int lineNumber = 0;
+
+ public Message build() {
+ Message result = new Message(mailboxId, uid, internalDate, size, flags, body, headers);
+ return result;
+ }
+
+ public Header header(String field, String value) {
+ Header header = new Header(++lineNumber, field, value);
+ headers.add(header);
+ return header;
+ }
+
+ public void setKey(int mailboxId, int uid) {
+ this.uid = uid;
+ this.mailboxId = mailboxId;
+ }
+
+ public void setFlags(boolean seen, boolean flagged, boolean answered,
+ boolean draft, boolean deleted, boolean recent) {
+ if (seen) flags.add(Flags.Flag.SEEN);
+ if (flagged) flags.add(Flags.Flag.FLAGGED);
+ if (answered) flags.add(Flags.Flag.ANSWERED);
+ if (draft) flags.add(Flags.Flag.DRAFT);
+ if (deleted) flags.add(Flags.Flag.DELETED);
+ if (recent) flags.add(Flags.Flag.RECENT);
+ }
+}
Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java Wed Dec 31 02:44:55 2008
@@ -21,10 +21,10 @@
import junit.framework.TestCase;
-import org.apache.james.imap.jpa.om.MessageRow;
-
-public class MessageRowUtilsTest extends TestCase {
+import org.apache.james.imap.jpa.om.Message;
+public class MessageRowUtilsTest extends TestCase {
+
protected void setUp() throws Exception {
super.setUp();
}
@@ -35,27 +35,27 @@
public void testShouldReturnPositiveWhenFirstGreaterThanSecond()
throws Exception {
- MessageRow one = new MessageRow();
- one.setUid(100);
- MessageRow two = new MessageRow();
- two.setUid(99);
+ Message one = buildMessage(100);
+ Message two = buildMessage(99);
assertTrue(MessageRowUtils.getUidComparator().compare(one, two) > 0);
}
+ private Message buildMessage(int uid) {
+ MessageBuilder builder = new MessageBuilder();
+ builder.uid = uid;
+ return builder.build();
+ }
+
public void testShouldReturnNegativeWhenFirstLessThanSecond()
throws Exception {
- MessageRow one = new MessageRow();
- one.setUid(98);
- MessageRow two = new MessageRow();
- two.setUid(99);
+ Message one = buildMessage(98);
+ Message two = buildMessage(99);
assertTrue(MessageRowUtils.getUidComparator().compare(one, two) < 0);
}
public void testShouldReturnZeroWhenFirstEqualsSecond() throws Exception {
- MessageRow one = new MessageRow();
- one.setUid(90);
- MessageRow two = new MessageRow();
- two.setUid(90);
+ Message one = buildMessage(90);
+ Message two = buildMessage(90);
assertEquals(0, MessageRowUtils.getUidComparator().compare(one, two));
}
}
Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java Wed Dec 31 02:44:55 2008
@@ -197,7 +197,7 @@
throws Exception {
List headers = headers(position);
assertEquals(1, headers.size());
- Header header = (Header) headers.get(0);
+ ResultHeader header = (ResultHeader) headers.get(0);
assertEquals(CONTENT_TYPE, header.getName());
assertEquals(contentType, header.getValue());
}
Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderMultipartAlternativeTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderMultipartAlternativeTest.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderMultipartAlternativeTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderMultipartAlternativeTest.java Wed Dec 31 02:44:55 2008
@@ -118,7 +118,7 @@
throws Exception {
List headers = headers(mail, position);
assertEquals(1, headers.size());
- Header header = (Header) headers.get(0);
+ ResultHeader header = (ResultHeader) headers.get(0);
assertEquals(CONTENT_TYPE, header.getName());
assertEquals(contentType, header.getValue());
}
Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsMultipartMixedTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsMultipartMixedTest.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsMultipartMixedTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsMultipartMixedTest.java Wed Dec 31 02:44:55 2008
@@ -26,9 +26,7 @@
import junit.framework.TestCase;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.jpa.om.MessageBody;
-import org.apache.james.imap.jpa.om.MessageHeader;
-import org.apache.james.imap.jpa.om.MessageRow;
+import org.apache.james.imap.jpa.om.Message;
import org.apache.james.mailboxmanager.SearchQuery;
public class SearchUtilsMultipartMixedTest extends TestCase {
@@ -105,7 +103,7 @@
+ " Than both your poets can in praise devise.\r\n"
+ "\r\n--2.50290787509--\r\n" + "\r\n--1729--\r\n";
- MessageRow row;
+ Message row;
MessageSearches searches;
@@ -113,19 +111,15 @@
protected void setUp() throws Exception {
super.setUp();
- row = new MessageRow();
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_FROM,
- "Alex <alex@example.org"));
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_TO,
- "Harry <harry@example.org"));
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_SUBJECT,
- "A Mixed Multipart Mail"));
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_DATE,
- "Thu, 14 Feb 2008 12:00:00 +0000 (GMT)"));
- row.addMessageHeader(new MessageHeader("Content-Type",
- "multipart/mixed;boundary=1729"));
- row.addMessageBody(new MessageBody(Charset.forName("us-ascii").encode(
- BODY).array()));
+ final MessageBuilder builder = new MessageBuilder();
+
+ builder.header(ImapConstants.RFC822_FROM, "Alex <alex@example.org");
+ builder.header(ImapConstants.RFC822_TO, "Harry <harry@example.org");
+ builder.header(ImapConstants.RFC822_SUBJECT, "A Mixed Multipart Mail");
+ builder.header(ImapConstants.RFC822_DATE, "Thu, 14 Feb 2008 12:00:00 +0000 (GMT)");
+ builder.header("Content-Type", "multipart/mixed;boundary=1729");
+ builder.body = Charset.forName("us-ascii").encode(BODY).array();
+ row = builder.build();
searches = new MessageSearches();
recent = new ArrayList();
}
Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsRFC822Test.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsRFC822Test.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsRFC822Test.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsRFC822Test.java Wed Dec 31 02:44:55 2008
@@ -26,9 +26,7 @@
import junit.framework.TestCase;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.jpa.om.MessageBody;
-import org.apache.james.imap.jpa.om.MessageHeader;
-import org.apache.james.imap.jpa.om.MessageRow;
+import org.apache.james.imap.jpa.om.Message;
import org.apache.james.mailboxmanager.SearchQuery;
public class SearchUtilsRFC822Test extends TestCase {
@@ -45,7 +43,7 @@
+ "It has " + RHUBARD + ".\r\n" + "It has " + CUSTARD + ".\r\n"
+ "It needs naught else.\r\n";
- MessageRow row;
+ Message row;
MessageSearches searches;
@@ -54,17 +52,13 @@
protected void setUp() throws Exception {
super.setUp();
recent = new ArrayList();
- row = new MessageRow();
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_FROM,
- "Alex <alex@example.org"));
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_TO,
- FROM_ADDRESS));
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_SUBJECT,
- "A " + SUBJECT_PART + " Multipart Mail"));
- row.addMessageHeader(new MessageHeader(ImapConstants.RFC822_DATE,
- "Thu, 14 Feb 2008 12:00:00 +0000 (GMT)"));
- row.addMessageBody(new MessageBody(Charset.forName("us-ascii").encode(
- BODY).array()));
+ MessageBuilder builder = new MessageBuilder();
+ builder.header(ImapConstants.RFC822_FROM, "Alex <alex@example.org");
+ builder.header(ImapConstants.RFC822_TO, FROM_ADDRESS);
+ builder.header(ImapConstants.RFC822_SUBJECT, "A " + SUBJECT_PART + " Multipart Mail");
+ builder.header(ImapConstants.RFC822_DATE, "Thu, 14 Feb 2008 12:00:00 +0000 (GMT)");
+ builder.body = Charset.forName("us-ascii").encode(BODY).array();
+ row = builder.build();
searches = new MessageSearches();
}
Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java Wed Dec 31 02:44:55 2008
@@ -28,11 +28,8 @@
import junit.framework.TestCase;
import org.apache.james.api.imap.ImapConstants;
-import org.apache.james.imap.jpa.om.MessageFlags;
-import org.apache.james.imap.jpa.om.MessageHeader;
-import org.apache.james.imap.jpa.om.MessageRow;
+import org.apache.james.imap.jpa.om.Message;
import org.apache.james.mailboxmanager.SearchQuery;
-import org.apache.torque.TorqueException;
public class SearchUtilsTest extends TestCase {
@@ -52,17 +49,17 @@
private static final String TEXT = RHUBARD + RHUBARD + RHUBARD;
- MessageRow row;
+ MessageBuilder builder;
MessageSearches searches;
- Collection recent;
+ Collection<Long> recent;
protected void setUp() throws Exception {
super.setUp();
- recent = new ArrayList();
- row = new MessageRow();
- row.setUid(1009);
+ recent = new ArrayList<Long>();
+ builder = new MessageBuilder();
+ builder.uid = 1009;
searches = new MessageSearches();
}
@@ -71,7 +68,8 @@
}
public void testMatchSizeLessThan() throws Exception {
- row.setSize(SIZE);
+ builder.size = SIZE;
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE - 1), row,
recent));
assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE), row,
@@ -83,7 +81,8 @@
}
public void testMatchSizeMoreThan() throws Exception {
- row.setSize(SIZE);
+ builder.size = SIZE;
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE - 1), row,
recent));
assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE), row,
@@ -95,7 +94,8 @@
}
public void testMatchSizeEquals() throws Exception {
- row.setSize(SIZE);
+ builder.size = SIZE;
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.sizeEquals(SIZE - 1), row,
recent));
assertTrue(searches.isMatch(SearchQuery.sizeEquals(SIZE), row, recent));
@@ -106,7 +106,8 @@
}
public void testMatchInternalDateEquals() throws Exception {
- row.setInternalDate(SUN_SEP_9TH_2001);
+ builder.internalDate = SUN_SEP_9TH_2001;
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2000),
row, recent));
assertFalse(searches.isMatch(SearchQuery.internalDateOn(8, 9, 2001),
@@ -120,7 +121,8 @@
}
public void testMatchInternalDateBefore() throws Exception {
- row.setInternalDate(SUN_SEP_9TH_2001);
+ builder.internalDate = SUN_SEP_9TH_2001;
+ Message row = builder.build();
assertFalse(searches.isMatch(
SearchQuery.internalDateBefore(9, 9, 2000), row, recent));
assertFalse(searches.isMatch(
@@ -134,7 +136,8 @@
}
public void testMatchInternalDateAfter() throws Exception {
- row.setInternalDate(SUN_SEP_9TH_2001);
+ builder.internalDate = SUN_SEP_9TH_2001;
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2000),
row, recent));
assertTrue(searches.isMatch(SearchQuery.internalDateAfter(8, 9, 2001),
@@ -148,7 +151,8 @@
}
public void testMatchHeaderDateAfter() throws Exception {
- addHeader(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9,
9, 2000), row, recent));
assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 8,
@@ -164,7 +168,8 @@
}
public void testShouldMatchCapsHeaderDateAfter() throws Exception {
- addHeader(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9,
9, 2000), row, recent));
assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 8,
@@ -180,7 +185,8 @@
}
public void testShouldMatchLowersHeaderDateAfter() throws Exception {
- addHeader(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9,
9, 2000), row, recent));
assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 8,
@@ -196,7 +202,8 @@
}
public void testMatchHeaderDateOn() throws Exception {
- addHeader(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9,
2000), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 8, 9,
@@ -212,7 +219,8 @@
}
public void testShouldMatchCapsHeaderDateOn() throws Exception {
- addHeader(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9,
2000), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 8, 9,
@@ -228,7 +236,8 @@
}
public void testShouldMatchLowersHeaderDateOn() throws Exception {
- addHeader(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9,
2000), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 8, 9,
@@ -244,7 +253,8 @@
}
public void testMatchHeaderDateBefore() throws Exception {
- addHeader(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
9, 9, 2000), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
@@ -260,7 +270,8 @@
}
public void testShouldMatchCapsHeaderDateBefore() throws Exception {
- addHeader(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
9, 9, 2000), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
@@ -276,7 +287,8 @@
}
public void testShouldMatchLowersHeaderDateBefore() throws Exception {
- addHeader(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
9, 9, 2000), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
@@ -292,7 +304,8 @@
}
public void testMatchHeaderContainsCaps() throws Exception {
- addHeader(SUBJECT_FIELD, TEXT.toUpperCase());
+ builder.header(SUBJECT_FIELD, TEXT.toUpperCase());
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
CUSTARD), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -306,7 +319,8 @@
}
public void testMatchHeaderContainsLowers() throws Exception {
- addHeader(SUBJECT_FIELD, TEXT.toLowerCase());
+ builder.header(SUBJECT_FIELD, TEXT.toUpperCase());
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
CUSTARD), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -320,7 +334,8 @@
}
public void testMatchHeaderContains() throws Exception {
- addHeader(SUBJECT_FIELD, TEXT);
+ builder.header(SUBJECT_FIELD, TEXT.toUpperCase());
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
CUSTARD), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -334,7 +349,8 @@
}
public void testShouldMatchLowerHeaderContains() throws Exception {
- addHeader(SUBJECT_FIELD.toLowerCase(), TEXT);
+ builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
CUSTARD), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -348,7 +364,8 @@
}
public void testShouldMatchCapsHeaderContains() throws Exception {
- addHeader(SUBJECT_FIELD.toUpperCase(), TEXT);
+ builder.header(SUBJECT_FIELD.toUpperCase(), TEXT);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
CUSTARD), row, recent));
assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -362,7 +379,8 @@
}
public void testMatchHeaderExists() throws Exception {
- addHeader(SUBJECT_FIELD, TEXT);
+ builder.header(SUBJECT_FIELD, TEXT);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row,
recent));
assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD),
@@ -370,7 +388,8 @@
}
public void testShouldMatchLowersHeaderExists() throws Exception {
- addHeader(SUBJECT_FIELD.toLowerCase(), TEXT);
+ builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row,
recent));
assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD),
@@ -378,7 +397,8 @@
}
public void testShouldMatchUppersHeaderExists() throws Exception {
- addHeader(SUBJECT_FIELD.toUpperCase(), TEXT);
+ builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row,
recent));
assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD),
@@ -386,7 +406,8 @@
}
public void testShouldMatchUidRange() throws Exception {
- row.setPrimaryKey(1, 1729);
+ builder.setKey(1, 1729);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1)), row, recent));
assertFalse(searches.isMatch(SearchQuery.uid(range(1728, 1728)), row,
recent));
@@ -415,7 +436,8 @@
}
public void testShouldMatchSeenFlagSet() throws Exception {
- setFlags(true, false, false, false, false, false);
+ builder.setFlags(true, false, false, false, false, false);
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
row, recent));
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -431,7 +453,8 @@
}
public void testShouldMatchAnsweredFlagSet() throws Exception {
- setFlags(false, false, true, false, false, false);
+ builder.setFlags(false, false, true, false, false, false);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
row, recent));
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -447,7 +470,8 @@
}
public void testShouldMatchFlaggedFlagSet() throws Exception {
- setFlags(false, true, false, false, false, false);
+ builder.setFlags(false, true, false, false, false, false);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
row, recent));
assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -463,7 +487,8 @@
}
public void testShouldMatchDraftFlagSet() throws Exception {
- setFlags(false, false, false, true, false, false);
+ builder.setFlags(false, false, false, true, false, false);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
row, recent));
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -479,7 +504,8 @@
}
public void testShouldMatchDeletedFlagSet() throws Exception {
- setFlags(false, false, false, false, true, false);
+ builder.setFlags(false, false, false, false, true, false);
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
row, recent));
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -495,7 +521,8 @@
}
public void testShouldMatchSeenRecentSet() throws Exception {
- setFlags(false, false, false, false, false, false);
+ builder.setFlags(false, false, false, false, false, false);
+ Message row = builder.build();
recent.add(new Long(row.getUid()));
assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
row, recent));
@@ -512,7 +539,8 @@
}
public void testShouldMatchSeenFlagUnSet() throws Exception {
- setFlags(false, true, true, true, true, true);
+ builder.setFlags(false, true, true, true, true, true);
+ Message row = builder.build();
recent.add(new Long(row.getUid()));
assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
row, recent));
@@ -529,7 +557,8 @@
}
public void testShouldMatchAnsweredFlagUnSet() throws Exception {
- setFlags(true, true, false, true, true, true);
+ builder.setFlags(true, true, false, true, true, true);
+ Message row = builder.build();
recent.add(new Long(row.getUid()));
assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
row, recent));
@@ -546,7 +575,8 @@
}
public void testShouldMatchFlaggedFlagUnSet() throws Exception {
- setFlags(true, false, true, true, true, true);
+ builder.setFlags(true, false, true, true, true, true);
+ Message row = builder.build();
recent.add(new Long(row.getUid()));
assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
row, recent));
@@ -563,7 +593,8 @@
}
public void testShouldMatchDraftFlagUnSet() throws Exception {
- setFlags(true, true, true, false, true, true);
+ builder.setFlags(true, true, true, false, true, true);
+ Message row = builder.build();
recent.add(new Long(row.getUid()));
assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
row, recent));
@@ -580,7 +611,8 @@
}
public void testShouldMatchDeletedFlagUnSet() throws Exception {
- setFlags(true, true, true, true, false, true);
+ builder.setFlags(true, true, true, true, false, true);
+ Message row = builder.build();
recent.add(new Long(row.getUid()));
assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
row, recent));
@@ -597,7 +629,8 @@
}
public void testShouldMatchSeenRecentUnSet() throws Exception {
- setFlags(true, true, true, true, true, true);
+ builder.setFlags(true, true, true, true, true, true);
+ Message row = builder.build();
recent.add(new Long(row.getUid() + 1));
assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
row, recent));
@@ -614,10 +647,12 @@
}
public void testShouldMatchAll() throws Exception {
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.all(), row, recent));
}
public void testShouldMatchNot() throws Exception {
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.not(SearchQuery.all()), row,
recent));
assertTrue(searches.isMatch(SearchQuery.not(SearchQuery
@@ -625,6 +660,7 @@
}
public void testShouldMatchOr() throws Exception {
+ Message row = builder.build();
assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.all(),
SearchQuery.headerExists(DATE_FIELD)), row, recent));
assertTrue(searches.isMatch(SearchQuery.or(SearchQuery
@@ -637,6 +673,7 @@
}
public void testShouldMatchAnd() throws Exception {
+ Message row = builder.build();
assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.all(),
SearchQuery.headerExists(DATE_FIELD)), row, recent));
assertFalse(searches.isMatch(SearchQuery.and(SearchQuery
@@ -647,20 +684,7 @@
assertTrue(searches.isMatch(SearchQuery.and(SearchQuery.all(),
SearchQuery.all()), row, recent));
}
-
- private void setFlags(boolean seen, boolean flagged, boolean answered,
- boolean draft, boolean deleted, boolean recent)
- throws TorqueException {
- final MessageFlags messageFlags = new MessageFlags();
- messageFlags.setSeen(seen);
- messageFlags.setFlagged(flagged);
- messageFlags.setAnswered(answered);
- messageFlags.setDraft(draft);
- messageFlags.setDeleted(deleted);
- messageFlags.setRecent(recent);
- row.addMessageFlags(messageFlags);
- }
-
+
private SearchQuery.NumericRange[] range(long low, long high) {
SearchQuery.NumericRange[] results = { new SearchQuery.NumericRange(
low, high) };
@@ -674,12 +698,4 @@
new SearchQuery.NumericRange(lowTwo, highTwo) };
return results;
}
-
- private void addHeader(String fieldName, String value)
- throws TorqueException {
- final MessageHeader messageHeader = new MessageHeader();
- messageHeader.setField(fieldName);
- messageHeader.setValue(value);
- row.addMessageHeader(messageHeader);
- }
}
Modified: james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java?rev=730371&r1=730370&r2=730371&view=diff
==============================================================================
--- james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java (original)
+++ james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java Wed Dec 31 02:44:55 2008
@@ -416,13 +416,13 @@
private final Set recentMessageUids = new HashSet();
- private final List criterias = new ArrayList();
+ private final List<Criterion> criterias = new ArrayList<Criterion>();
public void andCriteria(Criterion crit) {
criterias.add(crit);
}
- public List getCriterias() {
+ public List<Criterion> getCriterias() {
return criterias;
}
@@ -437,7 +437,7 @@
return recentMessageUids;
}
- // @Override
+ @Override
public String toString() {
return "Search:" + criterias.toString();
}
@@ -445,7 +445,7 @@
/**
* @see java.lang.Object#hashCode()
*/
- // @Override
+ @Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
@@ -457,7 +457,7 @@
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
- // @Override
+ @Override
public boolean equals(Object obj) {
if (this == obj)
return true;
Propchange: james/protocols/imap/trunk/stage/org.apache.geronimo.specs/jars/geronimo-jta_1.1_spec-1.1.LICENSE
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: james/protocols/imap/trunk/stage/org.apache.geronimo.specs/jars/geronimo-jta_1.1_spec-1.1.NOTICE
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: james/protocols/imap/trunk/stage/org.apache.geronimo.specs/jars/geronimo-jta_1.1_spec-1.1.jar
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: james/protocols/imap/trunk/stage/org.apache.geronimo.specs/jars/geronimo-jta_1.1_spec-1.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org