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
     @i...@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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to