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 er...@apache.org on 2010/07/29 18:03:48 UTC
svn commit: r980495 - in /james/imap/trunk:
deployment/src/test/java/org/apache/james/imap/functional/jpa/
jpa/src/main/java/org/apache/james/imap/jpa/mail/
jpa/src/main/java/org/apache/james/imap/jpa/mail/model/
jpa/src/main/java/org/apache/james/imap...
Author: eric
Date: Thu Jul 29 16:03:47 2010
New Revision: 980495
URL: http://svn.apache.org/viewvc?rev=980495&view=rev
Log:
Use @Index in AbstractMailboxMembership (IMAP-165) + Use @ElementJoinColumn in AbstractJPAMessage (IMAP-180)
Added:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java
- copied, changed from r980373, james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMailboxMembership.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMessage.java
- copied, changed from r980373, james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMessage.java
Removed:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMailboxMembership.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMessage.java
Modified:
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAStressTest.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMailboxMembership.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
Modified: james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAStressTest.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAStressTest.java?rev=980495&r1=980494&r2=980495&view=diff
==============================================================================
--- james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAStressTest.java (original)
+++ james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAStressTest.java Thu Jul 29 16:03:47 2010
@@ -27,7 +27,14 @@ import org.apache.commons.logging.impl.S
import org.apache.james.imap.functional.AbstractStressTest;
import org.apache.james.imap.jpa.JPAMailboxSessionMapperFactory;
import org.apache.james.imap.jpa.JPASubscriptionManager;
+import org.apache.james.imap.jpa.mail.model.JPAMailbox;
+import org.apache.james.imap.jpa.mail.model.JPAMailboxMembership;
+import org.apache.james.imap.jpa.mail.model.JPAMessage;
+import org.apache.james.imap.jpa.mail.model.JPAProperty;
+import org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMailboxMembership;
+import org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMessage;
import org.apache.james.imap.jpa.openjpa.OpenJPAMailboxManager;
+import org.apache.james.imap.jpa.user.model.JPASubscription;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxSession;
import org.apache.james.imap.store.StoreMailboxManager;
@@ -54,13 +61,13 @@ public class JPAStressTest extends Abstr
properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72");
properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
properties.put("openjpa.MetaDataFactory", "jpa(Types=org.apache.james.imap.jpa.mail.model.JPAHeader;" +
- "org.apache.james.imap.jpa.mail.model.JPAMailbox;" +
- "org.apache.james.imap.jpa.mail.model.AbstractJPAMailboxMembership;" +
- "org.apache.james.imap.jpa.mail.model.JPAMailboxMembership;" +
- "org.apache.james.imap.jpa.mail.model.AbstractJPAMessage;" +
- "org.apache.james.imap.jpa.mail.model.JPAMessage;" +
- "org.apache.james.imap.jpa.mail.model.JPAProperty;" +
- "org.apache.james.imap.jpa.user.model.JPASubscription)");
+ JPAMailbox.class.getName() + ";" +
+ AbstractJPAMailboxMembership.class.getName() + ";" +
+ JPAMailboxMembership.class.getName() + ";" +
+ AbstractJPAMessage.class.getName() + ";" +
+ JPAMessage.class.getName() + ";" +
+ JPAProperty.class.getName() + ";" +
+ JPASubscription.class.getName() + ")");
properties.put("openjpa.LockTimeout", locktimeout + "");
entityManagerFactory = OpenJPAPersistence.getEntityManagerFactory(properties);
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java?rev=980495&r1=980494&r2=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java Thu Jul 29 16:03:47 2010
@@ -26,8 +26,8 @@ import javax.persistence.Query;
import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.jpa.JPATransactionalMapper;
-import org.apache.james.imap.jpa.mail.model.AbstractJPAMailboxMembership;
import org.apache.james.imap.jpa.mail.model.JPAMailboxMembership;
+import org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMailboxMembership;
import org.apache.james.imap.jpa.mail.model.openjpa.JPAStreamingMailboxMembership;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MessageRange;
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java?rev=980495&r1=980494&r2=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java Thu Jul 29 16:03:47 2010
@@ -30,6 +30,7 @@ import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMailboxMembership;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.store.mail.model.Document;
import org.apache.james.imap.store.mail.model.PropertyBuilder;
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java?rev=980495&r1=980494&r2=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java Thu Jul 29 16:03:47 2010
@@ -29,6 +29,7 @@ import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Lob;
+import org.apache.james.imap.jpa.mail.model.openjpa.AbstractJPAMessage;
import org.apache.james.imap.store.mail.model.Document;
import org.apache.james.imap.store.mail.model.PropertyBuilder;
import org.apache.james.imap.store.streaming.StreamUtils;
Copied: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java (from r980373, james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMailboxMembership.java)
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java?p2=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java&p1=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMailboxMembership.java&r1=980373&r2=980495&rev=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMailboxMembership.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMailboxMembership.java Thu Jul 29 16:03:47 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imap.jpa.mail.model;
+package org.apache.james.imap.jpa.mail.model.openjpa;
import java.io.IOException;
import java.io.Serializable;
@@ -31,10 +31,12 @@ import javax.persistence.MappedSuperclas
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
+import org.apache.james.imap.jpa.mail.model.JPAHeader;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.store.mail.model.AbstractMailboxMembership;
import org.apache.james.imap.store.mail.model.MailboxMembership;
import org.apache.james.imap.store.mail.model.PropertyBuilder;
+import org.apache.openjpa.persistence.jdbc.Index;
@MappedSuperclass
@IdClass(AbstractJPAMailboxMembership.MailboxIdUidKey.class)
@@ -122,7 +124,7 @@ public abstract class AbstractJPAMailbox
@Basic(optional=false) private boolean answered = false;
/** The value for the deleted field */
- @Basic(optional=false) private boolean deleted = false;
+ @Basic(optional=false) @Index private boolean deleted = false;
/** The value for the draft field */
@Basic(optional=false) private boolean draft = false;
@@ -131,10 +133,10 @@ public abstract class AbstractJPAMailbox
@Basic(optional=false) private boolean flagged = false;
/** The value for the recent field */
- @Basic(optional=false) private boolean recent = false;
+ @Basic(optional=false) @Index private boolean recent = false;
/** The value for the seen field */
- @Basic(optional=false) private boolean seen = false;
+ @Basic(optional=false) @Index private boolean seen = false;
/**
Copied: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMessage.java (from r980373, james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMessage.java)
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMessage.java?p2=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMessage.java&p1=james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMessage.java&r1=980373&r2=980495&rev=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/AbstractJPAMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/AbstractJPAMessage.java Thu Jul 29 16:03:47 2010
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.imap.jpa.mail.model;
+package org.apache.james.imap.jpa.mail.model.openjpa;
import java.util.ArrayList;
import java.util.List;
@@ -30,11 +30,14 @@ import javax.persistence.MappedSuperclas
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
+import org.apache.james.imap.jpa.mail.model.JPAHeader;
+import org.apache.james.imap.jpa.mail.model.JPAProperty;
import org.apache.james.imap.store.mail.model.AbstractDocument;
import org.apache.james.imap.store.mail.model.Document;
import org.apache.james.imap.store.mail.model.Header;
import org.apache.james.imap.store.mail.model.Property;
import org.apache.james.imap.store.mail.model.PropertyBuilder;
+import org.apache.openjpa.persistence.jdbc.ElementJoinColumn;
/**
* Abstract base class for JPA based implementations of {@link AbstractDocument}
@@ -46,7 +49,7 @@ public abstract class AbstractJPAMessage
@Id@GeneratedValue private long id;
/** Headers for this message */
- @OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY) private List<JPAHeader> headers;
+ @OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY) @ElementJoinColumn(name="MESSAGE_ID") private List<JPAHeader> headers;
/** The first body octet */
@Basic(optional=false) private int bodyStartOctet;
/** Number of octets in the full document content */
@@ -56,7 +59,7 @@ public abstract class AbstractJPAMessage
/** MIME sub type */
@Basic(optional=true) private String subType;
/** Meta data for this message */
- @OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY) @OrderBy("line") private List<JPAProperty> properties;
+ @OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY) @OrderBy("line") @ElementJoinColumn(name="MESSAGE_ID") private List<JPAProperty> properties;
/** THE CRFL count when this document is textual, null otherwise */
@Basic(optional=true) private Long textualLineCount;
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMailboxMembership.java?rev=980495&r1=980494&r2=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMailboxMembership.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMailboxMembership.java Thu Jul 29 16:03:47 2010
@@ -30,7 +30,6 @@ import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import org.apache.james.imap.api.display.HumanReadableText;
-import org.apache.james.imap.jpa.mail.model.AbstractJPAMailboxMembership;
import org.apache.james.imap.jpa.mail.model.JPAHeader;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.store.mail.model.Document;
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java?rev=980495&r1=980494&r2=980495&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java Thu Jul 29 16:03:47 2010
@@ -28,7 +28,6 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
-import org.apache.james.imap.jpa.mail.model.AbstractJPAMessage;
import org.apache.james.imap.jpa.mail.model.JPAHeader;
import org.apache.james.imap.jpa.mail.model.JPAMessage;
import org.apache.james.imap.store.mail.model.Document;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org