Update of /var/cvs/applications/email/src/org/mmbase/module/smtp
In directory james.mmbase.org:/tmp/cvs-serv27011/src/org/mmbase/module/smtp

Modified Files:
        Forwarder.java MailHandler.java PopFetcher.java 
Log Message:
made it possible to set properties of Session explicitely (needed e.g. for 
pop.gmail.com). Solved some issues with incompatibility of UtilReader


See also: 
http://cvs.mmbase.org/viewcvs/applications/email/src/org/mmbase/module/smtp


Index: Forwarder.java
===================================================================
RCS file: 
/var/cvs/applications/email/src/org/mmbase/module/smtp/Forwarder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- Forwarder.java      3 Feb 2008 17:42:06 -0000       1.3
+++ Forwarder.java      30 Dec 2008 11:06:12 -0000      1.4
@@ -20,12 +20,12 @@
 /**
  * Forwarding MailHandler. Fill {...@link #forwards} to make this actually do 
something.
  *
- * @version $Id: Forwarder.java,v 1.3 2008/02/03 17:42:06 nklasens Exp $
+ * @version $Id: Forwarder.java,v 1.4 2008/12/30 11:06:12 michiel Exp $
  */
 public class Forwarder implements MailHandler {
     private static final Logger log = 
Logging.getLoggerInstance(Forwarder.class);
 
-    private static UtilReader.PropertiesMap f = new UtilReader("forwards.xml", 
new Runnable() { public void run() {readForwards();}}).getProperties();
+    private static UtilReader.PropertiesMap f = new UtilReader("forwards.xml", 
new Runnable() { public void run() {readForwards();}}).getMaps();
     protected static final Map<String, InternetAddress[]> forwards = new 
HashMap<String, InternetAddress[]>();
 
     protected static void readForwards() {


Index: MailHandler.java
===================================================================
RCS file: 
/var/cvs/applications/email/src/org/mmbase/module/smtp/MailHandler.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- MailHandler.java    31 Jul 2008 13:22:36 -0000      1.13
+++ MailHandler.java    30 Dec 2008 11:06:12 -0000      1.14
@@ -18,7 +18,7 @@
 /**
  * A MailHandler handles <em>one</em> mail. So you must create a new one for 
every received message
  * (You can use {...@link Factory}).
- * @version $Id: MailHandler.java,v 1.13 2008/07/31 13:22:36 michiel Exp $
+ * @version $Id: MailHandler.java,v 1.14 2008/12/30 11:06:12 michiel Exp $
  */
 public interface  MailHandler {
 
@@ -64,11 +64,14 @@
         private static final Logger log = 
Logging.getLoggerInstance(Factory.class);
 
         static UtilReader.PropertiesMap  mailHandlers =
-            new UtilReader("mailhandlers.xml").getProperties();
+            new UtilReader("mailhandlers.xml").getMaps();
 
         public static MailHandler getInstance() {
             List<MailHandler> mh = new ArrayList<MailHandler>();
             List<Map.Entry<String, String>> classes = (List<Map.Entry<String, 
String>>) mailHandlers.get("classes");
+            if (classes == null) {
+                log.warn("No mail handlers found in " + mailHandlers);
+            } else {
             for (Map.Entry<String, String> c : classes) {
                 String cn = c.getKey();
                 try {
@@ -77,6 +80,7 @@
                     log.error(e.getMessage(), e);
                 }
             }
+            }
             MailHandler instance;
             if (mh.size() == 1) {
                 instance = mh.get(0);


Index: PopFetcher.java
===================================================================
RCS file: 
/var/cvs/applications/email/src/org/mmbase/module/smtp/PopFetcher.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- PopFetcher.java     30 Jul 2008 05:03:07 -0000      1.5
+++ PopFetcher.java     30 Dec 2008 11:06:12 -0000      1.6
@@ -13,6 +13,7 @@
 import org.mmbase.util.logging.Logging;
 import org.mmbase.util.logging.Logger;
 import org.mmbase.bridge.*;
+import org.mmbase.util.ResourceLoader;
 import java.util.*;
 import org.mmbase.applications.crontab.*;
 import javax.mail.*;
@@ -22,7 +23,7 @@
  * A mail fetcher that does not smtp-listen but periodically pops from a 
server. Implemented as a cronjob
  *
  *
- * @version $Id: PopFetcher.java,v 1.5 2008/07/30 05:03:07 michiel Exp $
+ * @version $Id: PopFetcher.java,v 1.6 2008/12/30 11:06:12 michiel Exp $
  */
 public class PopFetcher extends MailFetcher implements CronJob {
     private static final Logger log = 
Logging.getLoggerInstance(PopFetcher.class);
@@ -53,6 +54,7 @@
      * (based on received date)
      */
     public  void run() {
+        Properties props = System.getProperties();
         try {
             Cloud cloud = CloudMailHandler.getCloud();
             Node lastRun = null;
@@ -88,11 +90,6 @@
                     }
                 };
 
-            // Get a Properties object
-            Properties props = System.getProperties();
-
-            // Get a Session object
-            Session session = Session.getInstance(props, null);
 
             String[] configuration = entry.getConfiguration().split(",");
             String protocol = configuration[0];
@@ -100,9 +97,18 @@
             String userName = configuration[2];
             String password = configuration[3];
             int port = -1;
-            if (configuration.length > 4) {
+            if (configuration.length > 4 && configuration[4].length() > 0) {
                 port = Integer.parseInt(configuration[4]);
             }
+            // Get a Properties object
+
+            if (configuration.length > 5) {
+                props = new Properties();
+                
props.load(ResourceLoader.getConfigurationRoot().getResourceAsStream(configuration[5]));
+            }
+            // Get a Session object
+            Session session = Session.getInstance(props, null);
+
 
             Store store = session.getStore(protocol);
             log.service("Connecting to " + userName + "@" + host + (port == -1 
? "" : ":" + port) + " using " + protocol + ". Using cloud of " + 
cloud.getUser() + " (" + cloud.getUser().getRank() + "). Previous mail:" + 
lastDate);
@@ -152,10 +158,10 @@
                 lastRun.commit();
                 log.service("Handled " + total + " email messages. Set last 
run in " + lastRun.getNumber() + " to " + new 
Date(lastRun.getLongValue("start") * 1000));
             } else {
-                log.service("No newer emails found");
+                log.debug("No newer emails found");
             }
         } catch (Exception e) {
-            log.error(e.getMessage(), e);
+            log.error(e.getMessage() + "props: " + props, e);
         }
     }
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to