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 ju...@apache.org on 2007/05/17 12:00:28 UTC

svn commit: r538858 - /james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java

Author: jukka
Date: Thu May 17 03:00:27 2007
New Revision: 538858

URL: http://svn.apache.org/viewvc?view=rev&rev=538858
Log:
james-jcr: Logging using JUL, should perhaps use Avalon Logger?

Modified:
    james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java

Modified: james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java?view=diff&rev=538858&r1=538857&r2=538858
==============================================================================
--- james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java (original)
+++ james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java Thu May 17 03:00:27 2007
@@ -31,6 +31,7 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Properties;
+import java.util.logging.Logger;
 
 import javax.jcr.Credentials;
 import javax.jcr.Node;
@@ -61,6 +62,12 @@
 public class JCRMailRepository implements MailRepository {
 
     /**
+     * Logger instance.
+     */
+    private static final Logger logger =
+        Logger.getLogger(JCRMailRepository.class.getName());
+
+    /**
      * JCR content repository used as the mail repository.
      * Must be set before the any mail operations are performed.
      */
@@ -139,6 +146,7 @@
     //------------------------------------------------------< MailRepository >
 
     public Iterator list() throws MessagingException {
+        logger.entering(getClass().getName(), "list()");
         try {
             Session session = repository.login(credentials, workspace);
             try {
@@ -157,10 +165,13 @@
             }
         } catch (RepositoryException e) {
             throw new MessagingException("Unable to list messages", e);
+        } finally {
+            logger.exiting(getClass().getName(), "list()");
         }
     }
 
     public Mail retrieve(String key) throws MessagingException {
+        logger.entering(getClass().getName(), "retrieve(" + key + ")");
         try {
             Session session = repository.login(credentials, workspace);
             try {
@@ -183,10 +194,13 @@
         } catch (RepositoryException e) {
             throw new MessagingException(
                     "Unable to retrieve message: " + key, e);
+        } finally {
+            logger.exiting(getClass().getName(), "retrieve(" + key + ")");
         }
     }
 
     public void store(Mail mail) throws MessagingException {
+        logger.entering(getClass().getName(), "store(" + mail.getName() + ")");
         try {
             Session session = repository.login(credentials, workspace);
             try {
@@ -208,6 +222,7 @@
                     setMail(node, mail);
                 }
                 session.save();
+                logger.info("Mail " + mail.getName() + " stored in repository");
             } finally {
                 session.logout();
             }
@@ -217,10 +232,13 @@
         } catch (RepositoryException e) {
             throw new MessagingException(
                     "Unable to store message: " + mail.getName(), e);
+        } finally {
+            logger.exiting(getClass().getName(), "store(" + mail.getName() + ")");
         }
     }
 
     public void remove(String key) throws MessagingException {
+        logger.entering(getClass().getName(), "remove(" + key + ")");
         try {
             Session session = repository.login(credentials, workspace);
             try {
@@ -233,11 +251,14 @@
                     nodes.nextNode().remove();
                 }
                 session.save();
+                logger.info("Mail " + key + " removed from repository");
             } finally {
                 session.logout();
             }
         } catch (RepositoryException e) {
             throw new MessagingException("Unable to remove message: " + key, e);
+        } finally {
+            logger.exiting(getClass().getName(), "remove(" + key + ")");
         }
     }
 
@@ -246,6 +267,7 @@
     }
 
     public void remove(Collection mails) throws MessagingException {
+        logger.entering(getClass().getName(), "remove(collection)");
         try {
             Session session = repository.login(credentials, workspace);
             try {
@@ -263,11 +285,19 @@
                     }
                 }
                 session.save();
+                iterator = mails.iterator();
+                while (iterator.hasNext()) {
+                    Mail mail = (Mail) iterator.next();
+                    logger.info(
+                            "Mail " + mail.getName() + " removed from repository");
+                }
             } finally {
                 session.logout();
             }
         } catch (RepositoryException e) {
             throw new MessagingException("Unable to remove messages", e);
+        } finally {
+            logger.exiting(getClass().getName(), "remove(collection)");
         }
     }
 



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


Re: svn commit: r538858 - /james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java

Posted by Danny Angus <da...@apache.org>.
On 5/17/07, Stefano Bagnara <ap...@bago.org> wrote:

> My personal preference for the final solution in logging is to keep
> "dependency injected" loggers. Maybe injecting JUL logger is the best
> solution (compared to commons-logging it requires one dependency less),

My preference is commons-logging. Eat your own dog food.

d.

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


Re: svn commit: r538858 - /james/server/sandbox/james-jcr/src/main/java/org/apache/james/jcr/JCRMailRepository.java

Posted by Stefano Bagnara <ap...@bago.org>.
jukka@apache.org ha scritto:
> Log:
> james-jcr: Logging using JUL, should perhaps use Avalon Logger?

Most components in current james server trunk use Avalon Logger.
Some of the experimental imap components uses injected commons-logging
and a wrapper between Avalon Logger and commons-logging.

In jSPF we defined our own Logger interface and server simply provide a
wrapper between jSPF.Logger and Avalon Logger.

IMHO you can stick to JUL now: we can fix it later when we'll find a
common solution to remove Avalon Logger (or keep it) on the whole codebase.

My personal preference for the final solution in logging is to keep
"dependency injected" loggers. Maybe injecting JUL logger is the best
solution (compared to commons-logging it requires one dependency less),
so we could write a JUL logger extension (or Handler) to log on avalon
or anything else.

Stefano


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