This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit d2f53a6c21b76ff54d0a6e5113c38fb63e8f8f1f Author: Jon McEwen <[email protected]> AuthorDate: Tue Oct 24 16:34:39 2017 +0100 addressed review comments --- .../aws/sqs/ConstantMessageGroupIdStrategy.java | 4 ++-- ... ExchangeIdMessageDeduplicationIdStrategy.java} | 6 +++--- ....java => ExchangeIdMessageGroupIdStrategy.java} | 4 ++-- ...gy.java => MessageDeduplicationIdStrategy.java} | 5 ++--- ...geStrategy.java => MessageGroupIdStrategy.java} | 7 +++---- ...ava => NullMessageDeduplicationIdStrategy.java} | 6 +++--- .../camel/component/aws/sqs/NullStrategy.java | 12 ----------- ...va => PropertyValueMessageGroupIdStrategy.java} | 6 +++--- .../camel/component/aws/sqs/SqsComponent.java | 3 ++- .../camel/component/aws/sqs/SqsConfiguration.java | 24 +++++++++++----------- .../camel/component/aws/sqs/SqsConstants.java | 2 +- .../camel/component/aws/sqs/SqsProducer.java | 8 ++++---- .../camel/component/aws/sqs/SqsProducerTest.java | 4 ++-- 13 files changed, 39 insertions(+), 52 deletions(-) diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java index 44caf36..be5be47 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java @@ -18,10 +18,10 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -public class ConstantMessageGroupIdStrategy implements StringValueFromExchangeStrategy { +public class ConstantMessageGroupIdStrategy implements MessageGroupIdStrategy { @Override - public String value(Exchange exchange) { + public String getMessageGroupId(Exchange exchange) { return "CamelSingleMessageGroup"; } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/HeaderValueStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdMessageDeduplicationIdStrategy.java similarity index 80% rename from components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/HeaderValueStrategy.java rename to components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdMessageDeduplicationIdStrategy.java index 0bef8c2..6a50ffc 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/HeaderValueStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdMessageDeduplicationIdStrategy.java @@ -18,11 +18,11 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -public class HeaderValueStrategy implements StringValueFromExchangeStrategy { +public class ExchangeIdMessageDeduplicationIdStrategy implements MessageDeduplicationIdStrategy { @Override - public String value(Exchange exchange) { - return exchange.getIn().getHeader(SqsConstants.MESSAGE_GROUP_ID_HEADER, String.class); + public String getMessageDeduplicationId(Exchange exchange) { + return exchange.getExchangeId(); } } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdMessageGroupIdStrategy.java similarity index 87% rename from components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdStrategy.java rename to components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdMessageGroupIdStrategy.java index 6b0dac1..af38e10 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ExchangeIdMessageGroupIdStrategy.java @@ -18,10 +18,10 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -public class ExchangeIdStrategy implements StringValueFromExchangeStrategy { +public class ExchangeIdMessageGroupIdStrategy implements MessageGroupIdStrategy { @Override - public String value(Exchange exchange) { + public String getMessageGroupId(Exchange exchange) { return exchange.getExchangeId(); } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/StringValueFromExchangeStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/MessageDeduplicationIdStrategy.java similarity index 89% copy from components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/StringValueFromExchangeStrategy.java copy to components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/MessageDeduplicationIdStrategy.java index 31eafb6..7f79ddf 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/StringValueFromExchangeStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/MessageDeduplicationIdStrategy.java @@ -18,9 +18,8 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -@FunctionalInterface -public interface StringValueFromExchangeStrategy { +public interface MessageDeduplicationIdStrategy { - String value(Exchange exchange); + String getMessageDeduplicationId(Exchange exchange); } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/StringValueFromExchangeStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/MessageGroupIdStrategy.java similarity index 88% rename from components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/StringValueFromExchangeStrategy.java rename to components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/MessageGroupIdStrategy.java index 31eafb6..23cb325 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/StringValueFromExchangeStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/MessageGroupIdStrategy.java @@ -18,9 +18,8 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -@FunctionalInterface -public interface StringValueFromExchangeStrategy { - - String value(Exchange exchange); +public interface MessageGroupIdStrategy { + + String getMessageGroupId(Exchange exchange); } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/NullMessageDeduplicationIdStrategy.java similarity index 83% copy from components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java copy to components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/NullMessageDeduplicationIdStrategy.java index 44caf36..6ab4ad4 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/NullMessageDeduplicationIdStrategy.java @@ -18,11 +18,11 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -public class ConstantMessageGroupIdStrategy implements StringValueFromExchangeStrategy { +public class NullMessageDeduplicationIdStrategy implements MessageDeduplicationIdStrategy { @Override - public String value(Exchange exchange) { - return "CamelSingleMessageGroup"; + public String getMessageDeduplicationId(Exchange exchange) { + return null; } } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/NullStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/NullStrategy.java deleted file mode 100644 index bbb5ab3..0000000 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/NullStrategy.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.apache.camel.component.aws.sqs; - -import org.apache.camel.Exchange; - -public class NullStrategy implements StringValueFromExchangeStrategy { - - @Override - public String value(Exchange exchange) { - return null; - } - -} diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/PropertyValueMessageGroupIdStrategy.java similarity index 79% copy from components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java copy to components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/PropertyValueMessageGroupIdStrategy.java index 44caf36..5a51ff7 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/ConstantMessageGroupIdStrategy.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/PropertyValueMessageGroupIdStrategy.java @@ -18,11 +18,11 @@ package org.apache.camel.component.aws.sqs; import org.apache.camel.Exchange; -public class ConstantMessageGroupIdStrategy implements StringValueFromExchangeStrategy { +public class PropertyValueMessageGroupIdStrategy implements MessageGroupIdStrategy { @Override - public String value(Exchange exchange) { - return "CamelSingleMessageGroup"; + public String getMessageGroupId(Exchange exchange) { + return exchange.getProperty(SqsConstants.MESSAGE_GROUP_ID_PROPERTY, String.class); } } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java index 653b956..75fabdc 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java @@ -21,6 +21,7 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.impl.UriEndpointComponent; +import org.apache.camel.util.ObjectHelper; public class SqsComponent extends UriEndpointComponent { @@ -62,7 +63,7 @@ public class SqsComponent extends UriEndpointComponent { throw new IllegalArgumentException("Extending message visibility (extendMessageVisibility) requires visibilityTimeout to be set on the Endpoint."); } - if (configuration.isFifoQueue() && configuration.getMessageGroupIdStrategy() == null) { + if (configuration.isFifoQueue() && ObjectHelper.isEmpty(configuration.getMessageGroupIdStrategy())) { throw new IllegalArgumentException("messageGroupIdStrategy must be set for FIFO queues."); } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java index dbab657f..24816e3 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java @@ -68,9 +68,9 @@ public class SqsConfiguration { @UriParam(label = "producer") private Integer delaySeconds; @UriParam(label = "producer") - private StringValueFromExchangeStrategy messageGroupIdStrategy; + private MessageGroupIdStrategy messageGroupIdStrategy; @UriParam(label = "producer", defaultValue = "useExchangeId") - private StringValueFromExchangeStrategy messageDeduplicationIdStrategy = new ExchangeIdStrategy(); + private MessageDeduplicationIdStrategy messageDeduplicationIdStrategy = new ExchangeIdMessageDeduplicationIdStrategy(); // queue properties @UriParam(label = "queue") @@ -89,7 +89,7 @@ public class SqsConfiguration { /** * Whether or not the queue is a FIFO queue */ - public boolean isFifoQueue() { + boolean isFifoQueue() { // AWS docs suggest this is valid derivation. // FIFO queue names must end with .fifo, and standard queues cannot if (queueName.endsWith(".fifo")) { @@ -383,26 +383,26 @@ public class SqsConfiguration { /** * Since *Camel 2.20*. Only for FIFO queues. Strategy for setting the messageGroupId on the message. - * Can be one of the following options: *useConstant*, *useExchangeId*, *useHeaderValue*. - * For the *useHeaderValue* option, the value of header "CamelAwsMessageGroupId" will be used. + * Can be one of the following options: *useConstant*, *useExchangeId*, *usePropertyValue*. + * For the *usePropertyValue* option, the value of property "CamelAwsMessageGroupId" will be used. */ public void setMessageGroupIdStrategy(String strategy) { if ("useConstant".equalsIgnoreCase(strategy)) { messageGroupIdStrategy = new ConstantMessageGroupIdStrategy(); } else if ("useExchangeId".equalsIgnoreCase(strategy)) { - messageGroupIdStrategy = new ExchangeIdStrategy(); - } else if ("useHeaderValue".equalsIgnoreCase(strategy)) { - messageGroupIdStrategy = new HeaderValueStrategy(); + messageGroupIdStrategy = new ExchangeIdMessageGroupIdStrategy(); + } else if ("usePropertyValue".equalsIgnoreCase(strategy)) { + messageGroupIdStrategy = new PropertyValueMessageGroupIdStrategy(); } else { throw new IllegalArgumentException("Unrecognised MessageGroupIdStrategy: " + strategy); } } - public StringValueFromExchangeStrategy getMessageGroupIdStrategy() { + public MessageGroupIdStrategy getMessageGroupIdStrategy() { return messageGroupIdStrategy; } - public StringValueFromExchangeStrategy getMessageDeduplicationIdStrategy() { + public MessageDeduplicationIdStrategy getMessageDeduplicationIdStrategy() { return messageDeduplicationIdStrategy; } @@ -413,9 +413,9 @@ public class SqsConfiguration { */ public void setMessageDeduplicationIdStrategy(String strategy) { if ("useExchangeId".equalsIgnoreCase(strategy)) { - messageDeduplicationIdStrategy = new ExchangeIdStrategy(); + messageDeduplicationIdStrategy = new ExchangeIdMessageDeduplicationIdStrategy(); } else if ("useContentBasedDeduplication".equalsIgnoreCase(strategy)) { - messageDeduplicationIdStrategy = new NullStrategy(); + messageDeduplicationIdStrategy = new NullMessageDeduplicationIdStrategy(); } else { throw new IllegalArgumentException("Unrecognised MessageDeduplicationIdStrategy: " + strategy); } diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConstants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConstants.java index 5fc53c6..3c2dec1 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConstants.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConstants.java @@ -28,5 +28,5 @@ public interface SqsConstants { String MESSAGE_ID = "CamelAwsSqsMessageId"; String RECEIPT_HANDLE = "CamelAwsSqsReceiptHandle"; String DELAY_HEADER = "CamelAwsSqsDelaySeconds"; - String MESSAGE_GROUP_ID_HEADER = "CamelAwsMessageGroupId"; + String MESSAGE_GROUP_ID_PROPERTY = "CamelAwsMessageGroupId"; } \ No newline at end of file diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsProducer.java index e3d2f00..dfc2279 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsProducer.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsProducer.java @@ -72,12 +72,12 @@ public class SqsProducer extends DefaultProducer { private void configureFifoAttributes(SendMessageRequest request, Exchange exchange) { if (getEndpoint().getConfiguration().isFifoQueue()) { // use strategies - StringValueFromExchangeStrategy messageGroupIdStrategy = getEndpoint().getConfiguration().getMessageGroupIdStrategy(); - String messageGroupId = messageGroupIdStrategy.value(exchange); + MessageGroupIdStrategy messageGroupIdStrategy = getEndpoint().getConfiguration().getMessageGroupIdStrategy(); + String messageGroupId = messageGroupIdStrategy.getMessageGroupId(exchange); request.setMessageGroupId(messageGroupId); - StringValueFromExchangeStrategy messageDeduplicationIdStrategy = getEndpoint().getConfiguration().getMessageDeduplicationIdStrategy(); - String messageDeduplicationId = messageDeduplicationIdStrategy.value(exchange); + MessageDeduplicationIdStrategy messageDeduplicationIdStrategy = getEndpoint().getConfiguration().getMessageDeduplicationIdStrategy(); + String messageDeduplicationId = messageDeduplicationIdStrategy.getMessageDeduplicationId(exchange); request.setMessageDeduplicationId(messageDeduplicationId); } diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsProducerTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsProducerTest.java index c1d24f1..e1e511d 100644 --- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsProducerTest.java +++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsProducerTest.java @@ -229,8 +229,8 @@ public class SqsProducerTest { @Test public void itSetsMessageGroupIdUsingHeaderValueStrategy() throws Exception { sqsConfiguration.setQueueName("queueName.fifo"); - sqsConfiguration.setMessageGroupIdStrategy("useHeaderValue"); - when(inMessage.getHeader(SqsConstants.MESSAGE_GROUP_ID_HEADER, String.class)).thenReturn("my-group-id"); + sqsConfiguration.setMessageGroupIdStrategy("usePropertyValue"); + when(exchange.getProperty(SqsConstants.MESSAGE_GROUP_ID_PROPERTY, String.class)).thenReturn("my-group-id"); underTest.process(exchange); -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
