Ahh but we are so Naughty! So we use Hibernate for basic mailbox representation but not (ahem) the email itself. The problem isn't hibernate of course, it is that many JDBC drivers do not have proper support for BLOBs. So we impelmented a framework to "Do the RightThing(tm)" for each database that we test with (MySQL, Postgresql and Oracle). We support the JDBC2+ blobs but don't use it for MySQL for instance (because with MySQL blob.getInputStream returns a byte array stream which is BAD). Hibernate is actually perfect for mailbox operations (adding a mail, retreiving mails). You just Session.evict() every mail as you read it and use scrollable resultset when reading a mailbox (note that if we don't do this at the HEAD then we will by M3).

Basically... mails come in, when "DATA" is issued we redirect the stream to a blob immediately. The blob is actually seperate from the mailbox but the blob store thingy returns an id that is stored in the mailbox (this will eventually allow us to do de-duplication and potentially even versioning as well). When the mail is sent it is forwarded to a mail listener chain. The default chain sends the mail object to JMS (minus the blob of course), it is analized for locality vs non-locality and queued seperately. MDBeans pick up the mail and call to the SMTPSenderMBean to send mails out or just store it in the proper local users mailbox otherwise. It turned out that JMS is acutally pretty much "the right thing" provided we again don't use it for the BLOB to store the mail in. (this has obvious limitations that you cant JMS to a remote JMS not connected to the same datastore, but no body's perfect right? and who would want to copy it around that much anyhow....use relaying for that)

We probably will switch to AOP'd pojos soon for security especially. We have some tricks we want to play that are just strictly geek porn! AOP Aspects + Hibernate filters = completely decoupled security concerns! We need those for not having the security policy form large if statements all throughout the mail code and to allow better pluggable mail listeners etc.

-andy

Erik Hatcher wrote:

On May 13, 2005, at 11:11 PM, jeff.headley wrote:

Bummer. I was looking forward to it since I'm getting familiar with  the
JBoss Mail server.


But surely the JBoss Mail Server (JBMS?) has deep Hibernate/EJB3 links because it's surely the right too to manage lots and lots of data? I mean that somewhat jokingly because I'm pretty sure Andy would thumb his nose at the concept. I'm probing because data searching is facilitated by its representation - what does JBoss Mail Server use for it's storage (invoking the lazy web via e-mail for the answer Google could probably give me in fewer words).

    Erik



Jeff

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of [EMAIL PROTECTED]
Sent: Friday, May 13, 2005 10:53 PM
To: [email protected]
Subject: [Juglist] Monday's talk


Hi All,

The bad news is that I won't be able to do the talk on Monday, I
appologize but a client engagement got extended so I'm stuck in
California.  That being said, I think I found a half way decent switch
hitter in one of my Co-workers at JBoss, Gavin King.  Gavin knows a
couple things about Hibernate, POJO Persistence and the EJB3 spec that
he'd like to share.

Sorry to do this last minute but I didn't know earlier and didn't know
for sure until today.

Thanks,

-Andy

PS. For those of you who don't know... Gavin is the original author of
Hibernate, co-author of Hibernate In Action, and probably the leading
contributor of the EJB3 persistence specification.

_______________________________________________
Juglist mailing list
[email protected]
http://trijug.org/mailman/listinfo/juglist_trijug.org


_______________________________________________ Juglist mailing list [email protected] http://trijug.org/mailman/listinfo/juglist_trijug.org



_______________________________________________
Juglist mailing list
[email protected]
http://trijug.org/mailman/listinfo/juglist_trijug.org
.



_______________________________________________
Juglist mailing list
[email protected]
http://trijug.org/mailman/listinfo/juglist_trijug.org

Reply via email to