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