Author: rajikak
Date: Tue Jul 30 19:24:26 2013
New Revision: 1508583
URL: http://svn.apache.org/r1508583
Log:
fixed connection close.
Modified:
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
Modified:
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java?rev=1508583&r1=1508582&r2=1508583&view=diff
==============================================================================
---
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
(original)
+++
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
Tue Jul 30 19:24:26 2013
@@ -38,7 +38,7 @@ import java.io.IOException;
*/
public class RabbitMQAMQPClient {
- public static void main(String[] args) throws IOException,
InterruptedException {
+ public static void main(String[] args) {
String queueName = System.getProperty("queueName");
String mode = System.getProperty("mode");
String routingKey = System.getProperty("routingKey");
@@ -60,47 +60,68 @@ public class RabbitMQAMQPClient {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
- Connection connection = factory.newConnection();
+ Connection connection = null;
+ Channel channel = null;
+ try {
+ connection = factory.newConnection();
- Channel channel = connection.createChannel();
- channel.queueDeclare(queueName, false, false, false, null);
+ channel = connection.createChannel();
+ if (mode == null) {
+ mode = "producer";
+ }
- if (mode == null) {
- mode = "producer";
- }
-
- if ("producer".equals(mode)) {
- if (queueName != null) {
- channel.basicPublish("", queueName, null, msg.getBytes());
- } else {
- if (routingKey != null) {
- if (exchangeName == null) {
- exchangeName = "topic-exchange";
- }
- channel.basicPublish(exchangeName, routingKey, null,
msg.getBytes());
-
+ if ("producer".equals(mode)) {
+ if (queueName != null) {
+ channel.basicPublish("", queueName, null, msg.getBytes());
} else {
- if (exchangeName == null) {
- exchangeName = "subscriber-exchange";
+ if (routingKey != null) {
+ if (exchangeName == null) {
+ exchangeName = "topic-exchange";
+ }
+ channel.basicPublish(exchangeName, routingKey, null,
msg.getBytes());
+
+ } else {
+ if (exchangeName == null) {
+ exchangeName = "subscriber-exchange";
+ }
+ channel.basicPublish(exchangeName, "", null,
msg.getBytes());
}
- channel.basicPublish(exchangeName, "", null,
msg.getBytes());
}
+ } else {
+ if (queueName == null) {
+ queueName = "ConsumerProxy";
+ }
+ QueueingConsumer consumer = new QueueingConsumer(channel);
+ channel.basicConsume(queueName, true, consumer);
+
+ QueueingConsumer.Delivery delivery = consumer.nextDelivery();
+ String message = new String(delivery.getBody());
+ System.out.println("[x] received '" + message + "'");
}
- } else {
- if (queueName == null) {
- queueName = "ConsumerProxy";
+ channel.close();
+ connection.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ if (channel != null && channel.isOpen()) {
+ try {
+ channel.close();
+ } catch (IOException e) {
+ System.err.println("Error occurred while closing the
channel:" + e.getMessage());
+ }
+ }
+ if (connection != null && connection.isOpen()) {
+ try {
+ connection.close();
+ } catch (IOException e) {
+ System.err.println("Error occurred while closing the
connection:" +
+ e.getMessage());
+ }
}
- QueueingConsumer consumer = new QueueingConsumer(channel);
- channel.basicConsume(queueName, true, consumer);
-
- QueueingConsumer.Delivery delivery = consumer.nextDelivery();
- String message = new String(delivery.getBody());
- System.out.println("[x] received '" + message + "'");
}
-
- channel.close();
- connection.close();
}
private static double getRandom(double base, double varience, boolean
onlypositive) {
@@ -108,5 +129,4 @@ public class RabbitMQAMQPClient {
return (base + ((rand > 0.5 ? 1 : -1) * varience * base * rand))
* (onlypositive ? 1 : (rand > 0.5 ? 1 : -1));
}
-
}
\ No newline at end of file