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 87f6e3e  CAMEL-12208 - CAMEL-AWS Mq: Add UpdateBroker operation
87f6e3e is described below

commit 87f6e3ed82c5bea0fa3b5f87f405f4049ef4fa2c
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Tue Jan 30 11:10:06 2018 +0100

    CAMEL-12208 - CAMEL-AWS Mq: Add UpdateBroker operation
---
 .../apache/camel/component/aws/mq/MQConstants.java |  1 +
 .../camel/component/aws/mq/MQOperations.java       |  3 +-
 .../apache/camel/component/aws/mq/MQProducer.java  | 33 ++++++++++++++++++++++
 .../camel/component/aws/mq/AmazonMQClientMock.java |  9 +++++-
 .../component/aws/mq/MQProducerSpringTest.java     | 23 +++++++++++++++
 .../camel/component/aws/mq/MQProducerTest.java     | 26 +++++++++++++++++
 .../aws/mq/MQComponentSpringTest-context.xml       |  5 ++++
 7 files changed, 98 insertions(+), 2 deletions(-)

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 48a6600..19f4c65 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
@@ -25,5 +25,6 @@ public interface MQConstants {
     String MAX_RESULTS              = "CamelAwsMQMaxResults";
     String BROKER_NAME              = "CamelAwsMQBrokerName";
     String BROKER_ID                = "CamelAwsMQBrokerID";
+    String CONFIGURATION_ID         = "CamelAwsMQConfigurationID";
     String BROKER_DEPLOYMENT_MODE   = "CamelAwsMQBrokerDeploymentMode";
 }
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 749e1ed..241d237 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
@@ -21,5 +21,6 @@ public enum MQOperations {
     listBrokers,
     createBroker,
     deleteBroker,
-    rebootBroker
+    rebootBroker,
+    updateBroker
 }
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 48c1f4b..0151770 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
@@ -18,6 +18,7 @@ package org.apache.camel.component.aws.mq;
 
 import com.amazonaws.AmazonServiceException;
 import com.amazonaws.services.mq.AmazonMQ;
+import com.amazonaws.services.mq.model.ConfigurationId;
 import com.amazonaws.services.mq.model.CreateBrokerRequest;
 import com.amazonaws.services.mq.model.CreateBrokerResult;
 import com.amazonaws.services.mq.model.DeleteBrokerRequest;
@@ -26,6 +27,8 @@ 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 org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
@@ -66,6 +69,9 @@ public class MQProducer extends DefaultProducer {
         case rebootBroker:
             rebootBroker(getEndpoint().getAmazonMqClient(), exchange);
             break;
+        case updateBroker:
+            updateBroker(getEndpoint().getAmazonMqClient(), exchange);
+            break;
         default:
             throw new IllegalArgumentException("Unsupported operation");
         }
@@ -177,4 +183,31 @@ public class MQProducer extends DefaultProducer {
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
     }
+    
+    private void updateBroker(AmazonMQ mqClient, Exchange exchange) {
+        String brokerId;
+        ConfigurationId configurationId;
+        UpdateBrokerRequest request = new UpdateBrokerRequest();
+        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");
+        }
+        if 
(ObjectHelper.isNotEmpty(exchange.getIn().getHeader(MQConstants.CONFIGURATION_ID)))
 {
+            configurationId = 
exchange.getIn().getHeader(MQConstants.CONFIGURATION_ID, ConfigurationId.class);
+            request.withConfiguration(configurationId);
+        } else {
+            throw new IllegalArgumentException("Broker Name must be 
specified");
+        }
+        UpdateBrokerResult result;
+        try {
+            result = mqClient.updateBroker(request);
+        } catch (AmazonServiceException ase) {
+            LOG.trace("Update 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 390b7c6..ff309af 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
@@ -24,6 +24,7 @@ import com.amazonaws.ResponseMetadata;
 import com.amazonaws.services.mq.AmazonMQ;
 import com.amazonaws.services.mq.model.BrokerState;
 import com.amazonaws.services.mq.model.BrokerSummary;
+import com.amazonaws.services.mq.model.ConfigurationId;
 import com.amazonaws.services.mq.model.CreateBrokerRequest;
 import com.amazonaws.services.mq.model.CreateBrokerResult;
 import com.amazonaws.services.mq.model.CreateConfigurationRequest;
@@ -152,7 +153,13 @@ public class AmazonMQClientMock implements AmazonMQ {
 
     @Override
     public UpdateBrokerResult updateBroker(UpdateBrokerRequest 
updateBrokerRequest) {
-        throw new UnsupportedOperationException();
+        UpdateBrokerResult result = new UpdateBrokerResult();
+        ConfigurationId cId = new ConfigurationId();
+        cId.setId("1");
+        cId.setRevision(12);
+        result.setBrokerId("1");
+        result.setConfiguration(cId);
+        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 6fe678d..f14e39d 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
@@ -17,10 +17,12 @@
 package org.apache.camel.component.aws.mq;
 
 import com.amazonaws.services.mq.model.BrokerState;
+import com.amazonaws.services.mq.model.ConfigurationId;
 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.ListBrokersResult;
+import com.amazonaws.services.mq.model.UpdateBrokerResult;
 
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
@@ -108,6 +110,27 @@ public class MQProducerSpringTest extends 
CamelSpringTestSupport {
         assertMockEndpointsSatisfied();
     }
     
+    @Test
+    public void mqUpdateBrokerTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:updateBroker", new 
Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(MQConstants.OPERATION, 
MQOperations.updateBroker);
+                exchange.getIn().setHeader(MQConstants.BROKER_ID, "1");
+                ConfigurationId cId = new ConfigurationId();
+                cId.setId("1");
+                cId.setRevision(12);
+                exchange.getIn().setHeader(MQConstants.CONFIGURATION_ID, cId);
+            }
+        });
+        
+        assertMockEndpointsSatisfied();
+        UpdateBrokerResult resultGet = (UpdateBrokerResult) 
exchange.getIn().getBody();
+        assertEquals(resultGet.getBrokerId(), "1");
+    }
+    
     @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 6bb53ed..1bd449d 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
@@ -17,10 +17,12 @@
 package org.apache.camel.component.aws.mq;
 
 import com.amazonaws.services.mq.model.BrokerState;
+import com.amazonaws.services.mq.model.ConfigurationId;
 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.ListBrokersResult;
+import com.amazonaws.services.mq.model.UpdateBrokerResult;
 
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
@@ -108,6 +110,27 @@ public class MQProducerTest extends CamelTestSupport {
         assertMockEndpointsSatisfied();
     }
     
+    @Test
+    public void mqUpdateBrokerTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:updateBroker", new 
Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(MQConstants.OPERATION, 
MQOperations.updateBroker);
+                exchange.getIn().setHeader(MQConstants.BROKER_ID, "1");
+                ConfigurationId cId = new ConfigurationId();
+                cId.setId("1");
+                cId.setRevision(12);
+                exchange.getIn().setHeader(MQConstants.CONFIGURATION_ID, cId);
+            }
+        });
+        
+        assertMockEndpointsSatisfied();
+        UpdateBrokerResult resultGet = (UpdateBrokerResult) 
exchange.getIn().getBody();
+        assertEquals(resultGet.getBrokerId(), "1");
+    }
+    
     @Override
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry registry = super.createRegistry();
@@ -136,6 +159,9 @@ public class MQProducerTest extends CamelTestSupport {
                 from("direct:rebootBroker")
                     
.to("aws-mq://test?amazonMqClient=#amazonMqClient&operation=rebootBroker")
                     .to("mock:result");
+                from("direct:updateBroker")
+                    
.to("aws-mq://test?amazonMqClient=#amazonMqClient&operation=updateBroker")
+                    .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 8b1c213..c629c07 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
@@ -44,6 +44,11 @@
             <to 
uri="aws-mq://Test?amazonMqClient=#amazonMqClient&amp;operation=rebootBroker"/>
             <to uri="mock:result"/>
         </route>
+        <route>
+            <from uri="direct:updateBroker"/>
+            <to 
uri="aws-mq://Test?amazonMqClient=#amazonMqClient&amp;operation=updateBroker"/>
+            <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
acosent...@apache.org.

Reply via email to