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);


Reply via email to