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 a58328ea453653f4a8354a38d52d0338faee7ea3 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Wed Apr 8 14:45:35 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 fixed CS --- .../Translate2ComponentVerifierExtension.java | 3 +- .../aws2/translate/Translate2Configuration.java | 21 +++-- .../aws2/translate/Translate2Producer.java | 100 ++++++++++----------- .../aws2/translate/Translate2ProducerTest.java | 6 +- .../Translate2ProducerIntegrationTest.java | 11 +-- 5 files changed, 71 insertions(+), 70 deletions(-) diff --git a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ComponentVerifierExtension.java b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ComponentVerifierExtension.java index 1ba1aa0..0c34bd8 100644 --- a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ComponentVerifierExtension.java +++ b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2ComponentVerifierExtension.java @@ -68,7 +68,8 @@ public class Translate2ComponentVerifierExtension extends DefaultComponentVerifi try { Translate2Configuration configuration = setProperties(new Translate2Configuration(), parameters); if (!TranslateClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { - ResultErrorBuilder errorBuilder = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.ILLEGAL_PARAMETER, "The service is not supported in this region"); + ResultErrorBuilder errorBuilder = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.ILLEGAL_PARAMETER, + "The service is not supported in this region"); return builder.error(errorBuilder.build()).build(); } AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey()); diff --git a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Configuration.java b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Configuration.java index c0152ed..a823eb2 100644 --- a/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Configuration.java +++ b/components/camel-aws2-translate/src/main/java/org/apache/camel/component/aws2/translate/Translate2Configuration.java @@ -139,9 +139,8 @@ public class Translate2Configuration implements Cloneable { /** * The region in which Translate client needs to work. When using this - * parameter, the configuration will expect the lowercase name of the - * region (for example ap-east-1) You'll need to use the name - * Region.EU_WEST_1.id() + * parameter, the configuration will expect the lowercase name of the region + * (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() */ public void setRegion(String region) { this.region = region; @@ -179,23 +178,23 @@ public class Translate2Configuration implements Cloneable { public void setTargetLanguage(String targetLanguage) { this.targetLanguage = targetLanguage; } - + public boolean isPojoRequest() { - return pojoRequest; - } - + return pojoRequest; + } + /** * If we want to use a POJO request as body or not */ - public void setPojoRequest(boolean pojoRequest) { - this.pojoRequest = pojoRequest; - } + public void setPojoRequest(boolean pojoRequest) { + this.pojoRequest = pojoRequest; + } // ************************************************* // // ************************************************* - public Translate2Configuration copy() { + public Translate2Configuration copy() { try { return (Translate2Configuration)super.clone(); } catch (CloneNotSupportedException e) { 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 ddd593f..d1ee2af 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 @@ -82,63 +82,63 @@ 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; - } - Message message = getMessageForResponse(exchange); - message.setBody(result.translatedText()); - } - } else { - Builder request = TranslateTextRequest.builder(); - if (!getConfiguration().isAutodetectSourceLanguage()) { - if (ObjectHelper.isEmpty(getConfiguration().getSourceLanguage()) && ObjectHelper.isEmpty(getConfiguration().getTargetLanguage())) { - String source = exchange.getIn().getHeader(Translate2Constants.SOURCE_LANGUAGE, String.class); - String target = exchange.getIn().getHeader(Translate2Constants.TARGET_LANGUAGE, String.class); - if (ObjectHelper.isEmpty(source) || ObjectHelper.isEmpty(target)) { - throw new IllegalArgumentException("Source and target language must be specified as headers or endpoint options"); + 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; } - request.sourceLanguageCode(source); - request.targetLanguageCode(target); - } else { - request.sourceLanguageCode(getConfiguration().getSourceLanguage()); - request.targetLanguageCode(getConfiguration().getTargetLanguage()); + Message message = getMessageForResponse(exchange); + message.setBody(result.translatedText()); } } else { - String source = "auto"; - if (ObjectHelper.isEmpty(getConfiguration().getTargetLanguage())) { - String target = exchange.getIn().getHeader(Translate2Constants.TARGET_LANGUAGE, String.class); - if (ObjectHelper.isEmpty(source) || ObjectHelper.isEmpty(target)) { - throw new IllegalArgumentException("Target language must be specified when autodetection of source language is enabled"); + Builder request = TranslateTextRequest.builder(); + if (!getConfiguration().isAutodetectSourceLanguage()) { + if (ObjectHelper.isEmpty(getConfiguration().getSourceLanguage()) && ObjectHelper.isEmpty(getConfiguration().getTargetLanguage())) { + String source = exchange.getIn().getHeader(Translate2Constants.SOURCE_LANGUAGE, String.class); + String target = exchange.getIn().getHeader(Translate2Constants.TARGET_LANGUAGE, String.class); + if (ObjectHelper.isEmpty(source) || ObjectHelper.isEmpty(target)) { + throw new IllegalArgumentException("Source and target language must be specified as headers or endpoint options"); + } + request.sourceLanguageCode(source); + request.targetLanguageCode(target); + } else { + request.sourceLanguageCode(getConfiguration().getSourceLanguage()); + request.targetLanguageCode(getConfiguration().getTargetLanguage()); } - request.sourceLanguageCode(source); - request.targetLanguageCode(target); } else { - request.sourceLanguageCode(source); - request.targetLanguageCode(getConfiguration().getTargetLanguage()); + String source = "auto"; + if (ObjectHelper.isEmpty(getConfiguration().getTargetLanguage())) { + String target = exchange.getIn().getHeader(Translate2Constants.TARGET_LANGUAGE, String.class); + if (ObjectHelper.isEmpty(source) || ObjectHelper.isEmpty(target)) { + throw new IllegalArgumentException("Target language must be specified when autodetection of source language is enabled"); + } + request.sourceLanguageCode(source); + request.targetLanguageCode(target); + } else { + request.sourceLanguageCode(source); + request.targetLanguageCode(getConfiguration().getTargetLanguage()); + } } + if (!ObjectHelper.isEmpty(exchange.getIn().getHeader(Translate2Constants.TERMINOLOGY_NAMES, Collection.class))) { + Collection<String> terminologies = exchange.getIn().getHeader(Translate2Constants.TERMINOLOGY_NAMES, Collection.class); + request.terminologyNames(terminologies); + } + request.text(exchange.getMessage().getBody(String.class)); + TranslateTextResponse result; + try { + result = translateClient.translateText(request.build()); + } 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()); } - if (!ObjectHelper.isEmpty(exchange.getIn().getHeader(Translate2Constants.TERMINOLOGY_NAMES, Collection.class))) { - Collection<String> terminologies = exchange.getIn().getHeader(Translate2Constants.TERMINOLOGY_NAMES, Collection.class); - request.terminologyNames(terminologies); - } - request.text(exchange.getMessage().getBody(String.class)); - TranslateTextResponse result; - try { - result = translateClient.translateText(request.build()); - } 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()); - } } public static Message getMessageForResponse(final Exchange exchange) { diff --git a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerTest.java b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerTest.java index 9716f3c..10e461d 100644 --- a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerTest.java +++ b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/Translate2ProducerTest.java @@ -24,7 +24,6 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit5.CamelTestSupport; import org.junit.jupiter.api.Test; - import software.amazon.awssdk.services.translate.model.TranslateTextRequest; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -56,7 +55,7 @@ public class Translate2ProducerTest extends CamelTestSupport { assertEquals("Hello", resultGet); } - + @Test public void translateTextPojoTest() throws Exception { @@ -64,7 +63,8 @@ public class Translate2ProducerTest extends CamelTestSupport { 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()); + exchange.getIn().setBody(TranslateTextRequest.builder().sourceLanguageCode(Translate2LanguageEnum.ITALIAN.toString()) + .targetLanguageCode(Translate2LanguageEnum.ENGLISH.toString()).text("ciao").build()); } }); diff --git a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/integration/Translate2ProducerIntegrationTest.java b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/integration/Translate2ProducerIntegrationTest.java index 6d7f0e3..81a4c77 100644 --- a/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/integration/Translate2ProducerIntegrationTest.java +++ b/components/camel-aws2-translate/src/test/java/org/apache/camel/component/aws2/translate/integration/Translate2ProducerIntegrationTest.java @@ -27,7 +27,6 @@ import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit5.CamelTestSupport; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; - import software.amazon.awssdk.services.translate.model.TranslateTextRequest; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -57,7 +56,7 @@ public class Translate2ProducerIntegrationTest extends CamelTestSupport { String resultGet = (String)exchange.getIn().getBody(); assertEquals("Hallo, Miss.", resultGet); } - + @Test public void translateTextPojoTest() throws Exception { @@ -65,8 +64,9 @@ public class Translate2ProducerIntegrationTest extends CamelTestSupport { Exchange exchange = template.request("direct:translateTextPojo", new Processor() { @Override public void process(Exchange exchange) throws Exception { - - exchange.getIn().setBody(TranslateTextRequest.builder().sourceLanguageCode(Translate2LanguageEnum.ITALIAN.toString()).targetLanguageCode(Translate2LanguageEnum.GERMAN.toString()).text("Ciao Signorina").build()); + + exchange.getIn().setBody(TranslateTextRequest.builder().sourceLanguageCode(Translate2LanguageEnum.ITALIAN.toString()) + .targetLanguageCode(Translate2LanguageEnum.GERMAN.toString()).text("Ciao Signorina").build()); } }); @@ -103,7 +103,8 @@ public class Translate2ProducerIntegrationTest extends CamelTestSupport { from("direct:translateText").to("aws2-translate://test?accessKey=RAW(xxxx)&secretKey=RAW(yyyy)®ion=eu-west-1&operation=translateText").to("mock:result"); from("direct:translateTextAuto") .to("aws2-translate://test?accessKey=RAW(xxxx)&secretKey=RAW(yyyy)®ion=eu-west-1&operation=translateText&autodetectSourceLanguage=true").to("mock:result"); - from("direct:translateTextPojo").to("aws2-translate://test?accessKey=RAW(xxxx)&secretKey=RAW(yyyy)®ion=eu-west-1&operation=translateText&pojoRequest=true").to("mock:result"); + from("direct:translateTextPojo").to("aws2-translate://test?accessKey=RAW(xxxx)&secretKey=RAW(yyyy)®ion=eu-west-1&operation=translateText&pojoRequest=true") + .to("mock:result"); } }; }