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/09/25 09:49:11 UTC
[camel] 01/06: CAMEL-15561 - Camel-AWS2-Eventbridge: More producer
operations - describeRule
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 0f5b0d50f29dc108a6fa8b7e81c9e846bed9f600
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Sep 25 11:13:37 2020 +0200
CAMEL-15561 - Camel-AWS2-Eventbridge: More producer operations - describeRule
---
.../aws2/eventbridge/EventbridgeOperations.java | 1 +
.../aws2/eventbridge/EventbridgeProducer.java | 39 ++++++++++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java
index 38b86bc..9c923c6 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java
@@ -24,5 +24,6 @@ public enum EventbridgeOperations {
deleteRule,
enableRule,
disableRule,
+ describeRule,
listRules
}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
index 1f6c2f1..5511c14 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
@@ -36,6 +36,8 @@ import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
import software.amazon.awssdk.services.eventbridge.model.DeleteRuleRequest;
import software.amazon.awssdk.services.eventbridge.model.DeleteRuleResponse;
+import software.amazon.awssdk.services.eventbridge.model.DescribeRuleRequest;
+import software.amazon.awssdk.services.eventbridge.model.DescribeRuleResponse;
import software.amazon.awssdk.services.eventbridge.model.DisableRuleRequest;
import software.amazon.awssdk.services.eventbridge.model.DisableRuleResponse;
import software.amazon.awssdk.services.eventbridge.model.EnableRuleRequest;
@@ -88,6 +90,9 @@ public class EventbridgeProducer extends DefaultProducer {
case listRules:
listRules(getEndpoint().getEventbridgeClient(), exchange);
break;
+ case describeRule:
+ describeRule(getEndpoint().getEventbridgeClient(), exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -365,6 +370,40 @@ public class EventbridgeProducer extends DefaultProducer {
message.setBody(result);
}
}
+
+
+ private void describeRule(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
+ if (getConfiguration().isPojoRequest()) {
+ Object payload = exchange.getIn().getMandatoryBody();
+ if (payload instanceof DescribeRuleRequest) {
+ DescribeRuleResponse result;
+ try {
+ result = eventbridgeClient.describeRule((DescribeRuleRequest) payload);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Describe Rule command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
+ } else {
+ DescribeRuleRequest.Builder builder = DescribeRuleRequest.builder();
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
+ String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
+ builder.name(ruleName);
+ }
+ builder.eventBusName(getConfiguration().getEventbusName());
+ DescribeRuleResponse result;
+ try {
+ result = eventbridgeClient.describeRule(builder.build());
+ } catch (AwsServiceException ase) {
+ LOG.trace("Describe Rule command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
+ }
@Override
public EventbridgeEndpoint getEndpoint() {