Modified: james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java?rev=602696&r1=602695&r2=602696&view=diff ============================================================================== --- james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java (original) +++ james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java Sun Dec 9 09:00:04 2007 @@ -42,7 +42,6 @@ public class TorqueMailboxTestCase extends AbstractTorqueTestCase { - public TorqueMailboxTestCase() throws TorqueException { super(); } @@ -51,10 +50,9 @@ MailboxRow mr = new MailboxRow("#users.tuser.INBOX", 100); mr.save(); mr=MailboxRowPeer.retrieveByName("#users.tuser.INBOX"); - ImapMailbox torqueMailbox = new TorqueMailbox(mr, - new WriterPreferenceReadWriteLock(),null, 1); + ImapMailbox torqueMailbox = new TorqueMailbox(mr, new WriterPreferenceReadWriteLock(),null); torqueMailbox.addListener(new MailboxListenerCollector()); - assertEquals(0,torqueMailbox.getMessageCount()); + assertEquals(0,torqueMailbox.getMessageCount(session)); long time = System.currentTimeMillis(); time = time - (time % 1000); @@ -65,8 +63,8 @@ flags.add(Flags.Flag.SEEN); mm.setFlags(flags,true); mm.writeTo(System.out); - torqueMailbox.appendMessage(mm, date, 0); - assertEquals(1,torqueMailbox.getMessageCount()); + torqueMailbox.appendMessage(mm, date, 0, session); + assertEquals(1,torqueMailbox.getMessageCount(session)); List l = MessageRowPeer.doSelect(new Criteria()); assertEquals(1, l.size()); MessageRow msg = (MessageRow) l.get(0); @@ -79,7 +77,7 @@ mr = MailboxRowPeer.retrieveByPK(mr.getMailboxId()); assertEquals(1, mr.getLastUid()); - List messageResult=IteratorUtils.toList(torqueMailbox.getMessages(GeneralMessageSetImpl.oneUid(1l),MessageResult.MIME_MESSAGE)); + List messageResult=IteratorUtils.toList(torqueMailbox.getMessages(GeneralMessageSetImpl.oneUid(1l),MessageResult.MIME_MESSAGE, session)); assertNotNull(messageResult); assertEquals(1,messageResult.size()); //((MessageResult)messageResult.get(0)).getMimeMessage().writeTo(System.out); @@ -87,8 +85,8 @@ Flags f=new Flags(); f.add(Flags.Flag.DELETED); - torqueMailbox.setFlags(f,true,false, GeneralMessageSetImpl.oneUid(1l), MessageResult.MINIMAL); - List messageResults=IteratorUtils.toList(torqueMailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.MINIMAL)); + torqueMailbox.setFlags(f,true,false, GeneralMessageSetImpl.oneUid(1l), MessageResult.MINIMAL, session); + List messageResults=IteratorUtils.toList(torqueMailbox.expunge(GeneralMessageSetImpl.all(),MessageResult.MINIMAL, session)); assertEquals(1,messageResults.size()); assertEquals(1l,((MessageResult)messageResults.get(0)).getUid()); }
Modified: james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java?rev=602696&r1=602695&r2=602696&view=diff ============================================================================== --- james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java (original) +++ james/server/trunk/phoenix-deployment/src/test/org/apache/james/mailboxmanager/torque/repository/TorqueMailboxManagerMailRepositoryNativeTestCase.java Sun Dec 9 09:00:04 2007 @@ -34,6 +34,7 @@ import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; import org.apache.commons.collections.IteratorUtils; import org.apache.james.mailboxmanager.MailboxManagerException; +import org.apache.james.mailboxmanager.MailboxSession; import org.apache.james.mailboxmanager.MessageResult; import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl; import org.apache.james.mailboxmanager.mailbox.ImapMailbox; @@ -41,6 +42,7 @@ import org.apache.james.mailboxmanager.mock.TorqueMailboxManagerProviderSingleton; import org.apache.james.mailboxmanager.redundant.AbstractMailRepositoryNativeTestCase; import org.apache.james.mailboxmanager.repository.MailboxManagerMailRepository; +import org.apache.james.mailboxmanager.torque.TorqueMailboxSession; public class TorqueMailboxManagerMailRepositoryNativeTestCase extends AbstractMailRepositoryNativeTestCase { @@ -48,6 +50,8 @@ private static final String TUSER_INBOX = "#mail.tuser.INBOX"; ImapMailbox shadowMailbox = null; + private MailboxSession session = new TorqueMailboxSession(10); + protected void configureRepository() throws Exception { TorqueMailboxManagerProviderSingleton.reset(); MailboxManagerMailRepository mailboxManagerMailRepository = new MailboxManagerMailRepository(); @@ -95,7 +99,7 @@ protected int getNativeMessageCount() { try { - return getShadowMailbox().getMessageCount(); + return getShadowMailbox().getMessageCount(session); } catch (MailboxManagerException e) { throw new RuntimeException(e); } @@ -110,7 +114,7 @@ final Iterator it; try { it = getShadowMailbox().getMessages(GeneralMessageSetImpl.all(), - MessageResult.MIME_MESSAGE); + MessageResult.MIME_MESSAGE, session); } catch (MailboxManagerException e) { throw new RuntimeException(e); @@ -122,7 +126,7 @@ protected void nativeStoreMessage(MimeMessage mm) { try { getShadowMailbox().appendMessage(mm, new Date(), - MessageResult.MINIMAL); + MessageResult.MINIMAL, session); } catch (MailboxManagerException e) { throw new RuntimeException(e); } Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/Actions.java URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/Actions.java?rev=602696&r1=602695&r2=602696&view=diff ============================================================================== --- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/Actions.java (original) +++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/Actions.java Sun Dec 9 09:00:04 2007 @@ -33,6 +33,7 @@ import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.james.Constants; +import org.apache.james.mailboxmanager.MailboxSession; import org.apache.james.mailboxmanager.mailbox.Mailbox; import org.apache.james.mailboxmanager.manager.MailboxManager; import org.apache.james.mailboxmanager.manager.MailboxManagerProvider; @@ -115,8 +116,11 @@ final String mailboxName = mailboxManagerProvider.getPersonalDefaultNamespace(user).getName() + MailboxManager.HIERARCHY_DELIMITER + destinationMailbox; - Mailbox mailbox=mailboxManagerProvider.getMailboxManager().getImapMailbox(mailboxName, true); - mailbox.store(localMessage); + final MailboxManager mailboxManager = mailboxManagerProvider.getMailboxManager(); + Mailbox mailbox=mailboxManager.getImapMailbox(mailboxName, true); + final MailboxSession session = mailboxManager.createSession(); + mailbox.store(localMessage, session); + session.close(); delivered = true; } catch (MessagingException ex) Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java?rev=602696&r1=602695&r2=602696&view=diff ============================================================================== --- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java (original) +++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java Sun Dec 9 09:00:04 2007 @@ -34,6 +34,7 @@ import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.james.Constants; +import org.apache.james.mailboxmanager.MailboxSession; import org.apache.james.mailboxmanager.mailbox.Mailbox; import org.apache.james.mailboxmanager.manager.MailboxManager; import org.apache.james.mailboxmanager.manager.MailboxManagerProvider; @@ -237,14 +238,17 @@ final String inboxName = mailboxManagerProvider.getPersonalDefaultNamespace(new DefaultUser(username, null)) .getName() + MailboxManager.HIERARCHY_DELIMITER+"INBOX"; - Mailbox inbox = mailboxManagerProvider.getMailboxManager().getImapMailbox(inboxName, true); + final MailboxManager mailboxManager = mailboxManagerProvider.getMailboxManager(); + final MailboxSession session = mailboxManager.createSession(); + Mailbox inbox = mailboxManager.getImapMailbox(inboxName, true); if (inbox == null) { String error = "Mailbox for user " + username + " was not found on this server."; throw new MessagingException(error); } - inbox.store(message); + inbox.store(message, session); + session.close(); } /** Modified: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java?rev=602696&r1=602695&r2=602696&view=diff ============================================================================== --- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java (original) +++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java Sun Dec 9 09:00:04 2007 @@ -39,6 +39,7 @@ import org.apache.james.mailboxmanager.GeneralMessageSet; import org.apache.james.mailboxmanager.MailboxListener; import org.apache.james.mailboxmanager.MailboxManagerException; +import org.apache.james.mailboxmanager.MailboxSession; import org.apache.james.mailboxmanager.MessageResult; import org.apache.james.mailboxmanager.SearchParameters; import org.apache.james.mailboxmanager.UnsupportedCriteriaException; @@ -80,28 +81,20 @@ private final ReadWriteLock lock; - private final long sessionId; - - TorqueMailbox(final MailboxRow mailboxRow, final ReadWriteLock lock, - final Log log, final long sessionId) { + TorqueMailbox(final MailboxRow mailboxRow, final ReadWriteLock lock, final Log log) { setLog(log); - this.sessionId = sessionId; this.mailboxRow = mailboxRow; this.tracker = new UidChangeTracker(mailboxRow.getLastUid()); this.lock = lock; getUidToKeyConverter().setUidValidity(mailboxRow.getUidValidity()); } - - public long getSessionId() { - return sessionId; - } public synchronized String getName() throws MailboxManagerException { checkAccess(); return mailboxRow.getName(); } - public int getMessageCount() throws MailboxManagerException { + public int getMessageCount(MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); try { @@ -120,7 +113,7 @@ } public MessageResult appendMessage(MimeMessage message, Date internalDate, - int result) throws MailboxManagerException { + int result, MailboxSession mailboxSession) throws MailboxManagerException { try { checkAccess(); @@ -285,7 +278,7 @@ return criteria; } - public Iterator getMessages(GeneralMessageSet set, int result) + public Iterator getMessages(GeneralMessageSet set, int result, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); @@ -350,7 +343,7 @@ return permanentFlags; } - public int getRecentCount(boolean reset) throws MailboxManagerException { + public int getRecentCount(boolean reset, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); try { @@ -376,7 +369,7 @@ } } - public MessageResult getFirstUnseen(int result) + public MessageResult getFirstUnseen(int result, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); @@ -419,7 +412,7 @@ } } - public int getUnseenCount() throws MailboxManagerException { + public int getUnseenCount(MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); try { @@ -440,7 +433,7 @@ } } - public Iterator expunge(GeneralMessageSet set, int result) + public Iterator expunge(GeneralMessageSet set, int result, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.writeLock().acquire(); @@ -501,12 +494,12 @@ } public Iterator setFlags(Flags flags, boolean value, boolean replace, - GeneralMessageSet set, int result) + GeneralMessageSet set, int result, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.writeLock().acquire(); try { - return doSetFlags(flags, value, replace, set, result); + return doSetFlags(flags, value, replace, set, result, mailboxSession); } finally { lock.writeLock().release(); } @@ -517,7 +510,7 @@ } private Iterator doSetFlags(Flags flags, boolean value, boolean replace, - GeneralMessageSet set, int results) throws MailboxManagerException { + GeneralMessageSet set, int results, MailboxSession mailboxSession) throws MailboxManagerException { checkAccess(); set=toUidSet(set); if (!set.isValid() || set.getType()==GeneralMessageSet.TYPE_NOTHING) { @@ -551,7 +544,7 @@ final TorqueResultIterator resultIterator = new TorqueResultIterator(messageRows, results | MessageResult.FLAGS, getUidToKeyConverter()); final org.apache.james.mailboxmanager.impl.MessageFlags[] messageFlags = resultIterator.getMessageFlags(); - tracker.flagsUpdated(messageFlags, sessionId); + tracker.flagsUpdated(messageFlags, mailboxSession.getSessionId()); tracker.found(uidRange, messageFlags); return resultIterator; } catch (TorqueException e) { @@ -573,7 +566,7 @@ tracker.removeMailboxListener(mailboxListener); } - public long getUidValidity() throws MailboxManagerException { + public long getUidValidity(MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); try { @@ -590,7 +583,7 @@ } - public long getUidNext() throws MailboxManagerException { + public long getUidNext(MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); try { @@ -639,7 +632,7 @@ } public Iterator search(GeneralMessageSet set, SearchParameters parameters, - int result) throws MailboxManagerException { + int result, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.readLock().acquire(); try { @@ -763,12 +756,12 @@ return uidToKeyConverter; } - public void remove(GeneralMessageSet set) throws MailboxManagerException { + public void remove(GeneralMessageSet set, MailboxSession mailboxSession) throws MailboxManagerException { try { lock.writeLock().acquire(); try { final Flags flags = new Flags(Flags.Flag.DELETED); - doSetFlags(flags, true, false, set, MessageResult.MINIMAL); + doSetFlags(flags, true, false, set, MessageResult.MINIMAL, mailboxSession); doExpunge(set, MessageResult.MINIMAL); } finally { lock.writeLock().release(); Modified: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=602696&r1=602695&r2=602696&view=diff ============================================================================== --- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java (original) +++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Sun Dec 9 09:00:04 2007 @@ -35,6 +35,7 @@ import org.apache.james.mailboxmanager.ListResult; import org.apache.james.mailboxmanager.MailboxManagerException; import org.apache.james.mailboxmanager.MailboxNotFoundException; +import org.apache.james.mailboxmanager.MailboxSession; import org.apache.james.mailboxmanager.MessageResult; import org.apache.james.mailboxmanager.impl.ListResultImpl; import org.apache.james.mailboxmanager.mailbox.ImapMailbox; @@ -89,8 +90,7 @@ ImapMailbox torqueMailbox = (ImapMailbox) managers.get(mailboxName); if (torqueMailbox == null) { - torqueMailbox = new TorqueMailbox( - mailboxRow, lock, getLog(), random.nextLong()); + torqueMailbox = new TorqueMailbox(mailboxRow, lock, getLog()); managers.put(mailboxName, torqueMailbox); } @@ -174,14 +174,14 @@ } - public void copyMessages(GeneralMessageSet set, String from, String to) throws MailboxManagerException { + public void copyMessages(GeneralMessageSet set, String from, String to, MailboxSession session) throws MailboxManagerException { ImapMailbox toMailbox= getImapMailbox(to, false); ImapMailbox fromMailbox = getImapMailbox(from, false); - Iterator it = fromMailbox.getMessages(set, MessageResult.MIME_MESSAGE | MessageResult.INTERNAL_DATE); + Iterator it = fromMailbox.getMessages(set, MessageResult.MIME_MESSAGE | MessageResult.INTERNAL_DATE, session); while (it.hasNext()) { final MessageResult result = (MessageResult) it.next(); final MimeMessage mimeMessage = result.getMimeMessage(); - toMailbox.appendMessage(mimeMessage, result.getInternalDate(), MessageResult.MINIMAL); + toMailbox.appendMessage(mimeMessage, result.getInternalDate(), MessageResult.MINIMAL, session); } } @@ -265,6 +265,10 @@ log=new SimpleLog("TorqueMailboxManager"); } return log; + } + + public MailboxSession createSession() { + return new TorqueMailboxSession(random.nextLong()); } } Added: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java?rev=602696&view=auto ============================================================================== --- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java (added) +++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java Sun Dec 9 09:00:04 2007 @@ -0,0 +1,66 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mailboxmanager.torque; + +import org.apache.james.mailboxmanager.MailboxSession; + +/** + * Describes a mailbox session. + */ +public class TorqueMailboxSession implements MailboxSession { + + private final long sessionId; + private boolean open; + + public TorqueMailboxSession(final long sessionId) { + super(); + this.sessionId = sessionId; + } + + public void close() { + open = false; + } + + public long getSessionId() { + return sessionId; + } + + public boolean isOpen() { + return open; + } + + /** + * Renders suitably for logging. + * @return a <code>String</code> representation + * of this object. + */ + public String toString() + { + final String TAB = " "; + + String retValue = "TorqueMailboxSession ( " + + "sessionId = " + this.sessionId + TAB + + "open = " + this.open + TAB + + " )"; + + return retValue; + } + +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
