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 2018/01/25 12:53:14 UTC
[camel] branch master updated: CAMEL-12194 - Camel-AWS MQ: Add a
reboot broker operation
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
The following commit(s) were added to refs/heads/master by this push:
new e2029f1 CAMEL-12194 - Camel-AWS MQ: Add a reboot broker operation
e2029f1 is described below
commit e2029f18e91e7b4f05930673e9af1c2dec162cc1
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Jan 25 13:51:37 2018 +0100
CAMEL-12194 - Camel-AWS MQ: Add a reboot broker operation
---
.../camel/component/aws/mq/MQOperations.java | 3 ++-
.../apache/camel/component/aws/mq/MQProducer.java | 25 ++++++++++++++++++++++
.../camel/component/aws/mq/AmazonMQClientMock.java | 3 ++-
.../component/aws/mq/MQProducerSpringTest.java | 15 +++++++++++++
.../camel/component/aws/mq/MQProducerTest.java | 18 ++++++++++++++++
.../aws/mq/MQComponentSpringTest-context.xml | 5 +++++
6 files changed, 67 insertions(+), 2 deletions(-)
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQOperations.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQOperations.java
index 0b7f4df..749e1ed 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQOperations.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/mq/MQOperations.java
@@ -20,5 +20,6 @@ public enum MQOperations {
listBrokers,
createBroker,
- deleteBroker
+ deleteBroker,
+ rebootBroker
}
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 40ef053..48c1f4b 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
@@ -24,6 +24,8 @@ import com.amazonaws.services.mq.model.DeleteBrokerRequest;
import com.amazonaws.services.mq.model.DeleteBrokerResult;
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 org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
@@ -61,6 +63,9 @@ public class MQProducer extends DefaultProducer {
case deleteBroker:
deleteBroker(getEndpoint().getAmazonMqClient(), exchange);
break;
+ case rebootBroker:
+ rebootBroker(getEndpoint().getAmazonMqClient(), exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -152,4 +157,24 @@ public class MQProducer extends DefaultProducer {
Message message = getMessageForResponse(exchange);
message.setBody(result);
}
+
+ private void rebootBroker(AmazonMQ mqClient, Exchange exchange) {
+ String brokerId;
+ RebootBrokerRequest request = new RebootBrokerRequest();
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.BROKER_ID))) {
+ brokerId = exchange.getIn().getHeader(MQConstants.BROKER_ID, String.class);
+ request.withBrokerId(brokerId);
+ } else {
+ throw new IllegalArgumentException("Broker Name must be specified");
+ }
+ RebootBrokerResult result;
+ try {
+ result = mqClient.rebootBroker(request);
+ } catch (AmazonServiceException ase) {
+ LOG.trace("Delete Broker command returned the error code {}", ase.getErrorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
}
\ No newline at end of file
diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/AmazonMQClientMock.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/AmazonMQClientMock.java
index 21516be..390b7c6 100644
--- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/AmazonMQClientMock.java
+++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/mq/AmazonMQClientMock.java
@@ -146,7 +146,8 @@ public class AmazonMQClientMock implements AmazonMQ {
@Override
public RebootBrokerResult rebootBroker(RebootBrokerRequest rebootBrokerRequest) {
- throw new UnsupportedOperationException();
+ RebootBrokerResult result = new RebootBrokerResult();
+ return result;
}
@Override
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 6e95346..6fe678d 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
@@ -93,6 +93,21 @@ public class MQProducerSpringTest extends CamelSpringTestSupport {
assertEquals(resultGet.getBrokerId(), "1");
}
+ @Test
+ public void mqRebootBrokerTest() throws Exception {
+
+ mock.expectedMessageCount(1);
+ template.request("direct:rebootBroker", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(MQConstants.OPERATION, MQOperations.rebootBroker);
+ exchange.getIn().setHeader(MQConstants.BROKER_ID, "1");
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+ }
+
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
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 9a977c4..6bb53ed 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
@@ -93,6 +93,21 @@ public class MQProducerTest extends CamelTestSupport {
assertEquals(resultGet.getBrokerId(), "1");
}
+ @Test
+ public void mqRebootBrokerTest() throws Exception {
+
+ mock.expectedMessageCount(1);
+ template.request("direct:rebootBroker", new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getIn().setHeader(MQConstants.OPERATION, MQOperations.rebootBroker);
+ exchange.getIn().setHeader(MQConstants.BROKER_ID, "1");
+ }
+ });
+
+ assertMockEndpointsSatisfied();
+ }
+
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
@@ -118,6 +133,9 @@ public class MQProducerTest extends CamelTestSupport {
from("direct:deleteBroker")
.to("aws-mq://test?amazonMqClient=#amazonMqClient&operation=deleteBroker")
.to("mock:result");
+ from("direct:rebootBroker")
+ .to("aws-mq://test?amazonMqClient=#amazonMqClient&operation=rebootBroker")
+ .to("mock:result");
}
};
}
diff --git a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/mq/MQComponentSpringTest-context.xml b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/mq/MQComponentSpringTest-context.xml
index 82c3f8b..8b1c213 100644
--- a/components/camel-aws/src/test/resources/org/apache/camel/component/aws/mq/MQComponentSpringTest-context.xml
+++ b/components/camel-aws/src/test/resources/org/apache/camel/component/aws/mq/MQComponentSpringTest-context.xml
@@ -39,6 +39,11 @@
<to uri="aws-mq://Test?amazonMqClient=#amazonMqClient&operation=deleteBroker"/>
<to uri="mock:result"/>
</route>
+ <route>
+ <from uri="direct:rebootBroker"/>
+ <to uri="aws-mq://Test?amazonMqClient=#amazonMqClient&operation=rebootBroker"/>
+ <to uri="mock:result"/>
+ </route>
</camelContext>
<bean id="amazonMqClient" class="org.apache.camel.component.aws.mq.AmazonMQClientMock"/>
--
To stop receiving notification emails like this one, please contact
acosentino@apache.org.