summaryrefslogtreecommitdiff
path: root/qpid/java/tools
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-05-09 16:19:28 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-05-09 16:19:28 +0000
commit11fd2707e426292b8d6462d36d911171bd3a48a2 (patch)
tree753b3326df8edc3636ce4d198bdf237484e7e411 /qpid/java/tools
parent59af7da2e4d9113c34655c678238f40652a69d53 (diff)
downloadqpid-python-11fd2707e426292b8d6462d36d911171bd3a48a2.tar.gz
QPID-3941 Added the c++ equivalent of qpid-send and qpid-receive with
identical options. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1336279 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/tools')
-rwxr-xr-xqpid/java/tools/bin/qpid-jms-receive193
-rwxr-xr-xqpid/java/tools/bin/qpid-jms-send261
2 files changed, 454 insertions, 0 deletions
diff --git a/qpid/java/tools/bin/qpid-jms-receive b/qpid/java/tools/bin/qpid-jms-receive
new file mode 100755
index 0000000000..57abe874ff
--- /dev/null
+++ b/qpid/java/tools/bin/qpid-jms-receive
@@ -0,0 +1,193 @@
+#!/bin/sh
+#
+# 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 starts the controller for coordinating perf tests/
+
+. check-qpid-java-env
+
+PROGRAM_NAME="qpid-jms-receive"
+URL="amqp://guest:guest@clientid/testpath?brokerlist='tcp://localhost:5672'"
+ADDRESS="queue;{create:always}"
+TIMEOUT="0"
+FOREVER="false"
+MESSAGES="1"
+IGNORE_DUPLICATES="false"
+CHECK_REDELIVERED="false"
+CAPACITY="1000"
+ACK_FREQUENCY="100"
+TX="0"
+ROLLBACL_FREQUENCY="0"
+PRINT_CONTENT="false"
+PRINT_HEADERS="false"
+REPORT_TOTAL="false"
+REPORT_EVERY="0"
+REPORT_HEADER="true"
+READY_ADDRES="''"
+EXTRA_JVM_ARGS=""
+VERBOSE="0"
+
+TEST_ID=`echo ${HOSTNAME} | awk -F . '{print $1}'`
+
+TEMP=$(getopt -n $PROGRAM_NAME -o b:a:f:m:vh\
+ --long broker:,address:,timeout:,forever\
+,messages:,ignore-duplicates,check-redelivered\
+,capacity:,ack-frequency:,tx:,rollback-frequency:\
+,print-content:,print-headers:,report-total\
+,report-every:,report-header:,ready-address:\
+,jvm-args:,verbose,help -- "$@")
+
+# padding the option string with 4 spaces
+# padding the desc string with 30 spaces
+usage()
+{
+ printf "\n%s\n" "Usage: $PROGRAM_NAME [option].."
+
+ printf "\n%20s\n%57s\n" "-b, --broker URL" "url of broker to connect to"
+
+ printf "\n%24s\n%53s\n" "-a,--address ADDRESS" "address to receive from"
+
+ printf "\n%25s\n%71s\n" "--timeout TIMEOUT (0)" "timeout in seconds to wait before exiting"
+
+ printf "\n%17s\n%61s\n" "-f, --forever" "ignore timeout and wait forever"
+
+ printf "\n%24s\n%89s\n" "-m, --messages N (0)" "Number of messages to receive; 0 means receive indefinitely"
+
+ printf "\n%23s\n%84s\n" "--ignore-duplicates" "Detect and ignore duplicates (by checking 'sn' header)"
+
+ printf "\n%23s\n%82s\n%92s\n" "--check-redelivered" "Fails with exception if a duplicate is not marked as" " redelivered (only relevant when ignore-duplicates is selected)"
+
+ printf "\n%23s\n%71s\n" "--capacity N (1000)" "Pre-fetch window (0 implies no pre-fetch)"
+
+ printf "\n%27s\n%94s\n" "--ack-frequency N (100)" "Ack frequency (0 implies none of the messages will get accepted)"
+
+ printf "\n%14s\n%94s\n" "--tx N (0)" "batch size for transactions (0 implies transaction are not used)"
+
+ printf "\n%30s\n%94s\n" "--rollback-frequency N (0)" "rollback frequency (0 implies no transaction will be rolledback)"
+
+ printf "\n%30s\n%55s\n" "--print-content yes|no (0)" "print out message content"
+
+ printf "\n%30s\n%55s\n" "--print-headers yes|no (0)" "print out message headers"
+
+ printf "\n%18s\n%76s\n" "--report-total" "Report total throughput and latency statistics"
+
+ printf "\n%24s\n%87s\n" "--report-every N (0)" "Report throughput and latency statistics every N messages"
+
+ printf "\n%30s\n%47s\n" "--report-header yes|no (1)" "Headers on report"
+
+ printf "\n%27s\n%82s\n" "--ready-address ADDRESS" "send a message to this address when ready to receive"
+
+ printf "\n%14s\n%69s\n" "--jvm-args" "Extra jvm arguments you want to specify"
+
+ printf "\n%17s\n%69s\n\n" "-v, --verbose" "Print debug information for this script"
+}
+
+eval set -- "$TEMP"
+while true; do
+ case $1 in
+ -b|--broker)
+ URL="$2"; shift; shift; continue
+ ;;
+ -a|--address)
+ ADDRESS="$2"; shift; shift; continue
+ ;;
+ --timeout)
+ TIMEOUT="$2"; shift; shift; continue
+ ;;
+ -f|--forever)
+ FOREVER="$2"; shift; shift; continue
+ ;;
+ -m|--messages)
+ MESSAGES="$2"; shift; shift; continue
+ ;;
+ --ignore-duplicates)
+ IGNORE_DUPLICATES="true"; shift; continue
+ ;;
+ --check-redelivered)
+ CHECK_REDELIVERED="true"; shift; continue
+ ;;
+ --capacity)
+ CAPACITY="$2"; shift; shift; continue
+ ;;
+ --ack-frequency)
+ ACK_FREQUENCY="$2"; shift; shift; continue
+ ;;
+ --tx)
+ TX="$2"; shift; shift; continue
+ ;;
+ --rollback-frequency)
+ ROLLBACK_FREQUENCY="$2"; shift; shift; continue
+ ;;
+ --print-content)
+ if [ "$2" == "yes" ]; then PRINT_CONTENT="true"; else PRINT_CONTENT="false"; fi; shift; shift; continue
+ ;;
+ --print-headers)
+ if [ "$2" == "yes" ]; then PRINT_HEADERS="true"; else PRINT_HEADERS="false"; fi; shift; shift; continue
+ ;;
+ --report-total)
+ REPORT_TOTAL="true"; shift; continue
+ ;;
+ --report-every)
+ REPORT_EVERY="$2"; shift; shift; continue
+ ;;
+ --report-header)
+ if [ "$2" == "yes" ]; then REPORT_HEADER="true"; else REPORT_HEADER="false"; fi; shift; shift; continue
+ ;;
+ --ready-address)
+ READY_ADDRESS="$2"; shift; shift; continue
+ ;;
+ -a|--jvm-args)
+ EXTRA_JVM_ARGS="$2"; shift; shift; continue
+ ;;
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ VERBOSE="1"; shift; continue
+ ;;
+ --)
+ # no more arguments to parse
+ break
+ ;;
+ *)
+ # no more arguments to parse
+ break
+ ;;
+ esac
+done
+
+RECEIVER_ARGS="-server -Durl=$URL \
+-Daddress=$ADDRESS \
+-Dtimeout=$TIMEOUT \
+-Dmsg-count=$MESSAGES \
+-Dack-frequency=$ACK_FREQUENCY \
+-Dtx=$TX \
+-Drollback-frequnecy=$ROLLBACL_FREQUENCY \
+-Dprint-content=$PRINT_CONTENT \
+-Dprint-headers=$PRINT_HEADERS \
+-Dreport-total=$REPORT_TOTAL \
+-Dreport-every=$REPORT_EVERY \
+-Dreport-header=$REPORT_HEADER \
+-Dmax_prefetch=$CAPACITY "
+
+if [ "x$READY_ADDRESS" != "x" ]; then RECEIVER_ARGS="$RECEIVER_ARGS -Dready-address=$READY_ADDRESS"; fi
+if [ "$VERBOSE" == "1" ]; then echo $RECEIVER_ARGS; fi
+echo $RECEIVER_ARGS
+$JAVA -cp $CLASSPATH $LOG_CONFIG $JAVA_MEM $RECEIVER_ARGS org.apache.qpid.tools.QpidReceive
diff --git a/qpid/java/tools/bin/qpid-jms-send b/qpid/java/tools/bin/qpid-jms-send
new file mode 100755
index 0000000000..d7695924f0
--- /dev/null
+++ b/qpid/java/tools/bin/qpid-jms-send
@@ -0,0 +1,261 @@
+#!/bin/sh
+#
+# 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 starts the controller for coordinating perf tests/
+
+. check-qpid-java-env
+
+PROGRAM_NAME="qpid-jms-send"
+URL="amqp://guest:guest@clientid/testpath?brokerlist='tcp://localhost:5672'"
+ADDRESS="queue;{create:always}"
+MESSAGES="1"
+ID=""
+REPLY_TO=""
+SEND_EOS="1"
+DURABLE="false"
+TTL="0"
+PRIORITY="0"
+PROPERTY=""
+CORRELATION_ID=""
+USER_ID=""
+CONTENT_STRING=""
+CONTENT_SIZE="1024"
+CONTENT_MAP=""
+CAPACITY="1000"
+ACK_FREQUENCY="100"
+TX="0"
+ROLLBACL_FREQUENCY="0"
+PRINT_CONTENT="true"
+PRINT_HEADERS="false"
+REPORT_TOTAL="false"
+REPORT_EVERY="0"
+REPORT_HEADER="true"
+SEND_RATE="-1"
+SEQUNCE="1"
+DISABLE_TIMESTAMP="false"
+EXTRA_JVM_ARGS=""
+VERBOSE="0"
+
+TEST_ID=`echo ${HOSTNAME} | awk -F . '{print $1}'`
+
+TEMP=$(getopt -n $PROGRAM_NAME -o b:a:m:i:P:M:vh\
+ --long broker:,address:,messages:,id:,reply-to:\
+,send-eos:,durable:,ttl:,property:,correlational-id:\
+,user-id:,content-string:,content-size:,content-map:\
+,capacity:,ack-frequency:,tx:,rollback-frequency:\
+,print-content:,print-headers:,report-total\
+,report-every:,report-header:,send-rate:,sequence:,timestamp:\
+,jvm-args:,verbose,help -- "$@")
+
+# padding the option string with 4 spaces
+# padding the desc string with 30 spaces
+usage()
+{
+ printf "\n%s\n" "Usage: $PROGRAM_NAME [option].."
+
+ printf "\n%20s\n%57s\n" "-b, --broker URL" "url of broker to connect to"
+
+ printf "\n%24s\n%53s\n" "-a,--address ADDRESS" "address to receive from"
+
+ printf "\n%24s\n%89s\n" "-m, --messages N (0)" "Number of messages to receive; 0 means receive indefinitely"
+
+ printf "\n%15s\n%75s\n" "-i, --id ID" "use the supplied id instead of generating one"
+
+ printf "\n%23s\n%54s\n" "--reply-to REPLY-TO" "specify reply-to address"
+
+ printf "\n%20s\n%70s\n" "--send-eos N (0)" "send N EOS messages to mark end of input"
+
+ printf "\n%24s\n%54s\n" "--durable yes|no (0)" "mark messages as durable"
+
+ printf "\n%19s\n%72s\n" "--ttl msecs (0)" "time-to-live for messages, in milliseconds"
+
+ printf "\n%27s\n%72s\n" "--priority PRIORITY (0)" "time-to-live for messages, in milliseconds"
+
+ printf "\n%29s\n%54s\n" "-P, --property NAME=VALUE" "specify message property"
+
+ printf "\n%23s\n%57s\n" "--correlation-id ID" "correlation-id for message"
+
+ printf "\n%20s\n%48s\n" "--user-id USERID" "userid for message"
+
+ printf "\n%28s\n%60s\n" "--content-string CONTENT" "use CONTENT as message content"
+
+ printf "\n%24s\n%62s\n" "--content-size N (0)" "create an N-byte message content"
+
+ printf "\n%32s\n%59s\n" "-M, --content-map NAME=VALUE" "specify entry for map content"
+
+ printf "\n%23s\n%71s\n" "--capacity N (1000)" "Pre-fetch window (0 implies no pre-fetch)"
+
+ printf "\n%27s\n%94s\n" "--ack-frequency N (100)" "Ack frequency (0 implies none of the messages will get accepted)"
+
+ printf "\n%14s\n%94s\n" "--tx N (0)" "batch size for transactions (0 implies transaction are not used)"
+
+ printf "\n%30s\n%94s\n" "--rollback-frequency N (0)" "rollback frequency (0 implies no transaction will be rolledback)"
+
+ printf "\n%30s\n%55s\n" "--print-content yes|no (1)" "print out message content"
+
+ printf "\n%30s\n%55s\n" "--print-headers yes|no (0)" "print out message headers"
+
+ printf "\n%18s\n%76s\n" "--report-total" "Report total throughput and latency statistics"
+
+ printf "\n%24s\n%87s\n" "--report-every N (0)" "Report throughput and latency statistics every N messages"
+
+ printf "\n%30s\n%47s\n" "--report-header yes|no (1)" "Headers on report"
+
+ printf "\n%21s\n%64s\n%62s\n" "--send-rate N (0)" "Send at rate of N messages/second." "0 means send as fast as possible"
+
+ printf "\n%25s\n%69s\n%77s\n" "--sequence yes|no (1)" "Add a sequence number messages property" "(required for duplicate/lost message detection)"
+
+ printf "\n%26s\n%64s\n%77s\n" "--timestamp yes|no (1)" "Add a time stamp messages property" "(required for duplicate/lost message detection)"
+
+ printf "\n%14s\n%69s\n" "--jvm-args" "Extra jvm arguments you want to specify"
+
+ printf "\n%17s\n%69s\n\n" "-v, --verbose" "Print debug information for this script"
+}
+
+eval set -- "$TEMP"
+while true; do
+ case $1 in
+ -b|--broker)
+ URL="$2"; shift; shift; continue
+ ;;
+ -a|--address)
+ ADDRESS="$2"; shift; shift; continue
+ ;;
+ -m|--messages)
+ MESSAGES="$2"; shift; shift; continue
+ ;;
+ -i|--id)
+ ID="$2"; shift; shift; continue
+ ;;
+ --reply-to)
+ REPLY_TO="$2"; shift; shift; continue
+ ;;
+ --send-eos)
+ SEND_EOS="$2"; shift; shift; continue
+ ;;
+ --durable)
+ if [ "$2" == "1" ]; then DURABLE="true"; else DURABLE="false"; fi; shift; shift; continue
+ ;;
+ --ttl)
+ TTL="$2"; shift; shift; continue
+ ;;
+ --priority)
+ PRIORITY="$2"; shift; shift; continue
+ ;;
+ -P|--property)
+ PROPERTY="$2,$PROPERTY"; shift; shift; continue
+ ;;
+ --correlation-id)
+ CORRELATION_ID="$2"; shift; shift; continue
+ ;;
+ --user-id)
+ USER_ID="$2"; shift; shift; continue
+ ;;
+ --content-string)
+ CONTENT_STRING="$2"; shift; shift; continue
+ ;;
+ --content-size)
+ CONTENT_SIZE="$2"; shift; shift; continue
+ ;;
+ -M|--content-map)
+ CONTENT_MAP="$2,$CONTENT_MAP"; shift; shift; continue
+ ;;
+ --capacity)
+ CAPACITY="$2"; shift; shift; continue
+ ;;
+ --ack-frequency)
+ ACK_FREQUENCY="$2"; shift; shift; continue
+ ;;
+ --tx)
+ TX="$2"; shift; shift; continue
+ ;;
+ --rollback-frequency)
+ ROLLBACK_FREQUENCY="$2"; shift; shift; continue
+ ;;
+ --print-content)
+ if [ "$2" == "yes" ]; then PRINT_CONTENT="true"; else PRINT_CONTENT="false"; fi; shift; shift; continue
+ ;;
+ --print-headers)
+ if [ "$2" == "yes" ]; then PRINT_HEADERS="true"; else PRINT_HEADERS="false"; fi; shift; shift; continue
+ ;;
+ --report-total)
+ REPORT_TOTAL="true"; shift; continue
+ ;;
+ --report-every)
+ REPORT_EVERY="$2"; shift; shift; continue
+ ;;
+ --report-header)
+ if [ "$2" == "yes" ]; then REPORT_HEADER="true"; else REPORT_HEADER="false"; fi; shift; shift; continue
+ ;;
+ --send-rate)
+ SEND_RATE="$2"; shift; shift; continue
+ ;;
+ --sequence)
+ if [ "$2" == "yes" ]; then SEQUENCE="true"; else SEQUENCE="false"; fi; shift; shift; continue
+ ;;
+ --timestamp)
+ if [ "$2" == "yes" ]; then DISABLE_TIMESTAMP="false"; else DISABLE_TIMESTAMP="true"; fi; shift; shift; continue
+ ;;
+ -a|--jvm-args)
+ EXTRA_JVM_ARGS="$2"; shift; shift; continue
+ ;;
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ VERBOSE="1"; shift; continue
+ ;;
+ --)
+ # no more arguments to parse
+ break
+ ;;
+ *)
+ # no more arguments to parse
+ break
+ ;;
+ esac
+done
+
+SENDER_ARGS="-server -Durl=$URL \
+-Daddress=$ADDRESS \
+-Dmsg-count=$MESSAGES \
+-Dsend-eos=$SEND_EOS \
+-Ddurable=$DURABLE \
+-Dmsg_size=$CONTENT_SIZE \
+-Dsend-rate=$SEND_RATE \
+-Ddisable-timestamp=$DISABLE_TIMESTAMP \
+-Dttl=$TTL \
+-Dpriority=$PRIORITY \
+-Dtx=$TX \
+-Drollback-frequnecy=$ROLLBACK_FREQUENCY \
+-Dprint-content=$PRINT_CONTENT \
+-Dprint-headers=$PRINT_HEADERS \
+-Dreport-total=$REPORT_TOTAL \
+-Dreport-every=$REPORT_EVERY \
+-Dreport-header=$REPORT_HEADER \
+-Dmax_prefetch=$CAPACITY "
+
+if [ "x$ID" != "x" ]; then SENDER_ARGS="$SENDER_ARGS -Did=$ID"; fi
+if [ "x$USER_ID" != "x" ]; then SENDER_ARGS="$SENDER_ARGS -Duser_id=$USER_ID"; fi
+if [ "x$CORRELATION_ID" != "x" ]; then SENDER_ARGS="$SENDER_ARGS -Dcorrelation_id=$CORRELATION_ID"; fi
+
+if [ "$VERBOSE" == "1" ]; then echo $SENDER_ARGS; fi
+$JAVA -cp $CLASSPATH $LOG_CONFIG $JAVA_MEM $SENDER_ARGS org.apache.qpid.tools.QpidSend