james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Charles <e...@apache.org>
Subject JPA for imap 0.1 release
Date Thu, 24 Jun 2010 18:35:25 GMT
Hi,

Before releasing IMAP, I propose the following for JPA:

1. JAMES ships with openjpa but is open to other JPA providers via the 
<provider/> tag:
- org.apache.openjpa.persistence.PersistenceProviderImpl for openjpa 
(the standard)
- org.hibernate.ejb.HibernatePersistence for hibernate
- org.eclipse.persistence.jpa.PersistenceProvider for eclipselink

2. We add @ElementJoinColumn(name="MESSAGE_ID") on JPAProperty and 
JPAHeader in the AbstractJPAMessage 
(org.apache.openjpa.persistence.jdbc.ElementJoinColumn) to avoid 
intermediate tables.

3. We implement @Index (org.apache.openjpa.persistence.jdbc.Index) where 
needed to increase performance. This will be critical for large (and not 
so large) mailboxes.

4. The majority of the classes will use openjpa classes: instead of 
moving them all to org.apache.james.imap.jpa.mail.model.openjpa package, 
we leave them and we rename this package to 
org.apache.james.imap.jpa.mail.model.streaming to reflect that it goes 
on "streaming the blobs".

The definition of an alternate JPA provider should not clash with the 
proprietary extensions (still need to test it).
What's your opinion on this?

Tks,

Eric


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message