You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by jo...@apache.org on 2006/11/16 13:05:11 UTC

svn commit: r475700 - in /james/server/trunk/src: java/org/apache/james/mailboxmanager/manager/ java/org/apache/james/mailboxmanager/torque/ java/org/apache/james/mailboxmanager/tracking/ test/org/apache/james/mailboxmanager/ test/org/apache/james/mail...

Author: joachim
Date: Thu Nov 16 04:05:10 2006
New Revision: 475700

URL: http://svn.apache.org/viewvc?view=rev&rev=475700
Log:
added Map getOpenMailboxSessionCountMap() to MailboxManagerProvider
intended for checking if sessions are closed properly

Modified:
    james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java
    james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java
    james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxCache.java
    james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxTracker.java
    james/server/trunk/src/test/org/apache/james/mailboxmanager/AbstractMailboxManagerSelfTestCase.java
    james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerSelfTestCase.java

Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java?view=diff&rev=475700&r1=475699&r2=475700
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/manager/MailboxManagerProvider.java Thu Nov 16 04:05:10 2006
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailboxmanager.manager;
 
+import java.util.Map;
+
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.mailbox.MailboxSession;
 import org.apache.james.services.User;
@@ -52,5 +54,16 @@
      */
     
     void deleteAllUserData(User authUser,User targetUser);
+    
+    
+    /**
+     * key: <b>String</b> - mailbox name <br />
+     * value: <b>Integer</b> - count of open sessions <br />
+     * <br />
+     * useful for testing
+     * @return Map of mailbox name/open session count
+     */
+    
+    Map getOpenMailboxSessionCountMap();
 
 }

Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java?view=diff&rev=475700&r1=475699&r2=475700
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProvider.java Thu Nov 16 04:05:10 2006
@@ -26,6 +26,7 @@
 import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.Locale;
+import java.util.Map;
 
 import org.apache.avalon.framework.activity.Initializable;
 import org.apache.avalon.framework.configuration.Configurable;
@@ -234,6 +235,11 @@
     public MailboxSession getMailboxSession(User authUser, String mailboxName) {
         // TODO Auto-generated method stub
         return null;
+    }
+    
+    
+    public Map getOpenMailboxSessionCountMap() {
+        return getMailboxCache().getOpenMailboxSessionCountMap();
     }
     
 

Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxCache.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxCache.java?view=diff&rev=475700&r1=475699&r2=475700
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxCache.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxCache.java Thu Nov 16 04:05:10 2006
@@ -1,6 +1,26 @@
+/****************************************************************
+ * 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.tracking;
 
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
 
 
@@ -46,6 +66,17 @@
             tracker.signalRename(newName);
         }
         notFound(origName);
+    }
+    
+    public synchronized Map getOpenMailboxSessionCountMap() {
+        Map countMap = new HashMap();
+        for (Iterator iter = trackers.entrySet().iterator(); iter.hasNext();) {
+            Map.Entry entry = (Map.Entry) iter.next();
+            String name = (String) entry.getKey();
+            MailboxTracker tracker = (MailboxTracker) entry.getValue();
+            countMap.put(name,new Integer(tracker.getSessionCount()));
+        }
+        return countMap;
     }
 
 }

Modified: james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxTracker.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxTracker.java?view=diff&rev=475700&r1=475699&r2=475700
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxTracker.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailboxmanager/tracking/MailboxTracker.java Thu Nov 16 04:05:10 2006
@@ -1,3 +1,22 @@
+/****************************************************************
+ * 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.tracking;
 
 import org.apache.james.mailboxmanager.MailboxListener;
@@ -50,6 +69,10 @@
     public void signalRename(String newName) {
         eventDispatcher.mailboxRenamed(mailboxName, newName);
         mailboxName=newName;
+    }
+    
+    public int getSessionCount() {
+        return eventDispatcher.size();
     }
 
 }

Modified: james/server/trunk/src/test/org/apache/james/mailboxmanager/AbstractMailboxManagerSelfTestCase.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/mailboxmanager/AbstractMailboxManagerSelfTestCase.java?view=diff&rev=475700&r1=475699&r2=475700
==============================================================================
--- james/server/trunk/src/test/org/apache/james/mailboxmanager/AbstractMailboxManagerSelfTestCase.java (original)
+++ james/server/trunk/src/test/org/apache/james/mailboxmanager/AbstractMailboxManagerSelfTestCase.java Thu Nov 16 04:05:10 2006
@@ -25,13 +25,14 @@
 
 import org.apache.james.mailboxmanager.mailbox.GeneralMailboxSession;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 import junit.framework.TestCase;
 
 public abstract class AbstractMailboxManagerSelfTestCase extends TestCase {
     
     protected MailboxManager mailboxManager;
-    
+    protected MailboxManagerProvider mailboxManagerProvider;
     
     public void testCreateList() throws MailboxManagerException {
         ListResult[] listResult;
@@ -53,10 +54,16 @@
         }
     }
     
-    public void testGetSessionMailbox() throws MailboxManagerException {
-        mailboxManager.createMailbox("#users.joachim3.INBOX");
-        GeneralMailboxSession sessionMailbox=mailboxManager.getGeneralMailboxSession("#users.joachim3.INBOX");
+    public void testGetSessionMailboxLife() throws MailboxManagerException {
+        final String folder="#users.joachim3.INBOX";
+        assertEquals(0, mailboxManagerProvider.getOpenMailboxSessionCountMap().size());
+        mailboxManager.createMailbox(folder);
+        GeneralMailboxSession sessionMailbox=mailboxManager.getGeneralMailboxSession(folder);
         assertNotNull(sessionMailbox);
+        assertEquals(1, mailboxManagerProvider.getOpenMailboxSessionCountMap().size());
+        assertEquals(new Integer(1), mailboxManagerProvider.getOpenMailboxSessionCountMap().get(folder));
+        sessionMailbox.close();
+        assertEquals(0, mailboxManagerProvider.getOpenMailboxSessionCountMap().size());
     }
     
     public void testListOne() throws MailboxManagerException {
@@ -69,6 +76,5 @@
         assertEquals(1, listResult.length);
         assertEquals("INBOX", listResult[0].getName());
     }
-    
 
 }

Modified: james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerSelfTestCase.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerSelfTestCase.java?view=diff&rev=475700&r1=475699&r2=475700
==============================================================================
--- james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerSelfTestCase.java (original)
+++ james/server/trunk/src/test/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerSelfTestCase.java Thu Nov 16 04:05:10 2006
@@ -32,8 +32,9 @@
     }
 
     public void setUp() throws Exception {
-        TorqueMailboxManagerProviderSingleton.getTorqueMailboxManagerProviderInstance().deleteEverything();
-        mailboxManager = TorqueMailboxManagerProviderSingleton.getTorqueMailboxManagerProviderInstance().getMailboxManagerInstance(new MockUser());
+        mailboxManagerProvider=TorqueMailboxManagerProviderSingleton.getTorqueMailboxManagerProviderInstance();
+        mailboxManagerProvider.deleteEverything();
+        mailboxManager = mailboxManagerProvider.getMailboxManagerInstance(new MockUser());
     }
 
 }



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