You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/04/08 14:07:54 UTC
[camel] 03/06: CAMEL-14868 - Camel-AWS2-*: Where possible,
give the possiblity to the end user to pass an AWS Request pojo as
body, aws-translate more tests
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b9e23d612fdec71dc55d0da311bce8b73815b724
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Apr 8 15:00:44 2020 +0200
CAMEL-14868 - Camel-AWS2-*: Where possible, give the possiblity to the end user to pass an AWS Request pojo as body, aws-translate more tests
---
.../aws2/translate/Translate2Producer.java | 22 ++++++------
.../translate/Translate2ProducerSpringTest.java | 39 ++++++++++++++++++++++
.../Translate2ComponentSpringTest-context.xml | 10 ++++++
3 files changed, 61 insertions(+), 10 deletions(-)
diff --git a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java
index d1ee2af..ef4ec84 100644
--- a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java
+++ b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Producer.java
@@ -83,17 +83,19 @@ public class Translate2Producer extends DefaultProducer {
private void translateText(TranslateClient translateClient, Exchange exchange) {
if (getConfiguration().isPojoRequest()) {
- if (exchange.getIn().getBody() instanceof TranslateTextRequest) {
- Object payload = exchange.getIn().getBody();
- TranslateTextResponse result;
- try {
- result = translateClient.translateText((TranslateTextRequest)payload);
- } catch (AwsServiceException ase) {
- LOG.trace("Translate Text command returned the error code {}", ase.awsErrorDetails().errorCode());
- throw ase;
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getBody())) {
+ if (exchange.getIn().getBody() instanceof TranslateTextRequest) {
+ Object payload = exchange.getIn().getBody();
+ TranslateTextResponse result;
+ try {
+ result = translateClient.translateText((TranslateTextRequest)payload);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Translate Text command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result.translatedText());
}
- Message message = getMessageForResponse(exchange);
- message.setBody(result.translatedText());
}
} else {
Builder request = TranslateTextRequest.builder();
diff --git a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java
index c1a1335..f2c273a 100644
--- a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java
+++ b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerSpringTest.java
@@ -24,6 +24,8 @@ import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
+import software.amazon.awssdk.services.translate.model.TranslateTextRequest;
+
import static org.junit.jupiter.api.Assertions.assertEquals;
public class Translate2ProducerSpringTest extends CamelSpringTestSupport {
@@ -51,6 +53,43 @@ public class Translate2ProducerSpringTest extends CamelSpringTestSupport {
assertEquals("Hello", resultGet);
}
+
+ @Test
+ public void translateTextPojoTest() throws Exception {
+
+ mock.expectedMessageCount(1);
+ Exchange exchange = template.request("direct:translatePojoText", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setBody(TranslateTextRequest.builder().sourceLanguageCode(Translate2LanguageEnum.ITALIAN.toString())
+ .targetLanguageCode(Translate2LanguageEnum.ENGLISH.toString()).text("ciao").build());
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+
+ String resultGet = exchange.getIn().getBody(String.class);
+ assertEquals("Hello", resultGet);
+
+ }
+
+ @Test
+ public void translateTextTestOptions() throws Exception {
+
+ mock.expectedMessageCount(1);
+ Exchange exchange = template.request("direct:translateTextOptions", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setBody("ciao");
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+
+ String resultGet = exchange.getIn().getBody(String.class);
+ assertEquals("Hello", resultGet);
+
+ }
@Override
protected ClassPathXmlApplicationContext createApplicationContext() {
diff --git a/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml b/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml
index 1256d12..32376ca 100644
--- a/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml
+++ b/components/camel-aws2-translate/src/test/resources/org/apache/camel/component/aws2/translate/Translate2ComponentSpringTest-context.xml
@@ -29,6 +29,16 @@
<to uri="aws2-translate://test?translateClient=#amazonTranslateClient&operation=translateText"/>
<to uri="mock:result"/>
</route>
+ <route>
+ <from uri="direct:translatePojoText"/>
+ <to uri="aws2-translate://test?translateClient=#amazonTranslateClient&operation=translateText&pojoRequest=true"/>
+ <to uri="mock:result"/>
+ </route>
+ <route>
+ <from uri="direct:translateTextOptions"/>
+ <to uri="aws2-translate://test?translateClient=#amazonTranslateClient&operation=translateText&sourceLanguage=it&targetLanguage=en"/>
+ <to uri="mock:result"/>
+ </route>
</camelContext>
<bean id="amazonTranslateClient" class="org.apache.camel.component.aws2.translate.AmazonAWSTranslateMock"/>