You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/01/06 10:18:14 UTC

[1/3] git commit: CAMEL-7105 Added ability to auto reconnect for sqs queues with thanks to Adrian

Updated Branches:
  refs/heads/master e60335d48 -> 6f7450080


CAMEL-7105 Added ability to auto reconnect for sqs queues with thanks to Adrian


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/27ba5718
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/27ba5718
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/27ba5718

Branch: refs/heads/master
Commit: 27ba57189c857d5d6d1885999be6db177514e04d
Parents: e60335d
Author: Willem Jiang <wi...@gmail.com>
Authored: Mon Jan 6 17:11:04 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Mon Jan 6 17:12:11 2014 +0800

----------------------------------------------------------------------
 .../camel/component/aws/sqs/SqsConsumer.java    | 28 +++++++++++++++++++-
 .../camel/component/aws/sqs/SqsEndpoint.java    |  4 +--
 2 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/27ba5718/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
index 1163743..7daa8a8 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
@@ -29,6 +29,8 @@ import com.amazonaws.services.sqs.model.ChangeMessageVisibilityRequest;
 import com.amazonaws.services.sqs.model.DeleteMessageRequest;
 import com.amazonaws.services.sqs.model.Message;
 import com.amazonaws.services.sqs.model.MessageNotInflightException;
+import com.amazonaws.services.sqs.model.QueueDeletedRecentlyException;
+import com.amazonaws.services.sqs.model.QueueDoesNotExistException;
 import com.amazonaws.services.sqs.model.ReceiptHandleIsInvalidException;
 import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
 import com.amazonaws.services.sqs.model.ReceiveMessageResult;
@@ -46,6 +48,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
+
 /**
  * A Consumer of messages from the Amazon Web Service Simple Queue Service
  * <a href="http://aws.amazon.com/sqs/">AWS SQS</a>
@@ -74,7 +77,14 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
 
         LOG.trace("Receiving messages with request [{}]...", request);
         
-        ReceiveMessageResult messageResult = getClient().receiveMessage(request);
+        ReceiveMessageResult messageResult = null;
+        try {
+            messageResult = getClient().receiveMessage(request);
+        } catch (QueueDoesNotExistException e) {
+            LOG.info("Queue does not exist....recreating now...");
+            reConnectToQueue();
+            messageResult = getClient().receiveMessage(request);
+        }
 
         if (LOG.isTraceEnabled()) {
             LOG.trace("Received {} messages", messageResult.getMessages().size());
@@ -83,6 +93,22 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
         Queue<Exchange> exchanges = createExchanges(messageResult.getMessages());
         return processBatch(CastUtils.cast(exchanges));
     }
+
+    public void reConnectToQueue() {
+        try {
+            getEndpoint().createQueue(getClient());
+        } catch (QueueDeletedRecentlyException qdr) {
+            LOG.debug("Queue recently deleted, will retry in 30 seconds.");
+            try {
+                Thread.sleep(30000);
+                getEndpoint().createQueue(getClient());
+            } catch (Exception e) {
+                LOG.error("failed to retry queue connection.", e);
+            }
+        } catch (Exception e) {
+            LOG.error("Could not connect to queue in amazon.", e);
+        }
+    }
     
     protected Queue<Exchange> createExchanges(List<Message> messages) {
         if (LOG.isTraceEnabled()) {

http://git-wip-us.apache.org/repos/asf/camel/blob/27ba5718/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
index ca3ff0a..aa01c72 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
@@ -110,7 +110,7 @@ public class SqsEndpoint extends ScheduledPollEndpoint {
         }
     }
 
-    private void createQueue(AmazonSQS client) {
+    protected void createQueue(AmazonSQS client) {
         LOG.trace("Queue '{}' doesn't exist. Will create it...", configuration.getQueueName());
 
         // creates a new queue, or returns the URL of an existing one
@@ -220,7 +220,7 @@ public class SqsEndpoint extends ScheduledPollEndpoint {
     protected String getQueueUrl() {
         return queueUrl;
     }
-    
+
     public int getMaxMessagesPerPoll() {
         return maxMessagesPerPoll;
     }


[2/3] git commit: CAMEL-7105 Added ability to send html emails

Posted by ni...@apache.org.
CAMEL-7105 Added ability to send html emails


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7433af43
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7433af43
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7433af43

Branch: refs/heads/master
Commit: 7433af43a692c2adc3c906106d367b12241724b0
Parents: 27ba571
Author: Willem Jiang <wi...@gmail.com>
Authored: Mon Jan 6 17:13:00 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Mon Jan 6 17:13:00 2014 +0800

----------------------------------------------------------------------
 .../org/apache/camel/component/aws/ses/SesConstants.java     | 1 +
 .../java/org/apache/camel/component/aws/ses/SesProducer.java | 8 +++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7433af43/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConstants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConstants.java
index 4ff3f86..b301364 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConstants.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConstants.java
@@ -27,4 +27,5 @@ public interface SesConstants {
     String RETURN_PATH = "CamelAwsSesReturnPath";
     String SUBJECT = "CamelAwsSesSubject";
     String TO = "CamelAwsSesTo";
+    String HTML_EMAIL = "CamelAwsSesHtmlEmail";
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/7433af43/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
index 6f4919f..4ba0630 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
@@ -64,7 +64,13 @@ public class SesProducer extends DefaultProducer {
 
     private com.amazonaws.services.simpleemail.model.Message createMessage(Exchange exchange) {
         com.amazonaws.services.simpleemail.model.Message message = new com.amazonaws.services.simpleemail.model.Message();
-        message.setBody(new Body(new Content(exchange.getIn().getBody(String.class))));
+        Boolean isHtmlEmail = exchange.getIn().getHeader(SesConstants.HTML_EMAIL, Boolean.class);
+        String content = exchange.getIn().getBody(String.class);
+        if (isHtmlEmail != null && isHtmlEmail) {
+            message.setBody(new Body().withHtml(new Content().withData(content)));
+        } else {
+            message.setBody(new Body().withText(new Content().withData(content)));
+        }
         message.setSubject(new Content(determineSubject(exchange)));
         return message;
     }


[3/3] git commit: CAMEL-7105 polish the code of SesProducer

Posted by ni...@apache.org.
CAMEL-7105 polish the code of SesProducer


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6f745008
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6f745008
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6f745008

Branch: refs/heads/master
Commit: 6f7450080986f21d8ef92158b790142bc2df3800
Parents: 7433af4
Author: Willem Jiang <wi...@gmail.com>
Authored: Mon Jan 6 17:15:52 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Mon Jan 6 17:15:52 2014 +0800

----------------------------------------------------------------------
 .../java/org/apache/camel/component/aws/ses/SesProducer.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6f745008/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
index 4ba0630..78a0295 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesProducer.java
@@ -64,9 +64,9 @@ public class SesProducer extends DefaultProducer {
 
     private com.amazonaws.services.simpleemail.model.Message createMessage(Exchange exchange) {
         com.amazonaws.services.simpleemail.model.Message message = new com.amazonaws.services.simpleemail.model.Message();
-        Boolean isHtmlEmail = exchange.getIn().getHeader(SesConstants.HTML_EMAIL, Boolean.class);
+        Boolean isHtmlEmail = exchange.getIn().getHeader(SesConstants.HTML_EMAIL, false, Boolean.class);
         String content = exchange.getIn().getBody(String.class);
-        if (isHtmlEmail != null && isHtmlEmail) {
+        if (isHtmlEmail) {
             message.setBody(new Body().withHtml(new Content().withData(content)));
         } else {
             message.setBody(new Body().withText(new Content().withData(content)));