From abd7685928735cefdfddf10cfa573fa45be30d07 Mon Sep 17 00:00:00 2001 From: Murali Reddy Date: Fri, 14 Dec 2012 16:49:17 +0530 Subject: [PATCH] fix the bug in creating exchange on AMQP --- .../src/org/apache/cloudstack/framework/events/Event.java | 3 ++- .../apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/framework/events/src/org/apache/cloudstack/framework/events/Event.java b/framework/events/src/org/apache/cloudstack/framework/events/Event.java index 96d0b76217e..f35bbef6eda 100644 --- a/framework/events/src/org/apache/cloudstack/framework/events/Event.java +++ b/framework/events/src/org/apache/cloudstack/framework/events/Event.java @@ -29,6 +29,7 @@ public class Event { String description; String publisher; String date; + String resourceType; public Event(String category, String type, String routingKey) { this.category = category; @@ -58,7 +59,7 @@ public class Event { public void setDescription (Object message) { Gson gson = new Gson(); - this.description = gson.toJson(description).toString(); + this.description = gson.toJson(message).toString(); } public String getEventPublisher() { diff --git a/plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java b/plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java index a3685e88498..3c51cd7af4c 100644 --- a/plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java +++ b/plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/RabbitMQEventBus.java @@ -102,20 +102,21 @@ public class RabbitMQEventBus implements EventBus { } } - private void createExchange(String eventCategory) throws Exception { - String exchangeName = getExchangeName(eventCategory); + private void createExchange(String exchangeName) throws Exception { try { _channel.exchangeDeclare(exchangeName, "topic", true); } catch (java.io.IOException exception) { - s_logger.error("Failed to create exchange on RabbitMQ server for the event category " + eventCategory); + s_logger.error("Failed to create exchange" + exchangeName + " on RabbitMQ server"); throw exception; } } private void publishEventToExchange(String exchangeName, String routingKey, String eventDescription) throws Exception { try { + _channel.txSelect(); byte[] messageBodyBytes = eventDescription.getBytes(); _channel.basicPublish(exchangeName, routingKey, MessageProperties.PERSISTENT_TEXT_PLAIN, messageBodyBytes); + _channel.txCommit(); } catch (Exception e) { s_logger.error("Failed to publish event " + routingKey + " on exchange " + exchangeName + " of message broker due to " + e.getMessage());