Repository: james-project Updated Branches: refs/heads/master aec24c4e9 -> 2e8efa384
JAMES-1849 Enable MPT testing for Jpa Mailbox Annotations Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/7b0d3185 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/7b0d3185 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/7b0d3185 Branch: refs/heads/master Commit: 7b0d31858067f97ff746c5ce74feb4af338b69cc Parents: b6cd9e2 Author: Benoit Tellier <btell...@linagora.com> Authored: Wed Nov 9 05:33:12 2016 +0100 Committer: Benoit Tellier <btell...@linagora.com> Committed: Wed Nov 9 05:33:12 2016 +0100 ---------------------------------------------------------------------- .../apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java | 7 +++---- .../james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java | 3 +-- mpt/impl/imap-mailbox/core/src/main/resources/logback.xml | 4 +++- .../resources/org/apache/james/imap/scripts/Annotation.test | 3 ++- .../apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java | 6 ++++-- 5 files changed, 13 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/7b0d3185/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java index 4ba35ad..0704c9f 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java @@ -156,10 +156,9 @@ public class JPAAnnotationMapper extends JPATransactionalMapper implements Annot public void deleteAnnotation(MailboxId mailboxId, MailboxAnnotationKey key) { try { JPAId jpaId = (JPAId) mailboxId; - getEntityManager().createNamedQuery("deleteAnnotation") - .setParameter("idParam", jpaId.getRawId()) - .setParameter("key", key.asString()) - .executeUpdate(); + JPAMailboxAnnotation jpaMailboxAnnotation = getEntityManager() + .find(JPAMailboxAnnotation.class, new JPAMailboxAnnotation.JPAMailboxAnnotationId(jpaId.getRawId(), key.asString())); + getEntityManager().remove(jpaMailboxAnnotation); } catch (NoResultException e) { LOGGER.debug("Mailbox annotation not found for ID {} and key {}", mailboxId.serialize(), key.asString()); } catch (PersistenceException pe) { http://git-wip-us.apache.org/repos/asf/james-project/blob/7b0d3185/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java index fe9ce8e..5836f24 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java @@ -35,8 +35,7 @@ import com.google.common.base.Objects; @NamedQueries({ @NamedQuery(name = "retrieveAllAnnotations", query = "SELECT annotation FROM MailboxAnnotation annotation WHERE annotation.mailboxId = :idParam"), @NamedQuery(name = "retrieveByKey", query = "SELECT annotation FROM MailboxAnnotation annotation WHERE annotation.mailboxId = :idParam AND annotation.key = :keyParam"), - @NamedQuery(name = "retrieveByKeyLike", query = "SELECT annotation FROM MailboxAnnotation annotation WHERE annotation.mailboxId = :idParam AND annotation.key LIKE :keyParam"), - @NamedQuery(name = "deleteAnnotation", query = "DELETE FROM MailboxAnnotation annotation WHERE annotation.mailboxId = :idParam AND annotation.key = :key")}) + @NamedQuery(name = "retrieveByKeyLike", query = "SELECT annotation FROM MailboxAnnotation annotation WHERE annotation.mailboxId = :idParam AND annotation.key LIKE :keyParam")}) @IdClass(JPAMailboxAnnotation.JPAMailboxAnnotationId.class) public class JPAMailboxAnnotation { http://git-wip-us.apache.org/repos/asf/james-project/blob/7b0d3185/mpt/impl/imap-mailbox/core/src/main/resources/logback.xml ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/logback.xml b/mpt/impl/imap-mailbox/core/src/main/resources/logback.xml index 85ee3d4..72816f6 100644 --- a/mpt/impl/imap-mailbox/core/src/main/resources/logback.xml +++ b/mpt/impl/imap-mailbox/core/src/main/resources/logback.xml @@ -16,7 +16,9 @@ <appender-ref ref="CONSOLE" /> </root> - <logger name="org.apache.james" level="DEBUG"/> + <logger name="org.apache.james" level="DEBUG"> + <appender-ref ref="CONSOLE" /> + </logger> </configuration> http://git-wip-us.apache.org/repos/asf/james-project/blob/7b0d3185/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Annotation.test ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Annotation.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Annotation.test index 673729a..4114b1a 100644 --- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Annotation.test +++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Annotation.test @@ -80,7 +80,8 @@ C: s2 SETMETADATA INBOX (/shared/comment "The shared comment") S: s2 OK SETMETADATA completed. C: g3 GETMETADATA "INBOX" (/shared/comment /private/comment) -S: \* METADATA "INBOX" \(\/private\/comment "My own comment" \/shared\/comment "The shared comment"\) +# Regex used to be order agnostic. Annotation1 Annotation2 OR Annotation2 Annotation1 +S: \* METADATA "INBOX" \((\/private\/comment "My own comment" \/shared\/comment "The shared comment"|\/shared\/comment "The shared comment" \/private\/comment "My own comment")\) S: g3 OK GETMETADATA completed. C: g4 GETMETADATA "INBOX" http://git-wip-us.apache.org/repos/asf/james-project/blob/7b0d3185/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java index b22b8ac..2f13699 100644 --- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java +++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java @@ -40,6 +40,7 @@ import org.apache.james.mailbox.jpa.JPASubscriptionManager; import org.apache.james.mailbox.jpa.mail.JPAModSeqProvider; import org.apache.james.mailbox.jpa.mail.JPAUidProvider; import org.apache.james.mailbox.jpa.mail.model.JPAMailbox; +import org.apache.james.mailbox.jpa.mail.model.JPAMailboxAnnotation; import org.apache.james.mailbox.jpa.mail.model.JPAProperty; import org.apache.james.mailbox.jpa.mail.model.JPAUserFlag; import org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage; @@ -63,7 +64,7 @@ import org.slf4j.LoggerFactory; public class JPAHostSystem extends JamesImapHostSystem { public static final String META_DATA_DIRECTORY = "target/user-meta-data"; - private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(Feature.NAMESPACE_SUPPORT, Feature.USER_FLAGS_SUPPORT); + private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(Feature.NAMESPACE_SUPPORT, Feature.USER_FLAGS_SUPPORT, Feature.ANNOTATION_SUPPORT); public static JamesImapHostSystem build() throws Exception { return new JPAHostSystem(); @@ -111,7 +112,8 @@ public class JPAHostSystem extends JamesImapHostSystem { JPAMailboxMessage.class.getName() + ";" + JPAProperty.class.getName() + ";" + JPAUserFlag.class.getName() + ";" + - JPASubscription.class.getName() + ")"); + JPASubscription.class.getName() + ";" + + JPAMailboxAnnotation.class.getName() + ")"); userManager = new FakeAuthenticator(); entityManagerFactory = OpenJPAPersistence.getEntityManagerFactory(properties); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org