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 d2cf3cc3da8158383577ce1a112859af8ebfec4d Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Fri Apr 10 12:40:44 2020 +0200 CAMEL-14868 - Camel-AWS2-*: Where possible, give the possiblity to the end user to pass an AWS Request pojo as body, aws2-eks list Clusters --- .../camel/component/aws2/eks/EKS2Configuration.java | 13 +++++++++++++ .../apache/camel/component/aws2/eks/EKS2Producer.java | 18 +++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Configuration.java b/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Configuration.java index dd24f8e..53428be 100644 --- a/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Configuration.java +++ b/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Configuration.java @@ -47,6 +47,8 @@ public class EKS2Configuration implements Cloneable { private Integer proxyPort; @UriParam private String region; + @UriParam(defaultValue = "false") + private boolean pojoRequest; public EksClient getEksClient() { return eksClient; @@ -138,6 +140,17 @@ public class EKS2Configuration implements Cloneable { public void setRegion(String region) { this.region = region; } + + public boolean isPojoRequest() { + return pojoRequest; + } + + /** + * If we want to use a POJO request as body or not + */ + public void setPojoRequest(boolean pojoRequest) { + this.pojoRequest = pojoRequest; + } // ************************************************* // diff --git a/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Producer.java b/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Producer.java index 37630b5..e2cd44f 100644 --- a/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Producer.java +++ b/components/camel-aws2-eks/src/main/java/org/apache/camel/component/aws2/eks/EKS2Producer.java @@ -18,6 +18,7 @@ package org.apache.camel.component.aws2.eks; import org.apache.camel.Endpoint; import org.apache.camel.Exchange; +import org.apache.camel.InvalidPayloadException; import org.apache.camel.Message; import org.apache.camel.support.DefaultProducer; import org.apache.camel.util.ObjectHelper; @@ -94,7 +95,21 @@ public class EKS2Producer extends DefaultProducer { return (EKS2Endpoint)super.getEndpoint(); } - private void listClusters(EksClient eksClient, Exchange exchange) { + private void listClusters(EksClient eksClient, Exchange exchange) throws InvalidPayloadException { + if (getConfiguration().isPojoRequest()) { + Object payload = exchange.getIn().getMandatoryBody(); + if (payload instanceof ListClustersRequest) { + ListClustersResponse result; + try { + result = eksClient.listClusters((ListClustersRequest) payload); + } catch (AwsServiceException ase) { + LOG.trace("List Clusters command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } else { ListClustersRequest.Builder builder = ListClustersRequest.builder(); if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EKS2Constants.MAX_RESULTS))) { int maxRes = exchange.getIn().getHeader(EKS2Constants.MAX_RESULTS, Integer.class); @@ -109,6 +124,7 @@ public class EKS2Producer extends DefaultProducer { } Message message = getMessageForResponse(exchange); message.setBody(result); + } } private void createCluster(EksClient eksClient, Exchange exchange) {