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&amp;operation=deleteBroker"/>
             <to uri="mock:result"/>
         </route>
+        <route>
+            <from uri="direct:rebootBroker"/>
+            <to uri="aws-mq://Test?amazonMqClient=#amazonMqClient&amp;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.