Author: gsim
Date: Thu May 1 03:15:35 2008
New Revision: 652469
URL: http://svn.apache.org/viewvc?rev=652469&view=rev
Log:
QPID-966: applied patch from rajith; altered to use uuid as session name;
updated verify scripts for automated testing;
re-enabled automated testing in c++ build
Modified:
incubator/qpid/trunk/qpid/cpp/examples/Makefile.am
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in
incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python
incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python.in
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python.in
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp.in
incubator/qpid/trunk/qpid/cpp/examples/verify_all
incubator/qpid/trunk/qpid/python/examples/direct/declare_queues.py
incubator/qpid/trunk/qpid/python/examples/direct/direct_consumer.py
incubator/qpid/trunk/qpid/python/examples/direct/direct_producer.py
incubator/qpid/trunk/qpid/python/examples/direct/listener.py
incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py
incubator/qpid/trunk/qpid/python/examples/fanout/fanout_producer.py
incubator/qpid/trunk/qpid/python/examples/fanout/verify
incubator/qpid/trunk/qpid/python/examples/fanout/verify.in
incubator/qpid/trunk/qpid/python/examples/pubsub/topic_publisher.py
incubator/qpid/trunk/qpid/python/examples/pubsub/topic_subscriber.py
incubator/qpid/trunk/qpid/python/examples/pubsub/verify
incubator/qpid/trunk/qpid/python/examples/pubsub/verify.in
incubator/qpid/trunk/qpid/python/examples/request-response/client.py
incubator/qpid/trunk/qpid/python/examples/request-response/server.py
incubator/qpid/trunk/qpid/python/examples/request-response/verify
incubator/qpid/trunk/qpid/python/examples/request-response/verify.in
Modified: incubator/qpid/trunk/qpid/cpp/examples/Makefile.am
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/Makefile.am?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/Makefile.am Thu May 1 03:15:35 2008
@@ -64,8 +64,8 @@
# to find .spec via PYTHONPATH.
#
# Verify the examples in the buid tree.
-# check-local: all-local verify
-# $(srcdir)/verify_all $(abs_top_srcdir)/..
+check-local: all-local verify
+ $(srcdir)/verify_all $(abs_top_srcdir)/..
# TODO:
# create a tarball for testing installed examples.
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python
Thu May 1 03:15:35 2008
@@ -3,5 +3,5 @@
background "Subscribed" $py/fanout_consumer.py
background "Subscribed" $py/fanout_consumer.py
clients ./fanout_producer
-outputs ./fanout_producer.out "$py/fanout_consumer.py.out | remove_uuid64"
"$py/fanout_consumer.pyX.out | remove_uuid64"
+outputs ./fanout_producer.out "$py/fanout_consumer.py.out | remove_uuid"
"$py/fanout_consumer.pyX.out | remove_uuid"
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in
Thu May 1 03:15:35 2008
@@ -1,5 +1,5 @@
==== fanout_producer.out
-==== fanout_consumer.py.out | remove_uuid64
+==== fanout_consumer.py.out | remove_uuid
Messages queue:
Subscribed to queue
Response: Message 0
@@ -14,7 +14,7 @@
Response: Message 9
Response: That's all, folks!
No more messages!
-==== fanout_consumer.pyX.out | remove_uuid64
+==== fanout_consumer.pyX.out | remove_uuid
Messages queue:
Subscribed to queue
Response: Message 0
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python
Thu May 1 03:15:35 2008
@@ -2,5 +2,5 @@
py=$PYTHON_EXAMPLES/pubsub
background "Queues created" $py/topic_subscriber.py
clients ./topic_publisher
-outputs ./topic_publisher.out "$py/topic_subscriber.py.out | remove_uuid64 |
sort"
+outputs ./topic_publisher.out "$py/topic_subscriber.py.out | remove_uuid |
sort"
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
---
incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python.in
(original)
+++
incubator/qpid/trunk/qpid/cpp/examples/examples/pub-sub/verify_cpp_python.in
Thu May 1 03:15:35 2008
@@ -1,5 +1,5 @@
==== topic_publisher.out
-==== topic_subscriber.py.out | remove_uuid64 | sort
+==== topic_subscriber.py.out | remove_uuid | sort
Message 0
Message 0
Message 0
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
---
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python
(original)
+++
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python
Thu May 1 03:15:35 2008
@@ -2,4 +2,4 @@
background "Request server running" $PYTHON_EXAMPLES/request-response/server.py
clients ./client
kill %% # Must kill the server.
-outputs "./client.out | remove_uuid"
"$PYTHON_EXAMPLES/request-response/server.py.out | remove_uuid64"
+outputs "./client.out | remove_uuid"
"$PYTHON_EXAMPLES/request-response/server.py.out | remove_uuid"
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
---
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python.in
(original)
+++
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_cpp_python.in
Thu May 1 03:15:35 2008
@@ -10,6 +10,6 @@
Response: ALL MIMSY WERE THE BOROGROVES,
Response: AND THE MOME RATHS OUTGRABE.
Shutting down listener for client
-==== server.py.out | remove_uuid64
+==== server.py.out | remove_uuid
Request server running - run your client now.
(Times out after 100 seconds ...)
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
---
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp
(original)
+++
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp
Thu May 1 03:15:35 2008
@@ -2,4 +2,4 @@
background "Waiting" ./server
clients $PYTHON_EXAMPLES/request-response/client.py
kill %% # Must kill the server.
-outputs "$PYTHON_EXAMPLES/request-response/client.py.out | remove_uuid64"
"server.out | remove_uuid64"
+outputs "$PYTHON_EXAMPLES/request-response/client.py.out | remove_uuid"
"server.out | remove_uuid"
Modified:
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
---
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp.in
(original)
+++
incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify_python_cpp.in
Thu May 1 03:15:35 2008
@@ -1,4 +1,4 @@
-==== client.py.out | remove_uuid64
+==== client.py.out | remove_uuid
Request: Twas brilling, and the slithy toves
Request: Did gyre and gimble in the wabe.
Request: All mimsy were the borogroves,
@@ -9,7 +9,7 @@
Response: ALL MIMSY WERE THE BOROGROVES,
Response: AND THE MOME RATHS OUTGRABE.
No more messages!
-==== server.out | remove_uuid64
+==== server.out | remove_uuid
Activating request queue listener for: request
Waiting for requests
Request: Twas brilling, and the slithy toves (ReplyTo:)
Modified: incubator/qpid/trunk/qpid/cpp/examples/verify_all
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/verify_all?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/verify_all (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/verify_all Thu May 1 03:15:35 2008
@@ -11,7 +11,7 @@
export QPID_PORT=`$qpidd -dp0 --data-dir ""`
export PYTHON_EXAMPLES=$python/examples
export PYTHONPATH=$python:$PYTHONPATH
-export AMQP_SPEC=$srcdir/specs/amqp.0-10-preview.xml
+export AMQP_SPEC=$srcdir/specs/amqp.0-10.xml
test -d $PYTHON_EXAMPLES || echo "Warning: not verifying python examples,
$PYTHON_EXAMPLES not found"
find="find examples"
Modified: incubator/qpid/trunk/qpid/python/examples/direct/declare_queues.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/direct/declare_queues.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/direct/declare_queues.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/direct/declare_queues.py Thu May
1 03:15:35 2008
@@ -10,8 +10,10 @@
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
from qpid.queue import Empty
#----- Initialization -----------------------------------
@@ -20,17 +22,20 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session.session_open()
+session = conn.session(str(randint(1,64*1024)))
#----- Create a queue -------------------------------------
@@ -38,15 +43,13 @@
# on the broker. Published messages are sent to the AMQP queue,
# from which messages are delivered to consumers.
#
-# queue_bind() determines which messages are routed to a queue.
-# Route all messages with the routing key "routing_key" to
+# exchange_bind() determines which messages are routed to a queue.
+# Route all messages with the binding key "routing_key" to
# the AMQP queue named "message_queue".
session.queue_declare(queue="message_queue")
-session.queue_bind(exchange="amq.direct", queue="message_queue",
routing_key="routing_key")
+session.exchange_bind(exchange="amq.direct", queue="message_queue",
binding_key="routing_key")
#----- Cleanup ---------------------------------------------
-session.session_close()
-
-
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/direct/direct_consumer.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/direct/direct_consumer.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/direct/direct_consumer.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/direct/direct_consumer.py Thu May
1 03:15:35 2008
@@ -8,8 +8,11 @@
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, RangedSet
from qpid.queue import Empty
@@ -19,17 +22,20 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session.session_open()
+session = conn.session(str(randint(1,64*1024)))
#----- Read from queue --------------------------------------------
@@ -39,7 +45,7 @@
# The consumer tag identifies the client-side queue.
consumer_tag = "consumer1"
-queue = client.queue(consumer_tag)
+queue = session.incoming(consumer_tag)
# Call message_consume() to tell the broker to deliver messages
# from the AMQP queue to this local client queue. The broker will
@@ -57,7 +63,8 @@
message = None
while content != final:
message = queue.get(timeout=10)
- content = message.content.body
+ content = message.body
+ session.message_accept(RangedSet(message.id))
print content
# Messages are not removed from the queue until they are
@@ -66,11 +73,12 @@
# acknowledged. This is more efficient, because there are fewer
# network round-trips.
-message.complete(cumulative=True)
+#message.complete(cumulative=True)
+# ? Is there an equivakent to the above in the new API ?
#----- Cleanup ------------------------------------------------
# Clean up before exiting so there are no open threads.
#
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/direct/direct_producer.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/direct/direct_producer.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/direct/direct_producer.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/direct/direct_producer.py Thu May
1 03:15:35 2008
@@ -8,8 +8,11 @@
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message
from qpid.queue import Empty
#----- Initialization -----------------------------------
@@ -18,34 +21,33 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session.session_open()
+session = conn.session(str(randint(1,64*1024)))
#----- Publish some messages ------------------------------
# Create some messages and put them on the broker.
+props = session.delivery_properties(routing_key="routing_key")
for i in range(10):
- message = Content("message " + str(i))
- message["routing_key"] = "routing_key"
- session.message_transfer(destination="amq.direct", content=message)
-
-final="That's all, folks!"
-message = Content(final)
-message["routing_key"] = "routing_key"
-session.message_transfer(destination="amq.direct", content=message)
+ session.message_transfer("amq.direct",None, None, Message(props,"message " +
str(i)))
+
+session.message_transfer("amq.direct",None,None, Message(props,"That's all,
folks!"))
#----- Cleanup --------------------------------------------
# Clean up before exiting so there are no open threads.
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/direct/listener.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/direct/listener.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/direct/listener.py (original)
+++ incubator/qpid/trunk/qpid/python/examples/direct/listener.py Thu May 1
03:15:35 2008
@@ -9,8 +9,11 @@
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, RangedSet
from qpid.queue import Empty
from time import sleep
@@ -24,7 +27,8 @@
return self.finalReceived
def Handler (self, message):
- content = message.content.body
+ content = message.body
+ session.message_accept(RangedSet(message.id))
print content
if content == "That's all, folks!":
self.finalReceived = True
@@ -34,7 +38,7 @@
# up to and including the one identified by the delivery tag are
# acknowledged. This is more efficient, because there are fewer
# network round-trips.
- message.complete(cumulative=True)
+ #message.complete(cumulative=True)
#----- Initialization --------------------------------------
@@ -43,17 +47,20 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session.session_open()
+session = conn.session(str(randint(1,64*1024)))
#----- Read from queue --------------------------------------------
@@ -63,7 +70,7 @@
# The consumer tag identifies the client-side queue.
consumer_tag = "consumer1"
-queue = client.queue(consumer_tag)
+queue = session.incoming(consumer_tag)
# Call message_subscribe() to tell the broker to deliver messages
# from the AMQP queue to this local client queue. The broker will
@@ -85,4 +92,4 @@
# Clean up before exiting so there are no open threads.
#
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py Thu May
1 03:15:35 2008
@@ -5,21 +5,22 @@
This AMQP client reads messages from a message
queue named "message_queue".
"""
-import base64
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, RangedSet, uuid4
from qpid.queue import Empty
#----- Functions -------------------------------------------
-def dump_queue(client, queue_name):
+def dump_queue(session, queue_name):
print "Messages queue: " + queue_name
consumer_tag = queue_name # Use the queue name as the consumer tag -
need a unique tag
- queue = client.queue(consumer_tag)
+ queue = session.incoming(queue_name)
# Call message_subscribe() to tell the broker to deliver messages
# from the AMQP queue to a local client queue. The broker will
@@ -37,7 +38,8 @@
while True:
try:
message = queue.get(timeout=10)
- content = message.content.body
+ content = message.body
+ session.message_accept(RangedSet(message.id))
print "Response: " + content
except Empty:
print "No more messages!"
@@ -53,8 +55,8 @@
# by the delivery tag are acknowledged. This is more efficient,
# because there are fewer network round-trips.
- if message != 0:
- message.complete(cumulative=True)
+ #if message != 0:
+ # message.complete(cumulative=True)
#----- Initialization --------------------------------------
@@ -63,36 +65,39 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session_info = session.session_open()
-session_id = session_info.session_id
+session_id = str(uuid4())
+session = conn.session(session_id)
#----- Main Body -- ----------------------------------------
# Make a unique queue name for my queue from the session ID.
-my_queue = base64.urlsafe_b64encode(session_id)
+my_queue = session_id
session.queue_declare(queue=my_queue)
# Bind my queue to the fanout exchange. No routing key is required
# the fanout exchange copies messages unconditionally to every
# bound queue
-session.queue_bind(queue=my_queue, exchange="amq.fanout")
+session.exchange_bind(queue=my_queue, exchange="amq.fanout")
# Dump the messages on the queue.
-dump_queue(client, my_queue)
+dump_queue(session, my_queue)
#----- Cleanup ------------------------------------------------
# Clean up before exiting so there are no open threads.
#
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/fanout/fanout_producer.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/fanout_producer.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/fanout_producer.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/fanout_producer.py Thu May
1 03:15:35 2008
@@ -5,11 +5,13 @@
Publishes messages to an AMQP direct exchange, using
the routing key "routing_key"
"""
-
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message
from qpid.queue import Empty
#----- Initialization -----------------------------------
@@ -18,32 +20,32 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
-
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-session = client.session()
-session.session_open()
+session = conn.session(str(randint(1,64*1024)))
#----- Publish some messages ------------------------------
# Create some messages and put them on the broker.
for i in range(10):
- message = Content(body="message " + str(i))
- session.message_transfer(destination="amq.fanout", content=message)
+ session.message_transfer("amq.fanout", None, None ,Message("message " +
str(i)))
-final="That's all, folks!"
-message=Content(final)
-session.message_transfer(destination="amq.fanout", content=message)
+session.message_transfer("amq.fanout", None, None, Message("That's all,
folks!"))
#----- Cleanup --------------------------------------------
# Clean up before exiting so there are no open threads.
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/fanout/verify
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/verify?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/verify (original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/verify Thu May 1 03:15:35
2008
@@ -2,4 +2,4 @@
background "Subscribed" ./fanout_consumer.py
background "Subscribed" ./fanout_consumer.py
clients ./fanout_producer.py
-outputs ./fanout_producer.py.out "./fanout_consumer.py.out | remove_uuid64"
"./fanout_consumer.pyX.out | remove_uuid64"
+outputs ./fanout_producer.py.out "./fanout_consumer.py.out | remove_uuid"
"./fanout_consumer.pyX.out | remove_uuid"
Modified: incubator/qpid/trunk/qpid/python/examples/fanout/verify.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/verify.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/verify.in (original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/verify.in Thu May 1
03:15:35 2008
@@ -1,5 +1,5 @@
==== fanout_producer.py.out
-==== fanout_consumer.py.out | remove_uuid64
+==== fanout_consumer.py.out | remove_uuid
Messages queue:
Subscribed to queue
Response: message 0
@@ -14,7 +14,7 @@
Response: message 9
Response: That's all, folks!
No more messages!
-==== fanout_consumer.pyX.out | remove_uuid64
+==== fanout_consumer.pyX.out | remove_uuid
Messages queue:
Subscribed to queue
Response: message 0
Modified: incubator/qpid/trunk/qpid/python/examples/pubsub/topic_publisher.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/pubsub/topic_publisher.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/pubsub/topic_publisher.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/pubsub/topic_publisher.py Thu May
1 03:15:35 2008
@@ -9,8 +9,11 @@
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message
from qpid.queue import Empty
#----- Initialization -----------------------------------
@@ -18,18 +21,20 @@
# Set parameters for login.
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-spec = qpid.spec.load(amqp_spec)
-client = Client(host, port, spec)
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session.session_open()
+session = conn.session(str(randint(1,64*1024)))
#----- Publish some messages ------------------------------
@@ -37,44 +42,30 @@
# topic exchange. The routing keys are "usa.news", "usa.weather",
# "europe.news", and "europe.weather".
+def send_msg(routing_key):
+ props = session.delivery_properties(routing_key=routing_key)
+ for i in range(5):
+ session.message_transfer("amq.topic", None, None, Message(props,"message
" + str(i)))
# usa.news
-
-for i in range(5):
- message = Content("message " + str(i))
- message["routing_key"] = "usa.news"
- session.message_transfer(destination="amq.topic", content=message)
+send_msg("usa.news")
# usa.weather
-
-for i in range(5):
- message = Content("message " + str(i))
- message["routing_key"] = "usa.weather"
- session.message_transfer(destination="amq.topic", content=message)
+send_msg("usa.weather")
# europe.news
-
-for i in range(5):
- message = Content("message " + str(i))
- message["routing_key"] = "europe.news"
- session.message_transfer(destination="amq.topic", content=message)
+send_msg("europe.news")
# europe.weather
-
-for i in range(5):
- message = Content("message " + str(i))
- message["routing_key"] = "europe.weather"
- session.message_transfer(destination="amq.topic", content=message)
+send_msg("europe.weather")
# Signal termination
-
-message = Content("That's all, folks!")
-message["routing_key"] = "control"
-session.message_transfer(destination="amq.topic", content=message)
+props = session.delivery_properties(routing_key="control")
+session.message_transfer("amq.topic",None, None, Message(props,"That's all,
folks!"))
#----- Cleanup --------------------------------------------
# Clean up before exiting so there are no open threads.
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/pubsub/topic_subscriber.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/pubsub/topic_subscriber.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/pubsub/topic_subscriber.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/pubsub/topic_subscriber.py Thu
May 1 03:15:35 2008
@@ -3,24 +3,25 @@
topic_subscriber.py
This subscriber creates private queues and binds them
- to the topics "usa.#", "europe.#", "#.news", and "#.weather".
+ to the topics 'usa.#', 'europe.#', '#.news', and '#.weather'.
"""
-import base64
-import sys
import qpid
-from qpid.client import Client
-from qpid.content import Content
+import sys
+import os
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, RangedSet, uuid4
from qpid.queue import Empty
#----- Functions -------------------------------------------
-def dump_queue(client, queue_name):
+def dump_queue(queue_name):
print "Messages queue: " + queue_name
consumer_tag = queue_name # Use the queue name as the consumer tag -
need a unique tag
- queue = client.queue(consumer_tag)
+ queue = session.incoming(consumer_tag)
# Call message_subscribe() to tell the broker to deliver messages
# from the AMQP queue to a local client queue. The broker will
@@ -37,11 +38,12 @@
while content != final:
try:
message = queue.get()
- content = message.content.body
+ content = message.body
+ session.message_accept(RangedSet(message.id))
print content
except Empty:
- if message != 0:
- message.complete(cumulative=True)
+ #if message != 0:
+ # message.complete(cumulative=True)
print "No more messages!"
return
@@ -52,8 +54,8 @@
# by the delivery tag are acknowledged. This is more efficient,
# because there are fewer network round-trips.
- if message != 0:
- message.complete(cumulative=True)
+ #if message != 0:
+ # message.complete(cumulative=True)
#----- Initialization --------------------------------------
@@ -62,27 +64,29 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-spec = qpid.spec.load(amqp_spec)
-client = Client(host, port, spec)
-client.start({"LOGIN": user, "PASSWORD": password})
-
-session = client.session()
-session_info = session.session_open()
-session_id = session_info.session_id
+session_id = str(uuid4())
+session = conn.session(session_id)
#----- Main Body -- ----------------------------------------
-news = "news" + base64.urlsafe_b64encode(session_id)
-weather = "weather" + base64.urlsafe_b64encode(session_id)
-usa = "usa" + base64.urlsafe_b64encode(session_id)
-europe = "europe" + base64.urlsafe_b64encode(session_id)
+news = "news" + session_id
+weather = "weather" + session_id
+usa = "usa" + session_id
+europe = "europe" + session_id
session.queue_declare(queue=news, exclusive=True)
session.queue_declare(queue=weather, exclusive=True)
@@ -94,17 +98,17 @@
# The '#' symbol matches one component of a multipart name, e.g. "#.news"
matches
# "europe.news" or "usa.news".
-session.queue_bind(exchange="amq.topic", queue=news, routing_key="#.news")
-session.queue_bind(exchange="amq.topic", queue=weather,
routing_key="#.weather")
-session.queue_bind(exchange="amq.topic", queue=usa, routing_key="usa.#")
-session.queue_bind(exchange="amq.topic", queue=europe, routing_key="europe.#")
+session.exchange_bind(exchange="amq.topic", queue=news, binding_key="#.news")
+session.exchange_bind(exchange="amq.topic", queue=weather,
binding_key="#.weather")
+session.exchange_bind(exchange="amq.topic", queue=usa, binding_key="usa.#")
+session.exchange_bind(exchange="amq.topic", queue=europe,
binding_key="europe.#")
# Bind each queue to the control queue so we know when to stop
-session.queue_bind(exchange="amq.topic", queue=news, routing_key="control")
-session.queue_bind(exchange="amq.topic", queue=weather, routing_key="control")
-session.queue_bind(exchange="amq.topic", queue=usa, routing_key="control")
-session.queue_bind(exchange="amq.topic", queue=europe, routing_key="control")
+session.exchange_bind(exchange="amq.topic", queue=news, binding_key="control")
+session.exchange_bind(exchange="amq.topic", queue=weather,
binding_key="control")
+session.exchange_bind(exchange="amq.topic", queue=usa, binding_key="control")
+session.exchange_bind(exchange="amq.topic", queue=europe,
binding_key="control")
# Remind the user to start the topic producer
@@ -113,13 +117,13 @@
# Call dump_queue to print messages from each queue
-dump_queue(client, news)
-dump_queue(client, weather)
-dump_queue(client, usa)
-dump_queue(client, europe)
+dump_queue(news)
+dump_queue(weather)
+dump_queue(usa)
+dump_queue(europe)
#----- Cleanup ------------------------------------------------
# Clean up before exiting so there are no open threads.
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/pubsub/verify
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/pubsub/verify?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/pubsub/verify (original)
+++ incubator/qpid/trunk/qpid/python/examples/pubsub/verify Thu May 1 03:15:35
2008
@@ -1,4 +1,4 @@
# See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify
background "Queues created" ./topic_subscriber.py
clients ./topic_publisher.py
-outputs ./topic_publisher.py.out "topic_subscriber.py.out | remove_uuid64 |
sort"
+outputs ./topic_publisher.py.out "topic_subscriber.py.out | remove_uuid | sort"
Modified: incubator/qpid/trunk/qpid/python/examples/pubsub/verify.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/pubsub/verify.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/pubsub/verify.in (original)
+++ incubator/qpid/trunk/qpid/python/examples/pubsub/verify.in Thu May 1
03:15:35 2008
@@ -1,5 +1,5 @@
==== topic_publisher.py.out
-==== topic_subscriber.py.out | remove_uuid64 | sort
+==== topic_subscriber.py.out | remove_uuid | sort
message 0
message 0
message 0
Modified: incubator/qpid/trunk/qpid/python/examples/request-response/client.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/request-response/client.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/request-response/client.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/request-response/client.py Thu
May 1 03:15:35 2008
@@ -6,22 +6,22 @@
"""
-import base64
-
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, RangedSet, uuid4
from qpid.queue import Empty
#----- Functions -------------------------------------------
-def dump_queue(client, queue_name):
+def dump_queue(queue_name):
print "Messages queue: " + queue_name
consumer_tag = queue_name # Use the queue name as the consumer tag -
need a unique tag
- queue = client.queue(consumer_tag)
+ queue = session.incoming(consumer_tag)
# Call message_subscribe() to tell the broker to deliver messages
# from the AMQP queue to a local client queue. The broker will
@@ -36,7 +36,8 @@
while True:
try:
message = queue.get(timeout=10)
- content = message.content.body
+ content = message.body
+ session.message_accept(RangedSet(message.id))
print "Response: " + content
except Empty:
print "No more messages!"
@@ -52,8 +53,8 @@
# by the delivery tag are acknowledged. This is more efficient,
# because there are fewer network round-trips.
- if message != 0:
- message.complete(cumulative=True)
+ #if message != 0:
+ # message.complete(cumulative=True)
#----- Initialization --------------------------------------
@@ -62,21 +63,21 @@
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
+amqp_spec=""
-# Create a client and log in to it.
-
-spec = qpid.spec.load(amqp_spec)
-client = Client(host, port, spec)
-client.start({"LOGIN": user, "PASSWORD": password})
-
-# Open the session. Save the session id.
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
-session = client.session()
-session_info = session.session_open()
-session_id = session_info.session_id
+session_id = str(uuid4())
+session = conn.session(session_id)
#----- Main Body -- ----------------------------------------
@@ -84,9 +85,9 @@
# same string as the name of the queue and the name of the routing
# key.
-replyTo = "ReplyTo:" + base64.urlsafe_b64encode(session_id)
+replyTo = "ReplyTo:" + session_id
session.queue_declare(queue=replyTo, exclusive=True)
-session.queue_bind(exchange="amq.direct", queue=replyTo, routing_key=replyTo)
+session.exchange_bind(exchange="amq.direct", queue=replyTo,
binding_key=replyTo)
# Send some messages to the server's request queue
@@ -95,22 +96,20 @@
"All mimsy were the borogroves,",
"And the mome raths outgrabe."]
-for l in lines:
- print "Request: " + l
- request=Content(l)
- request["routing_key"] = "request"
- request["reply_to"] = client.spec.struct("reply_to")
- request["reply_to"]["exchange_name"] = "amq.direct"
- request["reply_to"]["routing_key"] = replyTo
- session.message_transfer(destination="amq.direct", content=request)
+for ln in lines:
+ print "Request: " + ln
+ mp = session.message_properties()
+ mp.reply_to = session.reply_to("amq.direct", replyTo)
+ dp = session.delivery_properties(routing_key="request")
+ session.message_transfer("amq.direct", None, None, Message(mp,dp,ln))
# Now see what messages the server sent to our replyTo queue
-dump_queue(client, replyTo)
+dump_queue(replyTo)
#----- Cleanup ------------------------------------------------
# Clean up before exiting so there are no open threads.
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/request-response/server.py
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/request-response/server.py?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/request-response/server.py
(original)
+++ incubator/qpid/trunk/qpid/python/examples/request-response/server.py Thu
May 1 03:15:35 2008
@@ -4,52 +4,61 @@
Server for a client/server example
"""
-
import qpid
import sys
-from qpid.client import Client
-from qpid.content import Content
+import os
+from random import randint
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, RangedSet, uuid4
from qpid.queue import Empty
#----- Functions -------------------------------------------
+def getProperty(msg, name):
+ for h in msg.headers:
+ if hasattr(h, name): return getattr(h, name)
+ return None
def respond(session, request):
# The routing key for the response is the request's reply-to
# property. The body for the response is the request's body,
# converted to upper case.
-
- response=Content(request.body.upper())
- response["routing_key"] = request["reply_to"]["routing_key"]
- session.message_transfer(destination=request["reply_to"]["exchange_name"],
content=response)
+ reply_to = getProperty(request,"reply_to")
+ if reply_to == None:
+ raise Exception("reply to property needs to be there")
+
+ props = session.delivery_properties(routing_key=reply_to["routing_key"])
+ session.message_transfer(reply_to["exchange"],None, None,
Message(props,request.body.upper()))
#----- Initialization --------------------------------------
# Set parameters for login
-
host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1"
port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672
-amqp_spec="/usr/share/amqp/amqp.0-10-preview.xml"
user="guest"
password="guest"
-
-# Create a client and log in to it.
-
-client = Client(host, port, qpid.spec.load(amqp_spec))
-client.start({"LOGIN": user, "PASSWORD": password})
-
-# Create a session and open it.
-
-session = client.session()
-session.session_open()
+amqp_spec=""
+
+try:
+ amqp_spec = os.environ["AMQP_SPEC"]
+except KeyError:
+ amqp_spec="/usr/share/amqp/amqp.0-10.xml"
+
+# Create a connection.
+conn = Connection (connect (host,port), qpid.spec.load(amqp_spec))
+conn.start()
+
+session_id = str(uuid4())
+session = conn.session(session_id)
#----- Main Body -- ----------------------------------------
# Create a request queue and subscribe to it
session.queue_declare(queue="request", exclusive=True)
-session.queue_bind(exchange="amq.direct", queue="request",
routing_key="request")
+session.exchange_bind(exchange="amq.direct", queue="request",
binding_key="request")
dest = "request_destination"
@@ -66,7 +75,7 @@
# Respond to each request
-queue = client.queue(dest)
+queue = session.incoming(dest)
# If we get a message, send it back to the user (as indicated in the
# ReplyTo property)
@@ -74,8 +83,8 @@
while True:
try:
request = queue.get(timeout=100)
- respond(session, request.content)
- request.complete()
+ respond(session, request)
+ session.message_accept(RangedSet(request.id))
except Empty:
print "No more messages!"
break;
@@ -85,4 +94,4 @@
# Clean up before exiting so there are no open threads.
-session.session_close()
+session.close(timeout=10)
Modified: incubator/qpid/trunk/qpid/python/examples/request-response/verify
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/request-response/verify?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/request-response/verify (original)
+++ incubator/qpid/trunk/qpid/python/examples/request-response/verify Thu May
1 03:15:35 2008
@@ -2,4 +2,4 @@
background "Request server running" ./server.py
clients ./client.py
kill %% # Must kill the server.
-outputs "./client.py.out | remove_uuid64" " server.py.out | remove_uuid64"
+outputs "./client.py.out | remove_uuid" " server.py.out | remove_uuid"
Modified: incubator/qpid/trunk/qpid/python/examples/request-response/verify.in
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/request-response/verify.in?rev=652469&r1=652468&r2=652469&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/request-response/verify.in
(original)
+++ incubator/qpid/trunk/qpid/python/examples/request-response/verify.in Thu
May 1 03:15:35 2008
@@ -1,4 +1,4 @@
-==== client.py.out | remove_uuid64
+==== client.py.out | remove_uuid
Request: Twas brilling, and the slithy toves
Request: Did gyre and gimble in the wabe.
Request: All mimsy were the borogroves,
@@ -9,6 +9,6 @@
Response: ALL MIMSY WERE THE BOROGROVES,
Response: AND THE MOME RATHS OUTGRABE.
No more messages!
-==== server.py.out | remove_uuid64
+==== server.py.out | remove_uuid
Request server running - run your client now.
(Times out after 100 seconds ...)