diff options
author | Jonathan Robie <jonathan@apache.org> | 2010-05-05 21:22:14 +0000 |
---|---|---|
committer | Jonathan Robie <jonathan@apache.org> | 2010-05-05 21:22:14 +0000 |
commit | 637d4ba6c835396e7077f194c8b46f6eb268468d (patch) | |
tree | bb6b715746814d9422acfcf9e3bfd2bd00469951 /python | |
parent | d55e03ef61171ab7b78300bfa0bc9b84ba6c4869 (diff) | |
download | qpid-python-637d4ba6c835396e7077f194c8b46f6eb268468d.tar.gz |
XML Exchange example.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@941497 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python')
-rwxr-xr-x | python/examples/api/hello_xml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/python/examples/api/hello_xml b/python/examples/api/hello_xml new file mode 100755 index 0000000000..07c2b13120 --- /dev/null +++ b/python/examples/api/hello_xml @@ -0,0 +1,77 @@ +#!/usr/bin/env python +# +# 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. +# + +import sys +from qpid.messaging import * + +broker = "localhost:5672" +connection = Connection(broker) + +try: + connection.open() + session = connection.session() + +# Set up the receiver + query = """ + let $w := ./weather + return $w/station = 'Raleigh-Durham International Airport (KRDU)' + and $w/temperature_f > 50 + and $w/temperature_f - $w/dewpoint > 5 + and $w/wind_speed_mph > 7 + and $w/wind_speed_mph < 20 """ + +# query="./weather" + + address = """ + xml; { + create: always, + node:{ type: queue }, + link: { + x-bindings: [{ exchange: xml, key: weather, arguments: { xquery: %r} }] + } + } + """ % query + + receiver = session.receiver(address) + +# Send an observation + + observations = """ + <weather> + <station>Raleigh-Durham International Airport (KRDU)</station> + <wind_speed_mph>16</wind_speed_mph> + <temperature_f>70</temperature_f> + <dewpoint>35</dewpoint> + </weather> """ + + message = Message(subject="weather", content=observations) + sender = session.sender("xml") + sender.send(message) + +# Retrieve matching message from the receiver and print it + + message = receiver.fetch(timeout=1) + print message.content + session.acknowledge() + +except MessagingError,m: + print m +finally: + connection.close() |