[jboss-cvs] jboss-mail/src/java/org/jboss/mail/mailbox ...

Michael Barker mike at middlesoft.co.uk
Sat Jul 29 02:51:19 EDT 2006


  User: mikezzz 
  Date: 06/07/29 02:51:19

  Modified:    src/java/org/jboss/mail/mailbox  MailboxServiceImpl.java
  Log:
  JBMAIL-246: Implement per-folder message id
  
  Revision  Changes    Path
  1.40      +31 -1     jboss-mail/src/java/org/jboss/mail/mailbox/MailboxServiceImpl.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: MailboxServiceImpl.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-mail/src/java/org/jboss/mail/mailbox/MailboxServiceImpl.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -b -r1.39 -r1.40
  --- MailboxServiceImpl.java	11 Jun 2006 14:06:23 -0000	1.39
  +++ MailboxServiceImpl.java	29 Jul 2006 06:51:19 -0000	1.40
  @@ -24,6 +24,7 @@
   import static org.jboss.mail.util.HibernateUtil.getSession;
   import static org.jboss.mail.util.HibernateUtil.singleResult;
   
  +import java.math.BigInteger;
   import java.sql.Connection;
   import java.sql.PreparedStatement;
   import java.util.ArrayList;
  @@ -49,7 +50,7 @@
    * 
    * @author Andrew C. Oliver
    * @author Jason Pugsley
  - * @version $Revision: 1.39 $
  + * @version $Revision: 1.40 $
    */
   // @Service
   // @Management(org.jboss.mail.mailbox.MailboxService.class)
  @@ -249,6 +250,7 @@
   		emInit();
   		Folder folder = session.find(Folder.class, xfolder.getId());
   		folder.addMessage(mail);
  +        
   		mail.setFolder(folder);
   		session.persist(mail);
   	}
  @@ -290,6 +292,34 @@
   		return true;
   	}
   
  +    @Tx(TxType.REQUIRESNEW)
  +    public long getNextMessageId(long folderId) {
  +        emInit();
  +        
  +        String queryStr;
  +        
  +        System.out.println("Hacks: " + hacks);
  +        
  +        if ("hsqldb".equals(hacks)) {
  +            queryStr = "SELECT NEXTMESSAGEID FROM FOLDERSEQUENCE WHERE FOLDER_ID = :folderId";            
  +        } else {
  +            queryStr = "SELECT NEXTMESSAGEID FROM FOLDERSEQUENCE WHERE FOLDER_ID = :folderId FOR UPDATE";
  +        }
  +        
  +        Query getQ = session.createNativeQuery(queryStr);
  +        getQ.setParameter("folderId", new Long(folderId));
  +        BigInteger val = (BigInteger) getQ.getSingleResult();
  +        long messageId = val.longValue();
  +        
  +        long nextMessageId = messageId + 1;
  +        Query updateQ = session.createNativeQuery("UPDATE FOLDERSEQUENCE SET NEXTMESSAGEID = :nextMessageId WHERE FOLDER_ID = :folderId");
  +        updateQ.setParameter("nextMessageId", nextMessageId);
  +        updateQ.setParameter("folderId", folderId);
  +        updateQ.executeUpdate();
  +        
  +        return messageId;
  +    }
  +
   	/**
   	 * @param folder
   	 * @return
  
  
  



More information about the jboss-cvs-commits mailing list