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 <[email protected]>
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
[email protected].