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 2019/01/08 13:31:53 UTC
[camel] 01/03: CAMEL-13041 - Camel-AWS MQ: Create Broker operation
is not working
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 3659ce7332dccac7bd5a5cf7a0584fe31014e04e
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Jan 8 14:20:21 2019 +0100
CAMEL-13041 - Camel-AWS MQ: Create Broker operation is not working
---
.../apache/camel/component/aws/mq/MQConstants.java | 4 +++
.../apache/camel/component/aws/mq/MQProducer.java | 32 ++++++++++++++++++++++
.../component/aws/mq/MQProducerSpringTest.java | 14 ++++++++++
.../camel/component/aws/mq/MQProducerTest.java | 14 ++++++++++
4 files changed, 64 insertions(+)
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQConstants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQConstants.java
index 474a4c8..c1e1cb5 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQConstants.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQConstants.java
@@ -23,7 +23,11 @@ public interface MQConstants {
String OPERATION = "CamelAwsMQOperation";
String MAX_RESULTS = "CamelAwsMQMaxResults";
String BROKER_NAME = "CamelAwsMQBrokerName";
+ String BROKER_ENGINE = "CamelAwsMQBrokerEngine";
+ String BROKER_ENGINE_VERSION = "CamelAwsMQBrokerEngineVersion";
String BROKER_ID = "CamelAwsMQBrokerID";
String CONFIGURATION_ID = "CamelAwsMQConfigurationID";
String BROKER_DEPLOYMENT_MODE = "CamelAwsMQBrokerDeploymentMode";
+ String BROKER_INSTANCE_TYPE = "CamelAwsMQBrokerInstanceType";
+ String BROKER_USERS = "CamelAwsMQBrokerUsers";
}
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQProducer.java
index 28f0ac0..602128c 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQProducer.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQProducer.java
@@ -26,12 +26,14 @@ import com.amazonaws.services.mq.model.DeleteBrokerResult;
import com.amazonaws.services.mq.model.DeploymentMode;
import com.amazonaws.services.mq.model.DescribeBrokerRequest;
import com.amazonaws.services.mq.model.DescribeBrokerResult;
+import com.amazonaws.services.mq.model.EngineType;
import com.amazonaws.services.mq.model.ListBrokersRequest;
import com.amazonaws.services.mq.model.ListBrokersResult;
import com.amazonaws.services.mq.model.RebootBrokerRequest;
import com.amazonaws.services.mq.model.RebootBrokerResult;
import com.amazonaws.services.mq.model.UpdateBrokerRequest;
import com.amazonaws.services.mq.model.UpdateBrokerResult;
+import com.amazonaws.services.mq.model.User;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
@@ -42,6 +44,8 @@ import org.apache.camel.util.URISupport;
import static org.apache.camel.component.aws.common.AwsExchangeUtil.getMessageForResponse;
+import java.util.List;
+
/**
* A Producer which sends messages to the Amazon MQ Service
* <a href="http://aws.amazon.com/mq/">AWS MQ</a>
@@ -123,7 +127,11 @@ public class MQProducer extends DefaultProducer {
private void createBroker(AmazonMQ mqClient, Exchange exchange) {
String brokerName;
+ String brokerEngine;
+ String brokerEngineVersion;
String deploymentMode;
+ String instanceType;
+ List<User> users;
CreateBrokerRequest request = new CreateBrokerRequest();
if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_NAME))) {
brokerName = exchange.getIn().getHeader(MQConstants.BROKER_NAME, String.class);
@@ -131,12 +139,36 @@ public class MQProducer extends DefaultProducer {
} else {
throw new IllegalArgumentException("Broker Name must be specified");
}
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_ENGINE))) {
+ brokerEngine = exchange.getIn().getHeader(MQConstants.BROKER_ENGINE, String.class);
+ request.withEngineType(EngineType.fromValue(brokerEngine));
+ } else {
+ request.withEngineType(EngineType.ACTIVEMQ.name());
+ }
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_ENGINE_VERSION))) {
+ brokerEngineVersion = exchange.getIn().getHeader(MQConstants.BROKER_ENGINE_VERSION, String.class);
+ request.withEngineVersion(brokerEngineVersion);
+ } else {
+ throw new IllegalArgumentException("Broker Engine Version must be specified");
+ }
if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_DEPLOYMENT_MODE))) {
deploymentMode = exchange.getIn().getHeader(MQConstants.BROKER_DEPLOYMENT_MODE, String.class);
request.withDeploymentMode(DeploymentMode.fromValue(deploymentMode));
} else {
throw new IllegalArgumentException("Deployment Mode must be specified");
}
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_INSTANCE_TYPE))) {
+ instanceType = exchange.getIn().getHeader(MQConstants.BROKER_INSTANCE_TYPE, String.class);
+ request.withHostInstanceType(instanceType);
+ } else {
+ throw new IllegalArgumentException("Instance Type must be specified");
+ }
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_USERS))) {
+ users = exchange.getIn().getHeader(MQConstants.BROKER_USERS, List.class);
+ request.withUsers(users);
+ } else {
+ throw new IllegalArgumentException("A Users list must be specified");
+ }
CreateBrokerResult result;
try {
result = mqClient.createBroker(request);
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerSpringTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerSpringTest.java
index ace9f00..2397c66 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerSpringTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerSpringTest.java
@@ -22,8 +22,13 @@ import com.amazonaws.services.mq.model.CreateBrokerResult;
import com.amazonaws.services.mq.model.DeleteBrokerResult;
import com.amazonaws.services.mq.model.DeploymentMode;
import com.amazonaws.services.mq.model.DescribeBrokerResult;
+import com.amazonaws.services.mq.model.EngineType;
import com.amazonaws.services.mq.model.ListBrokersResult;
import com.amazonaws.services.mq.model.UpdateBrokerResult;
+import com.amazonaws.services.mq.model.User;
+
+import java.util.ArrayList;
+import java.util.List;
import org.apache.camel.EndpointInject;
import org.apache.camel.Exchange;
@@ -68,6 +73,15 @@ public class MQProducerSpringTest extends CamelSpringTestSupport {
exchange.getIn().setHeader(MQConstants.OPERATION, MQOperations.createBroker);
exchange.getIn().setHeader(MQConstants.BROKER_NAME, "test");
exchange.getIn().setHeader(MQConstants.BROKER_DEPLOYMENT_MODE, DeploymentMode.SINGLE_INSTANCE);
+ exchange.getIn().setHeader(MQConstants.BROKER_INSTANCE_TYPE, "mq.t2.micro");
+ exchange.getIn().setHeader(MQConstants.BROKER_ENGINE, EngineType.ACTIVEMQ.name());
+ exchange.getIn().setHeader(MQConstants.BROKER_ENGINE_VERSION, "5.15.6");
+ List<User> users = new ArrayList<>();
+ User user = new User();
+ user.setUsername("camel");
+ user.setPassword("camelcamel12");
+ users.add(user);
+ exchange.getIn().setHeader(MQConstants.BROKER_USERS, users);
}
});
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerTest.java
index b3e4ccb..2da87e6 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerTest.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/MQProducerTest.java
@@ -22,8 +22,13 @@ import com.amazonaws.services.mq.model.CreateBrokerResult;
import com.amazonaws.services.mq.model.DeleteBrokerResult;
import com.amazonaws.services.mq.model.DeploymentMode;
import com.amazonaws.services.mq.model.DescribeBrokerResult;
+import com.amazonaws.services.mq.model.EngineType;
import com.amazonaws.services.mq.model.ListBrokersResult;
import com.amazonaws.services.mq.model.UpdateBrokerResult;
+import com.amazonaws.services.mq.model.User;
+
+import java.util.ArrayList;
+import java.util.List;
import org.apache.camel.EndpointInject;
import org.apache.camel.Exchange;
@@ -68,6 +73,15 @@ public class MQProducerTest extends CamelTestSupport {
exchange.getIn().setHeader(MQConstants.OPERATION, MQOperations.createBroker);
exchange.getIn().setHeader(MQConstants.BROKER_NAME, "test");
exchange.getIn().setHeader(MQConstants.BROKER_DEPLOYMENT_MODE, DeploymentMode.SINGLE_INSTANCE);
+ exchange.getIn().setHeader(MQConstants.BROKER_INSTANCE_TYPE, "mq.t2.micro");
+ exchange.getIn().setHeader(MQConstants.BROKER_ENGINE, EngineType.ACTIVEMQ.name());
+ exchange.getIn().setHeader(MQConstants.BROKER_ENGINE_VERSION, "5.15.6");
+ List<User> users = new ArrayList<>();
+ User user = new User();
+ user.setUsername("camel");
+ user.setPassword("camelcamel12");
+ users.add(user);
+ exchange.getIn().setHeader(MQConstants.BROKER_USERS, users);
}
});