camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From davscl...@apache.org
Subject svn commit: r654409 - in /activemq/camel/trunk/components/camel-mail/src: main/java/org/apache/camel/component/mail/ test/java/org/apache/camel/component/mail/
Date Thu, 08 May 2008 04:41:56 GMT
Author: davsclaus
Date: Wed May  7 21:41:55 2008
New Revision: 654409

URL: http://svn.apache.org/viewvc?rev=654409&view=rev
Log:
CAMEL-335
- MailConsumer only starts to poll when its connected and can reconnect if needed. Tested
SSL with gmail, see documentation on wiki.

Modified:
    activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
    activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
    activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java

Modified: activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java?rev=654409&r1=654408&r2=654409&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
(original)
+++ activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
Wed May  7 21:41:55 2008
@@ -144,6 +144,18 @@
         return properties;
     }
 
+   /**
+     * Is the used protocol to be secure or not
+     */
+    public boolean isSecureProtocol() {
+        return this.protocol.equalsIgnoreCase("smtps") || this.protocol.equalsIgnoreCase("pop3s")
+               || this.protocol.equalsIgnoreCase("imaps");
+    }
+
+    public String getMailStoreLogInformation() {
+        return "MailStore [" + protocol + "//" + host + ":" + port + "] folder=[" + folderName
+ "]";
+    }
+
     // Properties
     // -------------------------------------------------------------------------
 
@@ -325,4 +337,5 @@
     public void setConnectionTimeout(long connectionTimeout) {
         this.connectionTimeout = connectionTimeout;
     }
+
 }

Modified: activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java?rev=654409&r1=654408&r2=654409&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
(original)
+++ activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
Wed May  7 21:41:55 2008
@@ -52,23 +52,14 @@
     @Override
     protected void doStart() throws Exception {
         super.doStart();
-
-        MailConfiguration config = endpoint.getConfiguration();
-        store = sender.getSession().getStore(config.getProtocol());
-        store.connect(config.getHost(), config.getPort(), config.getUsername(), config.getPassword());
-
-        folder = store.getFolder(config.getFolderName());
-        if (folder == null || !folder.exists()) {
-            throw new FolderNotFoundException(folder, "Folder not found or invalid: " + config.getFolderName());
-        }
     }
 
     @Override
     protected void doStop() throws Exception {
-        if (folder.isOpen()) {
+        if (folder != null && folder.isOpen()) {
             folder.close(true);
         }
-        if (store.isConnected()) {
+        if (store != null && store.isConnected()) {
             store.close();
         }
 
@@ -76,9 +67,11 @@
     }
 
     protected void poll() throws Exception {
+        ensureIsConnected();
+
         if (store == null || folder == null) {
-            throw new IllegalStateException("MailConsumer did not start properly. Camel does
not have access to the MailStore or MailFolder."
-                + " Check log files for errors reported during starting this component");
+            throw new IllegalStateException("MailConsumer did not connect properly to the
MailStore: " +
+                endpoint.getConfiguration().getMailStoreLogInformation());
         }
 
         if (LOG.isDebugEnabled()) {
@@ -121,6 +114,25 @@
         }
     }
 
+    protected void ensureIsConnected() throws MessagingException {
+        MailConfiguration config = endpoint.getConfiguration();
+
+        if (store == null || !store.isConnected()) {
+            store = sender.getSession().getStore(config.getProtocol());
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("Connecting to MailStore at host " + config.getHost() + " on port
" + config.getPort());
+            }
+            store.connect(config.getHost(), config.getPort(), config.getUsername(), config.getPassword());
+        }
+
+        if (folder == null) {
+            folder = store.getFolder(config.getFolderName());
+            if (folder == null || !folder.exists()) {
+                throw new FolderNotFoundException(folder, "Folder not found or invalid: "
+ config.getFolderName());
+            }
+        }
+    }
+
     /**
      * Process all the messages
      */

Modified: activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java?rev=654409&r1=654408&r2=654409&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
(original)
+++ activemq/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
Wed May  7 21:41:55 2008
@@ -110,7 +110,7 @@
 
     public void testManyConfigurations() throws Exception {
         MailEndpoint endpoint = resolveMandatoryEndpoint("smtp://james@myhost:30/subject?password=secret"
-            + "&from=me@camelriders.org&DeleteProcessedMessages=false&defaultEncoding=iso-8859-1&folderName=riders");
+            + "&from=me@camelriders.org&deleteProcessedMessages=false&defaultEncoding=iso-8859-1&folderName=riders");
         MailConfiguration config = endpoint.getConfiguration();
         assertEquals("getProtocol()", "smtp", config.getProtocol());
         assertEquals("getHost()", "myhost", config.getHost());



Mime
View raw message