Author: rajikak
Date: Tue Jul 30 06:57:22 2013
New Revision: 1508322
URL: http://svn.apache.org/r1508322
Log:
added a rabbit mq client.
Added:
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
Modified:
synapse/trunk/java/modules/samples/pom.xml
synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml
synapse/trunk/java/modules/transports/optional/amqp/src/main/java/org/apache/synapse/transport/amqp/pollingtask/AMQPSimpleConsumerTask.java
Modified: synapse/trunk/java/modules/samples/pom.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/samples/pom.xml?rev=1508322&r1=1508321&r2=1508322&view=diff
==============================================================================
--- synapse/trunk/java/modules/samples/pom.xml (original)
+++ synapse/trunk/java/modules/samples/pom.xml Tue Jul 30 06:57:22 2013
@@ -413,6 +413,12 @@
<dependencies>
<dependency>
+ <groupId>com.rabbitmq</groupId>
+ <artifactId>amqp-client</artifactId>
+ <version>${rabbitmq.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.synapse</groupId>
<artifactId>synapse-core</artifactId>
</dependency>
Added:
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=1508322&view=auto
==============================================================================
---
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
(added)
+++
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/RabbitMQAMQPClient.java
Tue Jul 30 06:57:22 2013
@@ -0,0 +1,112 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package samples.userguide;
+
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
+import com.rabbitmq.client.QueueingConsumer;
+
+import java.io.IOException;
+
+/**
+ * A generic client for RabbitMQ
+ */
+public class RabbitMQAMQPClient {
+
+ public static void main(String[] args) throws IOException,
InterruptedException {
+ String queueName = System.getProperty("queueName");
+ String mode = System.getProperty("mode");
+ String routingKey = System.getProperty("routingKey");
+ String exchangeName = System.getProperty("exchangeName");
+
+ String quote = System.getProperty("payLoad");
+ if (quote == null) {
+ quote = "IBM";
+ }
+ String msg =
+ "<m:placeOrder xmlns:m=\"http://services.samples\">\n" +
+ " <m:order>\n" +
+ " <m:price>" + getRandom(100, 0.9, true) +
"</m:price>\n" +
+ " <m:quantity>" + (int) getRandom(10000, 1.0,
true) + "</m:quantity>\n" +
+ " <m:symbol>" + quote + "</m:symbol>\n" +
+ " </m:order>\n" +
+ "</m:placeOrder>";
+
+
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost("localhost");
+ Connection connection = factory.newConnection();
+
+ Channel channel = connection.createChannel();
+ channel.queueDeclare(queueName, false, false, false, null);
+
+
+ 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());
+
+ } else {
+ if (exchangeName == null) {
+ exchangeName = "subscriber-exchange";
+ }
+ 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 + "'");
+ }
+
+ channel.close();
+ connection.close();
+ }
+
+ private static double getRandom(double base, double varience, boolean
onlypositive) {
+ double rand = Math.random();
+ return (base + ((rand > 0.5 ? 1 : -1) * varience * base * rand))
+ * (onlypositive ? 1 : (rand > 0.5 ? 1 : -1));
+ }
+
+}
\ No newline at end of file
Modified:
synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml?rev=1508322&r1=1508321&r2=1508322&view=diff
==============================================================================
--- synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml
(original)
+++ synapse/trunk/java/modules/samples/src/main/scripts/axis2Client/build.xml
Tue Jul 30 06:57:22 2013
@@ -119,6 +119,16 @@
ant jsonclient
[-Daddurl=http://localhost:8280/services/JSONProxy]
[-Dsymbol=DELL]
+
+ ant rabbitmqclient
+ A simple client for RabbitMQ AMQP broker.
+
+ examples:
+ ant rabbitmqclient [-Damqpmode=consumer] [-DqueueName=ConsumerProxy]
[-DpayLoad=IBM]
+ ant rabbitmqclient [-Damqpmode=producer] [-DqueueName=ConsumerProxy]
[-DpayLoad=IBM]
+ ant rabbitmqclient [-Damqpmode=producer]
[-DexchangeName=subscriber-exchange] [-DpayLoad=IBM]
+ ant rabbitmqclient [-Damqpmode=producer]
[-DexchangeName=topic-exchange] [-DroutingKey=kern.critical] [-DpayLoad=IBM]
+
</echo>
</target>
@@ -159,7 +169,11 @@
<property name="topicns" value=""/>
<property name="mode" value=""/>
<property name="identifier" value=""/>
- <property name="expires" value=""/>
+ <property name="amqpmode" value=""/>
+ <property name="queueName" value=""/>
+ <property name="payLoad" value=""/>
+ <property name="exchangeName" value=""/>
+ <property name="routingKey" value=""/>
<target name="clean">
<delete dir="target" quiet="true"/>
@@ -242,6 +256,17 @@
</java>
</target>
+ <target name="rabbitmqclient" depends="compile">
+ <java classname="samples.userguide.RabbitMQAMQPClient"
+ classpathref="javac.classpath" fork="true">
+ <sysproperty key="amqpmode" value="${amqpmode}"/>
+ <sysproperty key="queueName" value="${queueName}"/>
+ <sysproperty key="payLoad" value="${payLoad}"/>
+ <sysproperty key="exchangeName" value="${exchangeName}"/>
+ <sysproperty key="routingKey" value="${routingKey}"/>
+ </java>
+ </target>
+
<target name="fixclient" depends="compile">
<java classname="samples.userguide.FIXClient"
classpathref="javac.classpath" fork="true">
Modified:
synapse/trunk/java/modules/transports/optional/amqp/src/main/java/org/apache/synapse/transport/amqp/pollingtask/AMQPSimpleConsumerTask.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/optional/amqp/src/main/java/org/apache/synapse/transport/amqp/pollingtask/AMQPSimpleConsumerTask.java?rev=1508322&r1=1508321&r2=1508322&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/optional/amqp/src/main/java/org/apache/synapse/transport/amqp/pollingtask/AMQPSimpleConsumerTask.java
(original)
+++
synapse/trunk/java/modules/transports/optional/amqp/src/main/java/org/apache/synapse/transport/amqp/pollingtask/AMQPSimpleConsumerTask.java
Tue Jul 30 06:57:22 2013
@@ -86,7 +86,6 @@ public class AMQPSimpleConsumerTask {
this.responseMessage = responseMessage;
}
- @Override
public void run() {
try {
channel.queueDeclare(queueName, false, false, false, null);